> CentOS > CentOS服务器 > webserver >

CentOS+Apache+PHP 前端部署 生产环境

最近在帮一个在线教育网站部署环境,将部署步骤记录下来,以备以后使用,按照此步骤安装,一般不会报错。
 
1.系统环境:
==================================
CENTOS 5.4或5.5 bit64
APACHE 2.2.21
PHP 5.3.8
############################################
#yum 安装系统环境所需要的软件包
yum -y install yum-fastestmirror
yum -y install patch make flex bison tar
yum -y install libtool libtool-libs kernel-devel 
yum -y install libjpeg libjpeg-devel libpng libpng-devel
yum -y install libtiff libtiff-devel gettext gettext-devel
yum -y install libxml2 libxml2-devel zlib-devel  net-snmp
yum -y install file glib2 glib2-devel bzip2 diff* openldap-devel
yum -y install bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs
yum -y install e2fsprogs-devel krb5 krb5-devel libidn libidn-devel
yum -y install openssl openssl-devel vim-minimal unzip
# 安装PHP支持GD库软件包
yum -y install freetype freetype-devel png jpeg zlib gd php-gd*
# 安装PHP 5.* 组件
yum -y install libiconv libevent mhash mcrypt
############################################
 
 
2.软件下载
==================================
ORACLE: http://www.oracle.com
MYDSQL: http://www.mysql.com/downloads/
APACHE: http://httpd.apache.org/download.cgi
PHP   : http://www.php.net/downloads.php
ZEND  : http://www.zend.com/en/
eaccelerator :  http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
RPAF  : http://www.stderr.net/apache/rpaf/
MEMCACHE : http://pecl.php.net/get/memcache-3.0.6.tgz
 
##########################################
软件编译需求
(1) APACHE
    1. 支持路径重写
    2. 支持ssl加密
    3. 支持文件缓存
(2) PHP
    1. 支持GD库
    2. 支持ORACLE,MYSQL连接
    3. 支持ssl
    4. 支持版本控制
    5. libxml2: xml解析库
    6. zlib: 开源压缩库
    7. libpng: 用来处理png图像格式文件的库
    8. freetype: TrueType字体绘制引擎
    9. ZendOptimizer:
    10. JPEG库:
##########################################
 
 
3. 前端生产环境部署
==================================
(1) APACHE
# tar zxf httpd-2.2.21.tar.gz && cd httpd-2.2.21
# cd srclib/apr
# ./configure --prefix=/u/apache2/apr
# make && make install
# cd ../apr-util 
# ./configure --prefix=/u/apache2/apr-util --with-apr=/u/apache2/apr
# make && make install
# cd /u/httpd-2.2.21 
# ./configure --prefix=/u/apache2 --with-apr=/u/apache2/apr --with-apr-util=/u/apache2/apr-util --enable-so --enable-mods-shared=all --enable-rewrite --with-mpm=prefork --disable-cgid --disable-cgi --enable-deflate --enable-ssl --enable-cgid --enable-cache --enable-file-cache
# make && make install
 
(2) ORACLE CLIENT 软件安装
到oracle 官方网站上下载如下3个软件即可;
instantclient-basic-linux-x86-64-11.2.0.2.0.zip
instantclient-sdk-linux-x86-64-11.2.0.2.0.zip
instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip
把上面3个软件解压到/usr/local目录下,解压出文件夹instantclient_11_2
# mv /usr/local/instantclient_11_2 /usr/local/instantclient
# ln -s /usr/local/instantclient/libclntsh.so.11.1 /usr/local/instantclient/libclntsh.so
不做上面这步,PHP编译会报错,这个libclntsh.so包含SDK头文件信息。
 
(3) PHP
# tar jxf php-5.3.8.tar.bz2 && cd php-5.3.8
# ./configure --prefix=/u/php5 --with-apxs2=/u/apache2/bin/apxs --with-config-file-path=/u/php5/lib --with-oci8=instantclient,/usr/local/instantclient --with-mysql=mysqlnd --with-libxml-dir  --enable-ftp --enable-sockets --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib-dir --enable-gd-native-ttf  --enable-magic-quotes --with-iconv  --enable-mbstring=all  --disable-cgi --with-openssl --with-mcrypt --enable-bcmath --enable-calendar --enable-exif --enable-libxml --with-bz2 --with-curl --with-xmlrpc --with-gettext --enable-suhosin --disable-cli  --disable-debug
# make && make install
# cp php.ini-development /u/php5/lib/php.ini
整合APACHE与PHP
# vi /u/apache2/conf/httpd.conf
(a) 找到AddType application/x-gzip .gz .tgz在其下加以下内容
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
(b) 找到DirectoryIndex index.html改成:
    DirectoryIndex index.php index.htm index.html index.html.var
保存退出
 
(4) 安装eaccelerator加速软件
# tar -jxvf eaccelerator-0.9.5.3.tar.bz2
# cd eaccelerator-0.9.5.3
# /u/php5/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/u/php5/bin/php-config
# make && make install
编译安装后我们会看到屏幕提示的eaccelerator.so所在的目录,php5.3.x系列是在 /u/php5/lib/php/extensions/no-debug-non-zts-20090613/
修改php.ini 文件,将以下内容输入(详细设置):
[eaccelerator]
zend_extension="/u/php5/lib/php/extensions/no-debug-non-zts-20090613/eaccelerator.so"
eaccelerator.shm_size="128" 默认大小16M,64M,128M
eaccelerator.cache_dir="/tmp/eaccelerator" 缓存路径
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
注意:这部分内容务必放在[zend]之前,不然可能会出现不可预期的服务器问题。
# mkdir /tmp/eaccelerator
# chmod 777 /tmp/eaccelerator
 
(5) 安装Zend(如果程序没要求,尽量不要装Zend,容易和eA产生冲突):
# tar -zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
# cp -p ZendOptimizer.so /u/php5/lib/php/extensions/no-debug-non-zts-20090613/
将以下代码放入php.ini文件最底部
[Zend Optimizer]
zend_optimizer.optimization_level=1
zend_optimizer.encoder_loader=0
zend_extension="/u/php5/lib/php/extensions/no-debug-non-zts-20090613/ZendOptimizer.so"
 
(6) 安装APACHE rpaf模块
在生产环境中,WEB服务器的架设一般都会有反向代理软件(squid,ngx),WEB服务器如果要获取访问的真实IP地址,需要rpaf模块支持。
# wget -c http://www.stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
# tar zxf mod_rpaf-0.6.tar.gz
# cd mod_rpaf-0.6
# /u/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
# vi /u/apache2/conf/httpd.conf
添加模块参数,查找LoadModule php5_module modules/libphp5.so,在下方添加:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
#Mod_rpaf settings
RPAFenable On
RPAFproxy_ips 127.0.0.1 [your_ips]
#[your_ips]为你本机所监听web服务的ip.多个IP用空格空开.注意理解,如果这台服务器做前端,IP地址为本机IP,如果前端还有反向代理服务器,IP地址为代理服务器IP地址。
RPAFsethostname On
RPAFheader X-Forwarded-For
 
(7) MEMCACHE 安装
编译安装PHP5扩展模块memcache,APC,ImageMagick等,要用phpize方式安装
# tar zxvf memcache-3.0.6.tgz
# cd memcache-3.0.6
# /u/php5/bin/phpize
# ./configure --with-php-config=/u/php5/bin/php-config
# make && make install
 
至此,WEB的前端环境已部署完成,新建index.php页面测试。
phpinfo();
?>
访问:http://IP/index.php
(责任编辑:IT)