PHP安装、配置及拓展总结
2016-04-11 12:26
531 查看
PHP安装、配置及拓展总结:
本篇文章主要总结的是PHP的安装、配置、拓展库的添加及验证,实现平台为Unix/Linux/Mac OS X,这里也包括日后的技术文章,只将PHP语言作为服务器端脚本和命令式脚本的使用进行总结,其中不涉及对桌面应用程序的处理。
· 如何安装
· 如何配置
· 如何拓展
· 如何验证
· 遇到问题
. 附加内容
一、如何安装
1、下载安装包
下载地址:http://php.net/downloads.php 下载最新的PHP软件安装包到本地。
2、解压安装包
$ tar –xvf php-5.6.20.tar
3、配置并安装
$ cd php-5.6.20
$ ./configure --enable-fpm --with-mysql // 开启php-fpm和mysql支持
$ make
$ make install
4、创建配置文件
$ cd php-5.6.20
$ cp php.ini-development /usr/local/php/php.ini
$ cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
$ cp sapi/fpm/php-fpm /usr/local/bin
NOTE:
创建配置文件,并将其复制到正确位置才能生效哦。
二、如何配置
1、php.ini配置
对于PHP的配置部分,我们大部分只需要配置php.ini配置文件即可。而这里我们基本保持默认的php.ini中的配置,以后会继续对这个文件进行配置说明及优化。如果文件不存在时,为了防止恶意脚本注入攻击问题,需要阻止Nginx服务器请求发送到php-fpm,所以需要在php.ini中解注释并修改内容如下:
cgi.fix_pathinfo=0
2、涉及到的配置
Php-fpm配置:
参考:
/article/8365746.html
Nginx配置:
参考:
/article/8365737.html
Mysql配置:
参考:
/article/8365747.html
三、如何拓展
在PHP开发中,很多常用的功能是以第三方库形式提供拓展支持的,所以需要为php添加拓展库支持,目前支持三种方式添加拓展,可参考官方说明:
http://php.net/manual/zh/install.pecl.pear.php
而在这里,我比较喜欢使用PHPIZE底层编译安装拓展支持,生成的动态.so库文件存放路径:/usr/local/lib/php/extensions/no-debug-non-zts-20131226,具体如下:
PS:修改过php.ini配置之后,记得重启fpm哦,否则修改不生效。
1、Xcache
$ tar -xvf xcache-3.2.0.tar
$ cd xcache-3.2.0
$ sudo phpize
$ sudo ./configure --enable-xcache --enable-xcache-coverager
--enable-opcache --enable-xcache-optimizer
$ sudo make
$ sudo make install
NOTE:
--enable-xcache:包含对xcache的支持;
--enable-xcache-coverager:包含测量加速器的指标的附加特性;
--enable-xcache-optimizer:包含操作码优化支持;
配置:
php.ini:
[xcache-common]
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
xcache.admin.pass = ""
[xcache]
xcache.shm_scheme ="mmap"
xcache.size=1024M
xcache.count =16
xcache.slots =8K
xcache.ttl=0
xcache.gc_interval =0
xcache.var_size=16M
xcache.var_count =1
xcache.var_slots =8K
xcache.var_ttl=0
xcache.var_maxttl=0
xcache.var_gc_interval =300
xcache.test =Off
xcache.readonly_protection = On
;xcache.mmap_path ="/dev/zero"
xcache.mmap_path ="/tmp/xcache"
xcache.coredump_directory =""
xcache.cacher =On
xcache.stat=On
xcache.optimizer =Off
[xcache.coverager]
xcache.coverager = On
xcache.coveragedump_directory = ""
[opcache]
; so地址
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
; 开关打开
opcache.enable=1
; 开启CLI
opcache.enable_cli=1
; 可用内存, 酌情而定, 单位为:Mb
opcache.memory_consumption=128
; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
opcache.interned_strings_buffer=8
; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=4000
; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为2, 定位为秒
opcache.revalidate_freq=60
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1
NOTE:
经过很多的优化处理及确保程序本身没有问题,只是因为操作太多无法再进行优化,这时可以考虑使用xache、apc等PHP加速器来减少cpu解析php文件的性能消耗问题
2、Xdebug
$ tar –xvf xdebug-2.4.0.tar
$ cd debug-2.4.0
$ phpize
$ sudo ./configure –prefix=/usr/local/xdebug
$ sudo make
$ sudo make install
配置:
php.ini:
[xdebug]
xdebug.auto_trace = off
xdebug.auto_profile = off
xdebug.collect_params = on
xdebug.collect_return = on
xdebug.profiler_enable = on
xdebug.remote_enable = off
xdebug.trace_output_dir = "/tmp"
xdebug.profiler_output_dir ="/tmp"
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
NOTE:
如何监控和调试PHP程序?这里使用了Xdebug拓展库支持。
3、Mcrypt
$ tar libmcrypt-2.5.8.tar.gz
$ cd libmcrypt-2.5.8
$ sudo ./configure –disable-posix-threads –enable-static
$ sudo make
$ sudo make install
$ cd php-5.6.20/ext/mycrypt
$ sudo phpize
$ sudo ./configure
$ sudo make
$ sudo make install
配置:
php.ini:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so
四、如何验证
1、验证PHP
php –v
2、验证PHP拓展
在验证的PHP的拓展时,有两种方法:
phpinfo()及php –m,这里就以phpinfo()为例说明验证。
Xcache:
Xdebug:
Mcrypt:
五、遇到问题
1、PHP拓展已经安装成功,并且已经添加php.ini配置,也重启了fpm,但是php –m或是phpinfo() 始终不显示。
解决办法:
<? phpinfo() ?> 查看Configuration File (php.ini) Path,这个路径即为当前生效的php.ini存放的路径,那么问题很可能你配置的php.ini路径不对。
2、PHP拓展xcache已经安装及配置完成,也重启了fpm,但是php –m或是phpinfo() 始终不显示。
解决办法:
修改zend_extension=xxx为extension=xxx即可,原因是因为xcache在3.0后,不再支持使用zend_extension加载xcache.so了,而是使用extension加载,也就是只把xcache当作为一个拓展库,对于PHP的加速才是使用zend_extension=xxx/opcache.so。
NOTE:
对于上面的PHP拓展,会在后面的总结文章中进行汇总介绍及使用说明。
六、附加内容
我们可以使用php-config查看当前PHP的相关安装及配置信息:
$php-config --help
选项说明(来自于官网):
另外,有时我们需要知道所安装的拓展是否需要安装依赖或启动支持,那么可以使用下面的指令查询即可:
$./configure --help | grep extname(拓展名)
技术讨论群:
489451956(新)
本篇文章主要总结的是PHP的安装、配置、拓展库的添加及验证,实现平台为Unix/Linux/Mac OS X,这里也包括日后的技术文章,只将PHP语言作为服务器端脚本和命令式脚本的使用进行总结,其中不涉及对桌面应用程序的处理。
· 如何安装
· 如何配置
· 如何拓展
· 如何验证
· 遇到问题
. 附加内容
一、如何安装
1、下载安装包
下载地址:http://php.net/downloads.php 下载最新的PHP软件安装包到本地。
2、解压安装包
$ tar –xvf php-5.6.20.tar
3、配置并安装
$ cd php-5.6.20
$ ./configure --enable-fpm --with-mysql // 开启php-fpm和mysql支持
$ make
$ make install
4、创建配置文件
$ cd php-5.6.20
$ cp php.ini-development /usr/local/php/php.ini
$ cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
$ cp sapi/fpm/php-fpm /usr/local/bin
NOTE:
创建配置文件,并将其复制到正确位置才能生效哦。
二、如何配置
1、php.ini配置
对于PHP的配置部分,我们大部分只需要配置php.ini配置文件即可。而这里我们基本保持默认的php.ini中的配置,以后会继续对这个文件进行配置说明及优化。如果文件不存在时,为了防止恶意脚本注入攻击问题,需要阻止Nginx服务器请求发送到php-fpm,所以需要在php.ini中解注释并修改内容如下:
cgi.fix_pathinfo=0
2、涉及到的配置
Php-fpm配置:
参考:
/article/8365746.html
Nginx配置:
参考:
/article/8365737.html
Mysql配置:
参考:
/article/8365747.html
三、如何拓展
在PHP开发中,很多常用的功能是以第三方库形式提供拓展支持的,所以需要为php添加拓展库支持,目前支持三种方式添加拓展,可参考官方说明:
http://php.net/manual/zh/install.pecl.pear.php
而在这里,我比较喜欢使用PHPIZE底层编译安装拓展支持,生成的动态.so库文件存放路径:/usr/local/lib/php/extensions/no-debug-non-zts-20131226,具体如下:
PS:修改过php.ini配置之后,记得重启fpm哦,否则修改不生效。
1、Xcache
$ tar -xvf xcache-3.2.0.tar
$ cd xcache-3.2.0
$ sudo phpize
$ sudo ./configure --enable-xcache --enable-xcache-coverager
--enable-opcache --enable-xcache-optimizer
$ sudo make
$ sudo make install
NOTE:
--enable-xcache:包含对xcache的支持;
--enable-xcache-coverager:包含测量加速器的指标的附加特性;
--enable-xcache-optimizer:包含操作码优化支持;
配置:
php.ini:
[xcache-common]
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
xcache.admin.pass = ""
[xcache]
xcache.shm_scheme ="mmap"
xcache.size=1024M
xcache.count =16
xcache.slots =8K
xcache.ttl=0
xcache.gc_interval =0
xcache.var_size=16M
xcache.var_count =1
xcache.var_slots =8K
xcache.var_ttl=0
xcache.var_maxttl=0
xcache.var_gc_interval =300
xcache.test =Off
xcache.readonly_protection = On
;xcache.mmap_path ="/dev/zero"
xcache.mmap_path ="/tmp/xcache"
xcache.coredump_directory =""
xcache.cacher =On
xcache.stat=On
xcache.optimizer =Off
[xcache.coverager]
xcache.coverager = On
xcache.coveragedump_directory = ""
[opcache]
; so地址
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
; 开关打开
opcache.enable=1
; 开启CLI
opcache.enable_cli=1
; 可用内存, 酌情而定, 单位为:Mb
opcache.memory_consumption=128
; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
opcache.interned_strings_buffer=8
; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=4000
; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为2, 定位为秒
opcache.revalidate_freq=60
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1
NOTE:
经过很多的优化处理及确保程序本身没有问题,只是因为操作太多无法再进行优化,这时可以考虑使用xache、apc等PHP加速器来减少cpu解析php文件的性能消耗问题
2、Xdebug
$ tar –xvf xdebug-2.4.0.tar
$ cd debug-2.4.0
$ phpize
$ sudo ./configure –prefix=/usr/local/xdebug
$ sudo make
$ sudo make install
配置:
php.ini:
[xdebug]
xdebug.auto_trace = off
xdebug.auto_profile = off
xdebug.collect_params = on
xdebug.collect_return = on
xdebug.profiler_enable = on
xdebug.remote_enable = off
xdebug.trace_output_dir = "/tmp"
xdebug.profiler_output_dir ="/tmp"
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
NOTE:
如何监控和调试PHP程序?这里使用了Xdebug拓展库支持。
3、Mcrypt
$ tar libmcrypt-2.5.8.tar.gz
$ cd libmcrypt-2.5.8
$ sudo ./configure –disable-posix-threads –enable-static
$ sudo make
$ sudo make install
$ cd php-5.6.20/ext/mycrypt
$ sudo phpize
$ sudo ./configure
$ sudo make
$ sudo make install
配置:
php.ini:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so
四、如何验证
1、验证PHP
php –v
2、验证PHP拓展
在验证的PHP的拓展时,有两种方法:
phpinfo()及php –m,这里就以phpinfo()为例说明验证。
Xcache:
Xdebug:
Mcrypt:
五、遇到问题
1、PHP拓展已经安装成功,并且已经添加php.ini配置,也重启了fpm,但是php –m或是phpinfo() 始终不显示。
解决办法:
<? phpinfo() ?> 查看Configuration File (php.ini) Path,这个路径即为当前生效的php.ini存放的路径,那么问题很可能你配置的php.ini路径不对。
2、PHP拓展xcache已经安装及配置完成,也重启了fpm,但是php –m或是phpinfo() 始终不显示。
解决办法:
修改zend_extension=xxx为extension=xxx即可,原因是因为xcache在3.0后,不再支持使用zend_extension加载xcache.so了,而是使用extension加载,也就是只把xcache当作为一个拓展库,对于PHP的加速才是使用zend_extension=xxx/opcache.so。
NOTE:
对于上面的PHP拓展,会在后面的总结文章中进行汇总介绍及使用说明。
六、附加内容
我们可以使用php-config查看当前PHP的相关安装及配置信息:
$php-config --help
选项说明(来自于官网):
选项 | 说明 |
--prefix | PHP 所安装的路径前缀,例如 /usr/local |
--includes | 列出用 -I 选项包含的所有文件 |
--ldflags | PHP 编译时所使用的 LD 标志 |
--libs | PHP 编译时所附加的库 |
--extension-dir | 扩展库的默认路径 |
--include-dir | 头文件的默认路径前缀 |
--php-binary | PHP CLI 或者 CGI 可执行文件的完整路径 |
--php-sapis | 列出所有可用的 SAPI 模块 |
--configure-options | 重现当前 PHP 在编译时的配置选项 |
--version | PHP 版本号 |
--vernum | PHP 版本号,以整数表示 |
$./configure --help | grep extname(拓展名)
技术讨论群:
489451956(新)
相关文章推荐
- 增加phpmyadmin导入文件上限
- PHP实现的通过参数生成MYSQL语句类完整实例
- PHP-关于模板的原理和解析
- PHP实现的浏览器检查类
- PHP中Exception异常
- PHP学习笔记
- PHP模板引擎Smarty内建函数section,sectionelse用法详解
- PHP格式化字符串函数 sprintf()
- PHP实现多服务器共享SESSION数据-mysql实现
- 100个常用的 PHP 类库、资源和技巧小结
- ands TFTP Ping ICMP FTP
- PHP模板引擎Smarty内建函数详解
- php 魔术方法 说明
- 各种有用的PHP开源库收集
- php各个模式、版本的区别
- PHP模板引擎Smarty内置变量调解器用法详解
- PHP多维数组排序
- Session [php]
- PHP PDO ACCESS 留言板-php转换成HTML页面文件maketohtml.php
- PHP PDO ACCESS 留言板-留言内容显示messageInfo.php