一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - ubuntu上配置Nginx+PHP5 FastCGI服務器配置

ubuntu上配置Nginx+PHP5 FastCGI服務器配置

2019-10-08 14:01服務器之家 Nginx

ubuntu上配置Nginx+PHP5 FastCGI服務器配置方法, 需要的朋友可以參考下。

ubuntu上配置Nginx+PHP5 FastCGI服務器配置

首先安裝或編譯Nginx。
安裝Nginx
源碼包可以在官方主頁上下載。Ubuntu 9.04可以直接通過apt安裝,也可以從這里下載最新的deb包:
sudo apt-get install nginx
如果要自己編譯的話,需要確保自己已經有編譯器和PCRE的庫(用于Nginx的rewrite模塊,如果不需要這個模塊可以在configure時使用./configure –without-rewrite)。編譯方法如下:
wget http://sysoev.ru/nginx/nginx-0.5.34.tar.gz
tar zxvf nginx-0.5.34.tar.gz
cd nginx-0.5.34
./configure #默認配置安裝路徑為/usr/local/nginx 可以追加--prefix=/usr設置到/usr
make && make install  # install要求有root權限

Ubuntu安裝之后的文件結構大致為:
所有的配置文件都在/etc/nginx下,并且每個虛擬主機已經安排在了/etc/nginx/sites-available下 
程序文件在/usr/sbin/nginx 
日志放在了/var/log/nginx中 
并已經在/etc/init.d/下創建了啟動腳本nginx 
默認的虛擬主機的目錄設置在了/var/www/nginx-default

而自己利用默認配置編譯的,則放在/usr/local/nginx下,以下是目錄結構:
/usr/local/nginx/conf 配置目錄 
/usr/local/nginx/html 默認的網站根目錄 
/usr/local/nginx/logs 日志和pid文件目錄 
/usr/local/nginx/sbin 執行文件目錄

下面可以啟動nginx來看看效果(請確保80端口沒有其他服務在使用):
Ubuntu請運行:
sudo /etc/init.d/nginx start
其他請運行:
/usr/local/nginx/sbin/nginx
然后就可以通過http://localhost/來看看效果了。
要配置nginx的自動運行,可以將/usr/local/nginx/sbin/nginx添加到/etc/rc.local中,Ubuntu可以執行
update-rc.d nginx defaults

安裝PHP5
至于如何在Linux上安裝PHP,在這里我們需要的是cgi方式的php。Ubuntu下可以直接運行:
sudo apt-get install php5-cgi
并且可以根據自己的情況安裝一些字節碼優化和緩存的擴展,如eaccelerator、apc、xcache等。
PHP5的CGI方式的一大優勢是內置了FastCGI的支持,只需指明綁定的地址和端口參數便可以以FastCGI的方式運行,如下:
php-cgi -b 127.0.0.1:9000

如何配置其與nginx一起運行呢?
配置Nginx的PHP FastCGI
請將以下內容保存為fastcgi_params文件,保存于/usr/local/nginx/conf下(Ubuntu可保存于/etc/nginx下),他為我們的FastCGI模塊設置了基本的環境變量:
#fastcgi_params
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

請特別注意加粗的一行,PHP-CGI特別需要此行信息來確定PHP文件的位置。
另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,打開cgi.fix_pathinfo選項:
cgi.fix_pathinfo=1;
這樣php-cgi方能正常使用SCRIPT_FILENAME這個變量。

接下來在nginx的配置中針對php文件配置其利用FastCGI進程來執行:
server {
    index index.php;
    root  /usr/local/nginx/html;

    location ~ .*.php$ {
        include /usr/local/nginx/conf/fastcgi_params;  #請根據自己保存的路徑進行設置
        fastcgi_index index.php;
        fastcgi_pass  127.0.0.1:9000; #請根據自己的FastCGI綁定的地址和端口進行配置
    }
}

通知Nginx重新載入配置:
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
Ubuntu用戶可以使用init腳本:sudo /etc/init.d/nginx reload
然后啟動php-cgi -b 127.0.0.1:9000

假設你在文檔根目錄放了index.php,并包含“”的內容,現在再看http://localhost/index.php便應該能看到php的調試信息了。

配置php進程
直接使用php-cgi的FastCGI運行方式有兩個問題(貌似應該有解決方案,如果知道的話可以教教我):
如果進程崩潰,難以配置重新啟動、單進程的效率低 
因此,我們可以利用Lighttpd的spawn-fcgi來控制進程的運行。獲得spawn-fcgi的方法如下:
wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2 #獲取Lighttpd的源碼包
tar -xvjf lighttpd-1.4.18.tar.bz2
cd lighttpd-1.4.18
./configure  #編譯
make
cp src/spawn-fcgi /usr/local/bin/spawn-fcgi #取出spawn-fcgi的程序

下面我們就可以使用 spawn-fcgi 來控制php-cgi的FastCGI進程了
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi

參數含義如下
-f <fcgiapp> 指定調用FastCGI的進程的執行程序位置,根據系統上所裝的PHP的情況具體設置 
-a <addr> 綁定到地址addr 
-p <port> 綁定到端口port 
-s <path> 綁定到unix socket的路徑path 
-C <childs> 指定產生的FastCGI的進程數,默認為5(僅用于PHP) 
-P <path> 指定產生的進程的PID文件路徑 
-u和-g FastCGI使用什么身份(-u 用戶 -g 用戶組)運行,Ubuntu下可以使用www-data,其他的根據情況配置,如nobody、apache等

然后我們可以將這行代碼加入到/etc/rc.local文件底部,這樣系統啟動的時候也可以同時啟動PHP的FastCGI進程。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 污到你怀疑人生 | 亚洲欧美韩国日产综合在线 | 护士让我吃奶我扒她奶 | 亚洲欧美在线免费观看 | 3d动漫美女被吸乳羞羞有 | 成年人视频在线免费观看 | 亚洲国产视频一区 | 国产精品视频免费一区二区三区 | www亚洲国产 | 大学生特黄特色大片免费播放 | 国产女主播福利在线 | 国产大秀视频一区二区三区 | 国产丰满美女做爰 | 男人的j放进女人的p全黄 | 日本一区视频在线 | 国内精品视频免费观看 | 成在线人免费 | 亚洲区视频在线观看 | 韩国女主播一区二区视频 | japonensis中国东北老人 | 午夜网 | 91精品手机国产露脸 | 国产一区在线播放 | 91麻豆国产精品91久久久 | 国产在线精品亚洲第一区香蕉 | 桃色导航 | 精品国产一区二区三区久 | 天天色综合6 | 91粉色视频在线导航 | 免费标准高清看机机桶机机 | 我们日本在线观看免费动漫下载 | 岛国最新资源网站 | 日本在线精品视频 | 亚洲区精品久久一区二区三区 | 摔跤成人黄版 | 国产欧美成人不卡视频 | 国产精品毛片高清在线完整版 | 欧美成人免费观看的 | 亚洲欧美日韩国产一区二区精品 | 丰满的闺蜜2中文字幕 | 日本艳鉧动漫1~6完整版在 |