熱烈祝賀臺州維博網絡的站長論壇隆重上線!(2012-05-28)    熱烈慶祝偉大的祖國60周年生日 點擊進來我們一起為她祝福吧(2009-09-26)    站長論壇禁止發布廣告,一經發現立即刪除。謝謝各位合作!.(2009-08-08)    熱烈祝賀臺州網址導航全面升級,全新版本上線!希望各位一如既往地支持臺州網址導航的發展.(2009-03-28)    臺州站長論壇恭祝各位新年快樂,牛年行大運!(2009-01-24)    臺州Link正式更名為臺州網址導航,專業做以臺州網址為主的網址導航!(2008-05-23)    熱烈祝賀臺州Link資訊改名為中國站長資訊!希望在以后日子里得到大家的大力支持和幫助!(2008-04-10)    熱烈祝賀臺州Link論壇改名為臺州站長論壇!希望大家繼續支持和鼓勵!(2008-04-10)    臺州站長論壇原[社會瑣碎]版塊更名為[生活百科]版塊!(2007-09-05)    特此通知:新臺州站長論壇的數據信息全部升級成功!">特此通知:新臺州站長論壇的數據信息全部升級成功!(2007-09-01)    臺州站長論壇對未通過驗證的會員進行合理的清除,請您諒解(2007-08-30)    臺州網址導航|上網導航誠邀世界各地的網站友情鏈接和友誼聯盟,共同引領網站導航、前進!(2007-08-30)    禁止發廣告之類的帖,已發現立即刪除!(2007-08-30)    希望各位上傳與下載有用資源和最新信息(2007-08-30)    熱烈祝賀臺州站長論壇全面升級成功,全新上線!(2007-08-30)    
便民網址導航,輕松網上沖浪。
臺州維博網絡專業開發網站門戶平臺系統
您當前的位置: 首頁 » AMPZ/Nginx/IIS發布安裝 » Linux操作系統下Nginx+Php的配置

Linux操作系統下Nginx+Php的配置

論壇鏈接
  • Linux操作系統下Nginx+Php的配置
  • 發布時間:2012-06-27 09:57:55    瀏覽數:4233    發布者:superadmin    設置字體【   
作了N多次php環境的搭建,網上的方法還真是多,但是實際操作起來總有一些大大小小的出入,很多錯誤經常讓我糾結不已.久病成醫,漸漸地我自己就總結出了一些經驗。自我感覺良好。

這種方法并非以前所流行的apache 加 php_module 的方式運行,我是采用nginx 作為web服務器,以fastcgi的方式運行php。

linux下編譯:

nginx我還是習慣選擇8.54的版本,它的編譯依賴以下幾個軟件包,解壓這些源碼包,在configure中設置好這些源碼的路徑,nginx在編譯的時候會自己將他們編譯進去的:

   pcre: 主要用于rewrite等模塊

   zlib: 這個不用說了

   openssl: 如果你還知道https這個東西,那么你懂的~~~(當然你可以不需要這個功能)

   md5 /sha1: 這兩者都是用于生成信息摘要的希哈算法,這倆個東西不是必須的,但是我發現如果不選擇其中一個那么openssl是不會成功地編譯進nginx的

下面是我自己寫的一個安裝腳本,有temp-path字樣的編譯選項所設置都是nginx在運行時產生的臨時文件的路徑,pid-path,lock-path也是臨時文件路徑,log-path是日志文件路徑,我因為自己機子上一些權限的問題所以要設置一下.一般情況下其實這些是不必要的,nginx默認會統統把生成的這些文件放在自己的安裝目錄下.

tmp=/tmp/nginx

log=/home/jsckdao/log

pcre=~/Downloads/pcre-8.02

zlib=~/Downloads/zlib-1.2.5-src

openssl=~/Downloads/openssl-0.9.8q

md5=~/Downloads/md5-1.3.0

./configure --prefix=/usr/local/nginx \

--http-proxy-temp-path=${tmp}/nginx-proxy.tmp \

--http-fastcgi-temp-path=${tmp}/nginx-fcgi.tmp \

--http-uwsgi-temp-path=${tmp}/nginx-uwsgi.tmp \

--http-scgi-temp-path=${tmp}/nginx-scgi.tmp \

--http-client-body-temp-path=${tmp}/nginx-client.tmp \

--pid-path=${tmp}/nginx.pid \

--lock-path=${tmp}/nginx.lock \

--http-log-path=${log}/http.log \

--error-log-path=${log}/http-error.log \

--with-pcre=$pcre \ #pcre 源碼包的路徑

--with-zlib=$zlib \ #zlib 源碼包的路徑

--with-http_ssl_module \ #起用ssl支持

