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配置:
參考:
http://blog.csdn.net/why_2012_gogo/article/details/51112477
Nginx配置:
參考:
http://blog.csdn.net/why_2012_gogo/article/details/50908248
Mysql配置:
參考:
http://blog.csdn.net/why_2012_gogo/article/details/51114182
三、如何拓展
在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(拓展名)
PHP安裝、配置及拓展