(四) 安装php
[root@demeter data]# wget -c http://cn.php.net/get/php-5.3.6.tar.bz2/from/this/mirror
[root@demeter data]# tar jxvf php-5.3.6.tar.bz2
[root@demeter data]# cd php-5.3.6
[root@demeter php-5.3.6]# ./configure
报错:
configure: error: xml2-config not found. Please check your libxml2 installation.
解决:
因为没有装libxml2-devel
[root@demeter php-5.3.6]# rpm -qa|grep libxml
libxml2-2.6.26-2.1.2.8.el5_5.1
libxml2-python-2.6.26-2.1.2.8.el5_5.1
[root@demeter php-5.3.5]# yum install libxml2-devel
[root@demeter php-5.3.6]# yum install glibc-devel
[root@demeter php-5.3.6]# yum install expat-devel
[root@demeter php-5.3.6]# yum install freetype-devel
[root@demeter php-5.3.6]# yum install libpng-devel
[root@demeter php-5.3.6]# yum install libjpeg-6b-37
[root@demeter php-5.3.6]# yum install zlib-devel
[root@demeter php-5.3.6]# yum install curl-devel
[root@demeter php-5.3.6]# yum install libjpeg-devel
[root@demeter php-5.3.6]# yum install openldap-devel
[root@demeter php-5.3.6]# yum install libmcrypt
[root@demeter php-5.3.6]# yum install libmcrypt-devel
[root@demeter php-5.3.6]# yum install libtool-ltdl
[root@demeter php-5.3.6]# cd /usr/lib
[root@localhost lib]# ln -s libltdl.so.3 libltdl.so
[root@demeter data]# wget –c http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
[root@demeter data]# tar zxvf libiconv-1.13.1.tar.gz
[root@demeter data]# cd libiconv-1.13
[root@demeter libiconv-1.13.1]# ./configure --prefix=/usr/local
[root@demeter libiconv-1.13.1]# make
[root@demeter libiconv-1.13.1]# make install
[root@demeter libiconv-1.13.1]# cd ../php-5.3.6
[root@demeter php-5.3.6]# ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
[root@demeter php-5.3.6]# make ZEND_EXTRA_LIBS='-liconv'
[root@demeter php-5.3.6]# make install
make的时候有时候会报错:
error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
解决办法如下:在/etc/ld.so.conf中加一行/usr/local/lib
[root@localhost lib]# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
[root@demeter php-5.3.6]# cp php.ini-production /usr/local/webserver/php/etc/php.ini
1) 安装memcache
安装php的扩展模块memcache
[root@localhost data]# wget –c http://pecl.php.net/get/memcache-2.2.6.tgz
[root@localhost data]# tar zxvf memcache-2.2.6.tgz
[root@localhost data]# cd memcache-2.2.6
[root@demeter memcache-2.2.6]# /usr/local/webserver/php/bin/phpize
[root@demeter memcache-2.2.6]# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config
[root@demeter memcache-2.2.6]# make
[root@demeter memcache-2.2.6]# make install
2) 安装eaccelerator
eaccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。
[root@demeter data]# wget –c http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
[root@demeter data]# tar jxvf eaccelerator-0.9.6.1.tar.bz2
[root@demeter data]# /usr/local/webserver/php/bin/phpize
[root@demeter data]# cd eaccelerator-0.9.6
[root@demeter eaccelerator-0.9.6]#
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
[root@demeter eaccelerator-0.9.6]# make
[root@demeter eaccelerator-0.9.6]# make install
3) 安装扩展模块PDO_MYSQL
[root@demeter data]# wget -c http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
[root@demeter data]# tar zxvf PDO_MYSQL-1.0.2.tgz
[root@demeter data]# cd PDO_MYSQL-1.0.2
[root@demeter PDO_MYSQL-1.0.2]# /usr/local/webserver/php/bin/phpize
[root@demeter PDO_MYSQL-1.0.2]# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/
[root@demeter PDO_MYSQL-1.0.2]# make
[root@demeter PDO_MYSQL-1.0.2]# make install
4) 配置php及对扩展模块的支持
1. 修改php.ini文件
查找/usr/local/webserver/php/etc/php.ini中的extension_dir = “./”
修改为:
extension_dir = “/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/”
并在此行后增加以下几行,然后保存:
extension = “memcache.so”
extension = “pdo_mysql.so”
extension = “imagick.so”
#设置php扩展模块的路径及名称
output_buffering = on
#可以显示遇到的错误,提供调试错误的信息,不要把有些错误放在buffer里不显示
cgi.fix_pathinfo=0
#设置为0,从SCRIPT_FILENAME里取出真正的脚本名,当设置为1的时候会可能会出现错误,
防止Nginx文件类型错误解析漏洞。
2. 配置eaccelerator加速PHP
设置php支持扩展模块eaccelerator
[root@demeter eaccelerator-0.9.6]# mkdir -p /usr/local/webserver/eaccelerator_cache
[root@demeter eaccelerator-0.9.6]# vim /usr/local/webserver/php/php.ini
#在末尾加上以下代码:
[eaccelerator]
zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
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"
3. 配置php
[root@demeter ~]# cd /usr/local/webserver/php/etc
[root@demeter etc]# cp php-fpm.conf.default php-fpm.conf
[root@demeter etc]# vim php-fpm.conf
修改:
; pm.start_servers = 20 为 pm.start_servers = 20
; pm.min_spare_servers = 5 为 pm.min_spare_servers = 5
; pm.start_servers = 20 为 pm.start_servers = 20
[root@demeter etc]# ulimit -SHn 65535
[root@demeter etc]# /usr/local/webserver/php/sbin/php-fpm
5) 修改nginx的配置文件,使得支持php
为nginx创建用户及用户组
[root@demeter ~]# groupadd www
[root@demeter ~]# useradd www -g www
[root@demeter etc]# vim /usr/local/webserver/nginx/conf/nginx.conf
user www www;
worker_processes 8;
error_log /usr/local/webserver/nginx/logs/error.log;
pid /usr/local/webserver/nginx/logs/nginx.pid;
worker_rlimit_nofile 65535;
server {
listen 80 default_server;
server_name wwroot; #server name
rewrite ^ http://www.domain.com$request_uri?; #如果出现错误将跳转到这个页面
location / {
root /usr/local/webserver/nginx/html; #网站的根目录
index index.html index.htm index.php; #支持的主页的文件类型要加上index.php
}
所有的root都要改为“/usr/local/webserver/nginx/html”
location ~ .php$ {
root /usr/local/webserver/nginx/html;
fastcgi_pass 192.168.15.250:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/webserver/nginx/html$fastcgi_script_name;
include /usr/local/webserver/nginx/conf/fastcgi_params;
}
注意:此处的fastcgi_param 值中的$document_root代表/usr/local/webserver/nginx/html,必须要写,要不然就会出错,不能辨认php脚本;
用root用户重新启动就生效了:
[salleyzhao@demeter nginx]$ ./sbin/nginx -s reload
此时即可打开测试页测试了。