--with-openssl=$openssl #openssl 源碼包路徑

make

make install

php(5.2)的編譯可以復雜點,也可以簡單點,因為我們編譯php時主要目的是編譯它的腳本引擎和一些核心庫,很多外圍的東西不一定非要在編譯php的時候加進去,可以在需要的時候將它們編譯成擴展庫再修改配置文件來加載它們。

我的編譯代碼如下:

./configure --prefix=/usr/local/php \

--with-mysql=/usr/local/mysql \#設置mysql的安裝路徑

--enable-fastcgi \ #開啟fastcgi支持

--enable-debug #支持調試

make

make install

其實關于mysql的那一句都是可以不要的,只是我懶得再編譯一次mysql擴展,所以就這樣把它直接編譯進php了,這樣做的前提是你必須先安裝mysql。

令外還有一些注意事項:編譯php時必須確保系統中擁有libxml2與libxml2-dev這倆個軟件包,因為php默認會將xml的功能編譯進去,所以xml的支持是必不可少的。還有一個就是autoconf這條命令了,在編譯擴展的時候,phpize會調用系統中的這個命令來生成擴展包的configure文件,沒有它你就不能作擴展了,這一點也是要記住的,畢竟linux下的php不像windows版那樣事先把所有的擴展都編譯好了。

至于window下nginx,php的安裝就沒有什么難度了,下個zip包,解壓就能用,只要稍微配置就可以了.

配置:

如果只是想讓php能運行的話那么直接輸入命令:

./php-cgi -b 3344

這樣就開啟了php的fastcgi進程了,-b參數是綁定該進程的偵聽端口,隨便找個沒用的端口填就可以了,這里綁定的是3344.

然后在nginx的配置文件中加上這么幾行:

location ~ \.php$ {

  root    /home/jsckdao/www; #這是你網站的根目錄

  fastcgi_pass  127.0.0.1:3344; #這里指定了fastcgi進程偵聽的端口,nginx就是通過這里與php交互的

  fastcgi_index  index.php;

  fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

  include    fastcgi_params;

}

如果要改nginx的偵聽端口的話找到"listen"這么一項,改就是了.運行nginx,在/home/jsckdao/www目錄中寫一個測試文件test.php:

<?php

phpinfo();

?>

訪問http://localhost:8080/test.php,如果顯示了php所以的配置信息,那么就基本沒什么問題,已經可以用這個環境寫些php代碼了.

至于php的調試器我選擇xdebug,不為什么,習慣所致。加載xdebug時,在配置文件中的寫法根據系統的不同好像也有點不同。linux下是:zend_extension_debug=<path>,window中加載的dll有兩種,一種文件名會帶有ts的后綴,這種要這要樣寫:zend_extension_ts=<path>另外一種就這樣:zend_extension=<path>,path一定要寫絕對路徑。雖然ts為何意我也不是很清楚,但是這些設置是一定不可以搞錯的。

設置好后重新運行php-cgi,然后重新訪問test.php,如果有xdebug的那一塊出現了,那么就成功了.

當然這是一個很簡單的配置,只能讓你運行php,要想真正做成你需要的開發環境,還需要你根據自己的需要修改php和nginx的配置文件,這些配置內容很多,我自己也在學習中,就不好多講了.

另外有一點需要注意,php的配置文件在它的源碼包中有兩個:php.ini-dist和php.ini-recommended,分別是針對生成環境和開發環境的配置.你需要把其中一個改名為php.ini.重啟后查看phpinfo()的頁面,靠上的地方有一項"Loaded Configuration File",它的值如果就是你的php.ini的路徑,那么就沒問題了,如果不是話,就看看上面一項"Configuration File (php.ini) Path",你把你的php.ini文件移到這個目錄下在重啟就可以了.因為php默認會在這個路徑下尋找php.ini的.當然你也可以在運行php-cgi的時候設置你的php.ini路徑,比如這樣:

php-cgi -b 3344 -c /home/jsckdao/php.ini

這樣就是把/home/jsckdao/php.ini這個文件作為配置文件了.

娛樂休閑專區A 影視預告B 音樂咖啡C 英語階梯D 生活百科
網頁編程專區E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技術區 N 系統管理O 服務器架設P 網絡/硬件Q 編程序開發R 內核/嵌入
管理中心專區S 發布網址T 版主議事U 事務處理
陕西快乐10分玩法 天津快乐10分怎么玩 生财有道图库l黑白图 广西快3预测推荐号码 淘股吧十大高手 江西多乐彩彩经网 河北快3. 深圳风采最新开奖公告 股票网站推荐 股票涨跌幅排行榜 领航团队彩票在线计划