lamp架构部署

最近在自己弄lamp的架构网站平台,而且兴致勃勃的为云服务器申请了网站备案,此贴记录我的lamp架构过程,并预计以后lamp向lnmp做数据迁移:hehehe

   进入Apache官网下载稳定版Apache编译包:httpd.apache.org

    解压包到指定目录 tar zxf http-2.2.0.tar.gz -C /usr/local/src

    进入目录:执行编译;./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-expires --enable-headers --enable-deflate --with-mpm=worker make&&make install

    拷贝系统启动脚本:cp /usr/local/apache/bin/apachectl  /etc/init.d/httpd

编辑vim /etc/init.d/httpd修改内容如下:  

#!/bin/sh

# chkconfig: 35 85 15

# description: Startup script for the Apache HTTP Server

# Licensed to the Apache Software Foundation (ASF) under one or more

添加系统启动:chkconfig --add httpd

              chkconfig --level 35 httpd on

安装数据库请参照另一篇博客http://xiangcc.blog.51cto.com/10201823/1650341

安装php前要安装图库支持./configure --prefix=/usr/local/libiconv;make;make install

进入php解压目录执行:./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-xmlrpc --with-openssl --with-zlib --with-freetype-dir --with-gd --with-jpeg-dir --with-png-dir --with-iconv=/usr/local/libiconv --enable-short-tags --enable-sockets --enable-zend-multibyte --enable-soap --enable-mbstring --enable-static --enable-gd-native-ttf --with-curl --with-xsl --enable-ftp --with-libxml-dir --enable-sigchild --enable-pcntl --enable-bcmath

如果出错,自行粘贴错误百度解决方法,具体方法还没有完全总结出来,先不写上,yum安装时必须关掉防火墙,否则无法安装所需插件及库文件,成功编译结果

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
configure: WARNING: unrecognized options: --enable-zend-multibyte


编译文件make;make install

然后进入php解压目录拷贝php文件:cp php.ini-production /usr/local/php/php.ini


编辑apache配置文件:vim /usr/local/apache/conf/httpd.conf

添加DirectoryIndex index.html index.php

         AddType application/x-httpd-php .php

测试是否能解析php:vim /usr/local/apache/htdecs/index.php

<php?

phpinfo();

?>

访问默认页面看到apache的编译等配置信息

开启虚拟主机:

Include conf/extra/httpd-vhosts.conf            --启用虚拟主机配置文件

<Directory /usrlocal/http>--添加虚拟主机网站目录及访问权限

  order allow,deny

  allow from all 

</Directory>


附:

编辑虚拟主机文件:例如我的配置(进行了日志分割):

<VirtualHost ip地址:80>
    DocumentRoot "/usr/local/http"
    ServerName 123456.com
    ErrorLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/oen.acgcommittee.com-error_%Y%m%d.log 86400"
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$" image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/oem.acgcommittee.com-access_%Y%m%d.log 86400 " combined env=limage-request
</VirtualHost>


mysql需要创建网站使用的数据库:

如Discuz创建(只本地使用):grant all on bbs.* to bbs@'localhost' identified by 'pwd@123';



将Discuz主程序cp到虚拟主机指定的目录下,访问ip进行安装

会出现如下提示

wKioL1VWAryh5WFKAAEIGenDmE0299.jpg

需要对一些目录权限进行改动(进入虚拟主机目录)



apache内存使用优化

最近发现apache占用内存资源非常高,自己测试了一下,仅连续刷新七八次,内存资源基本耗尽,

以下是我从网上摘取的配置优化:

KeepAlive Off   当用户请求网页时,服务器会打开工作进程响应客户请求,并建立请求连接,当请求完毕之后就不需要再使用了,就需要断开连接,结束工作进程,释放占用的内存资源

KeepAliveTimeout 15   避免在15秒内没有请求时候持续连接占用内存

MaxKeepAliveRequests 200    每个进程处理的请求数量,避免频繁重复的启动、关闭进程

Timeout 60  响应前需等待多少秒,能提高一点小性能和防止一定的DDOS攻击

StartServers 5       启动apache最初时启动的进程数



KeepAlive 是否允许持续连接
MaxKeepAliveRequests 允许的持续连接的最大数
KeepAliveTimeout 持续连接在没有请求多少秒后切断
StartServers 最初启动时启动多少个服务器进程
MinSpareServers 空闲服务器进程的最小数
MaxSpareServers 空闲服务器进程的最大数
MaxRequestsPerChild 每个子进程处理的最大请求数



下面是一些我的服务器优化配置

KeepAlive off   
StartServers 5

ServerLimit 128
MaxClients 128
MaxRequestsPerChild 200
KeepAliveTimeout 5
StartServers 5

MinSpareThreads 15
MaxSpareThreads  50
ThreadsPerChild 25

Timeout 60


博文如有后来发现的错误或操作优化时,将随时修改




你可能感兴趣的:(it,lamp,架构部署)