1. 程式人生 > >PHP安裝、配置及拓展

PHP安裝、配置及拓展

min 軟件 prefix ttl sum director core dev don

主要總結的是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安裝、配置及拓展