PHP版本:PHP5.5.28
去www.PHP.net找下载最新的版本:http://www.PHP.net/downloads.PHP,下载解压。
# wget http://cn2.PHP.net/get/PHP-5.5.28.tar.gz/from/this/mirror
# tar zxvf PHP-5.5.28.tar.gz
# cd PHP-5.5.28
配置
# ./configure--prefix=/usr/local/PHP\
--with-curl\
--with-freetype-dir\
--with-gd\
--with-gettext\
--with-iconv-dir\
--with-kerberos\
--with-libdir=lib64\
--with-libxml-dir\
--with-MySQL\
--with-mysqli\
--with-openssl\
--with-pcre-regex\
--with-pdo-mysql\
--with-pdo-sqlite\
--with-pear\
--with-png-dir\
--with-xmlrpc\
--with-xsl\
--with-zlib\
--enable-fpm\
--enable-bcmath\
--enable-libxml\
--enable-inline-optimization\
--enable-gd-native-ttf\
--enable-mbregex\
--enable-mbstring\
--enable-opcache\
--enable-pcntl\
--enable-shmop\
--enable-soap\
--enable-sockets\
--enable-sysvsem\
--enable-xml\
--enable-zip
如果需要GD库还要
./configure--prefix=/usr/local/PHP--with-mysql--enable-fpm--enable-opcache--with-freetype-dir--with-jpeg-dir--with-png-dir--with-gd--with-zlib--withlibxml-dir--enable-xml--disable-debug--enable-safe-mode--enable-mbstring
如果配置错误,需要安装需要的模块,直接yum一并安装依赖库
# yum-y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel
配置成功:
编译安装,配置成功后继续完成编译安装PHP。
# make && make install
PHP-5.4.11已经支持fastcgi了,不用在打补丁了。
在编译安装时加上'--enable-fpm',注意修改php/etc/php-fpm.conf去掉pid前的注释;
复制/sapi/fpm/init.d.php-fpm/etc/init.d/PHP-fpm还可以做成服务
复制PHP-fpm文件到PHP安装目录
# cp-R./sapi/fpm/PHP-fpm.conf/usr/local/PHP/etc/php-fpm.conf?
拷贝php.ini文件
安装目录有2个文件:php.ini-development和php.ini-production
注意php.ini-production拥有较高的安全性设定,则适合上线当产品使用
# cp php.ini-development/usr/local/php/lib/php.ini
或者
# cp php.ini-production/usr/local/php/lib/php.ini
如果操作了这一步以后使用PHPinfo()就会看到Loaded Configuration File:
php-fpm启动
拷贝启用文件
# cp-R./sapi/fpm/php-fpm/etc/init.d/php-fpm(www.xing528.com)
启动
# /etc/init.d/php-fpm
PHP安装成功查看进程
# ps aux|grep php
重启
# killall php-fpm
# /etc/init.d/php-fpm
php-fpm配置中关于进程数的配置比较重要,其他可以默认:
user=www
group=www
# 启动进程的账户和组
pm=dynamic #对于专用服务器,pm可以设置为static。
# 如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下开参数决定:
pm.max_children #,子进程最大数
pm.start_servers #,启动时的进程数
pm.min_spare_servers #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests=1000
# 设置每个子进程重生之前服务的请求数.对于可能存在内存泄漏的第三方模块来说是非常有用的.如果设置为’0'则一直接受请求.等同于PHP_FCGI_MAX_REQUESTS环境变量.默认值:0.
PHP-fpm-配置详解(主要是针对pm几个选项进行测试)
PHP-fpm源码目录:PHP-5.5.10\sapi\fpm
配置nginx支持PHP
nginx的配置文件nginx.conf在
# cd/usr/local/nginx/conf
nginx默认web文件夹在
/usr/local/nginx/html
如果需要nginx支持PHP需要修改nginx.conf,加入如下语句:
location~\.PHP${
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME/usr/www$fastcgi_script_name;
}
本机的web文件夹在/usr/www,需要修改fastcgi_param SCRIPT_FILENAME指向对应目录即可。
重启nginx
# /usr/local/nginx/sbin/nginx-s reload
测试页面info.php
<?php
phpinfo();
?>
上传至/usr/www目录,成功运行
错误描述:
PHP Warning:PHPinfo():It is not safe to rely on the system's timezone settings.You are*required*to use the date.timezone setting or the date_default_timezone_set()function.In case you used any of those methods and you are still getting this warning,you most likely misspelled the timezone identifier.We selected'UTC'for'8.0/no DST'instead in C:\info.PHP on line 4
解决办法:
打开PHP.ini配置文件,找到
[Date]
;Defines the default timezone used by the date functions
;http://PHP.net/date.timezone
;date.timezone=
修改为:
[Date]
;Defines the default timezone used by the date functions
;http://PHP.net/date.timezone
date.timezone=PRC 或者UTC
然后记得重启Nginx!
另外,还有下面两种办法:
(1)在页头使用date_default_timezone_set()设置date_default_timezone_set('PRC');//东八时区echo date('Y-m-d H:i:s');
(2)在页头使用ini_set('date.timezone','Asia/Shanghai');
对于中国,可选值:Asia/Chongqing,Asia/Shanghai,Asia/Urumqi(依次为重庆,上海,乌鲁木齐)港台地区可用:Asia/Macao,Asia/Hong_Kong,Asia/Taipei(依次为澳门,香港,台北),还有新加坡:Asia/Singapore,老的PRC也行。
PHP所支持的时区列表可参见:http://www.PHP.net/manual/zh/timezones.PHP
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。