最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux下從零開始安裝配置Nginx服務器+PHP開發(fā)環(huán)境

 更新時間:2015年12月21日 15:44:49   投稿:goldensun  
這篇文章主要介紹了Linux下從零開始安裝配置Nginx服務器+PHP開發(fā)環(huán)境的教程,文中采用的是最主流的FastCGI連接方法,需要的朋友可以參考下

Nginx是俄羅斯人編寫的十分輕量級的HTTP服務器,以事件驅動的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負載平衡。其擁有匹配Lighttpd的性能,同時還沒有Lighttpd的內存泄漏問題,而且Lighttpd的mod_proxy也有一些問題并且很久沒有更新。

因此我打算用其替代Apache應用于Linux服務器上。但是Nginx并不支持cgi方式運行,原因是可以減少因此帶來的一些程序上的漏洞。那么我們必須使用FastCGI方式來執(zhí)行PHP程序。

下面是我成功地配置Nginx + PHP5 FastCGI的過程

首先安裝或編譯Nginx

安裝Nginx

源碼包可以在官方主頁上下載。Ubuntu 7.10可以直接通過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/下創(chuàng)建了啟動腳本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 執(zhí)行文件目錄

下面可以啟動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可以執(zhí)行

update-rc.d nginx defaults

安裝PHP5

至于如何在Linux上安裝PHP,有很多文章,甚至很多平臺上都有現(xiàn)成的軟件包,無需自己編譯。

1. 先進行php輔助包的安裝如下
常用的包有

  • zlib-1.2.3.tar.bz2
  • jpegsrc.v6b.tar.gz libpng-1.2.22.tar.bz2  libmcrypt-2.5.8.tar.gz
  • mhash-0.9.9.9.tar.gz mcrypt-2.6.8.tar.gz

 

例:

tar -jxf zlib-1.2.3.tar.bz2

解壓

tar zxf tar -jxf zlib-1.2.3.tar.bz2

進入到

 cd zlib-1.2.3 

后執(zhí)行

./configure 

然后執(zhí)行

make make install 

其余的安裝方法相同。
2.  以上的輔助包安裝完之后,進行php包的安裝
步驟

tar -zxvf php-5.2.14.tar.gz && cd php-5.2.14

方法同上 執(zhí)行

./configure --prefix=/usr/local/php5 

后面加上需要加載的模塊
 

./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql5 --with-freetype-dir --with-zlib --with-png-dir --with-iconv --with-libxml-dir --with-jpeg-dir --with-curl --with-gd --enable-ftp --enable-zip --enable-mbstring --with-mcrypt=/usr/local/libmcrypt 

(這些為加載的模塊,不是全部)按Enter 執(zhí)行。
Php的配置文件為 php.ini。

PHP5的CGI方式的一大優(yōu)勢是內置了FastCGI的支持,只需指明綁定的地址和端口參數(shù)便可以以FastCGI的方式運行,如下:

php-cgi -b 127.0.0.1:9000

如何配置其與nginx一起運行呢?

配置Nginx的PHP FastCGI

請將以下內容保存為fastcgi_params文件,保存于/usr/local/nginx/conf下(Ubuntu可保存于/etc/nginx下),他為我們的FastCGI模塊設置了基本的環(huán)境變量:

#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;

請?zhí)貏e注意”fastcgi_script_name”一行,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進程來執(zhí)行:

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,并包含”phpinfo();”的內容,現(xiàn)在再看http://localhost/index.php便應該能看到php的調試信息了。

配置php進程

直接使用php-cgi的FastCGI運行方式有兩個問題(貌似應該有解決方案,如果知道的話可以教教我):

1.如果進程崩潰,難以配置重新啟動
2.單進程的效率低
因此,我們可以利用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
參數(shù)含義如下

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

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

相關文章

  • php redis setnx分布式鎖簡單原理解析

    php redis setnx分布式鎖簡單原理解析

    這篇文章主要介紹了php redis setnx分布式鎖簡單原理解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • PHP本地進行API接口測試的實例

    PHP本地進行API接口測試的實例

    下面小編就為大家分享一篇PHP本地進行API接口測試的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • thinkphp框架無限級欄目的排序功能實現(xiàn)方法示例

    thinkphp框架無限級欄目的排序功能實現(xiàn)方法示例

    這篇文章主要介紹了thinkphp框架無限級欄目的排序功能實現(xiàn)方法,結合實例形式分析了thinkphp無限級欄目排序相關原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-03-03
  • CI框架源碼解讀之URI.php中_fetch_uri_string()函數(shù)用法分析

    CI框架源碼解讀之URI.php中_fetch_uri_string()函數(shù)用法分析

    這篇文章主要介紹了CI框架源碼解讀之URI.php中_fetch_uri_string()函數(shù)用法,結合實例形式分析了CI框架中URL路由機制的原理與相關的config配置文件設置方法,需要的朋友可以參考下
    2016-05-05
  • TP5框架實現(xiàn)上傳多張圖片的方法分析

    TP5框架實現(xiàn)上傳多張圖片的方法分析

    這篇文章主要介紹了TP5框架實現(xiàn)上傳多張圖片的方法,結合實例形式分析了TP5上傳多張圖片相關的視圖、模型、控制器操作技巧,需要的朋友可以參考下
    2020-03-03
  • 詳解php比較操作符的安全問題

    詳解php比較操作符的安全問題

    php的比較操作符有==(等于)松散比較,===(完全等于)嚴格比較,這里面就會引入很多有意思的問題,本文給大家詳解php比較操作符的安全問題,對php操作符相關資料感興趣的朋友一起學習吧
    2015-12-12
  • 四種php中webservice實現(xiàn)的簡單架構方法及實例

    四種php中webservice實現(xiàn)的簡單架構方法及實例

    這篇文章主要介紹了四種php中webservice實現(xiàn)的簡單架構方法及實例,需要的朋友可以參考下
    2015-02-02
  • php版微信公眾號自定義分享內容實現(xiàn)方法

    php版微信公眾號自定義分享內容實現(xiàn)方法

    這篇文章主要介紹了php版微信公眾號自定義分享內容實現(xiàn)方法,結合實例形式分析了php實現(xiàn)微信公眾號自定義分享內容的接口調用與相關使用技巧,需要的朋友可以參考下
    2016-09-09
  • PHP可變函數(shù)學習小結

    PHP可變函數(shù)學習小結

    PHP 支持可變函數(shù)的概念。這意味著如果一個變量名后有圓括號,PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它,本文給大家分享php可變函數(shù)學習小結,對php可變函數(shù)相關知識感興趣的朋友一區(qū)學習吧
    2015-11-11
  • PHP 一個比較完善的簡單文件上傳

    PHP 一個比較完善的簡單文件上傳

    PHP 一個比較完善的簡單文件上傳 轉點別人的代碼,留著自己用!
    2010-03-03

最新評論

二手房| 广东省| 乐安县| 兴和县| 兴山县| 望奎县| 班玛县| 临汾市| 灌南县| 尤溪县| 疏附县| 岑巩县| 临西县| 曲阳县| 枣强县| 交口县| 富锦市| 平阳县| 新民市| 元江| 南靖县| 厦门市| 万荣县| 乌恰县| 丘北县| 呈贡县| 双牌县| 龙川县| 乐安县| 星座| 剑川县| 武穴市| 晋州市| 自贡市| 无棣县| 鄂尔多斯市| 锡林郭勒盟| 五原县| 固始县| 金昌市| 依安县|