Ubuntu下安裝nginx與PHP-FPM兩種方法

今天聽朋友說PHP-FPM是一個可以加速php效能的一個插件了,下面我就來自己安裝一下,我是在Ubuntu下安裝nginx與PHP-FPM了,因爲自己伺服器php都安裝好了,只要安裝PHP-FPM了,所以相對比較簡單。

例1.直接配置PHP-FPM

把VPS的Lenny5換成了Ubuntu10.04,借這個機會試一下效率更高的 PHP-FPM 。

以下是fabric腳本:

代碼如下

def init_nmp():
install_nginx()
install_php()
install_phpfpm()

def install_nginx():
sudo("add-apt-repository ppa:nginx/stable")
sudo("apt-get update")
sudo("apt-get -y -q install nginx-full nginx-common")

def install_php():
# More packages upon request
sudo("apt-get -y -q --force-yes install php5-cli php5-cgi php5-mysql")
sudo("apt-get -y -q --force-yes install php5-mcrypt libmcrypt mcrypt")

def install_phpfpm():
# TODO: use canonical php-fpm package when available
sudo("add-apt-repository ppa:brianmercer/php")
sudo("apt-get update")
sudo("apt-get -y -q install php5-fpm")

在/etc/php5/fpm/php5-fpm.conf裏將tcp修改成unix socket方式,單機情況下效能更好。

代碼如下

listen = /var/run/php5-fpm.sock
;listen = 127.0.0.1:9000

Nginx裏的配置:

代碼如下

location ~ .php$ {
try_files $uri = 404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;

fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}

例2.如果你是全新安裝沒有nginx,php環境我們可以參考下面實例

1,安裝nginx

代碼如下
sudo apt-get install nginx


2,安裝 phpy + php-fpm + 其他模塊:

代碼如下
apt-get install php5-fpm php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear
php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps
php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
php5-json php5-suhosin php5-common php-apc php5-dev libpcre3-dev

3,配置 php:

代碼如下

sudo vi /etc/php5/fpm/php.ini

設置

代碼如下

cgi.fix_pathinfo=0

4,創建文件

代碼如下

mkdir /home/www

vi /home/www/index.php
<?php
phpinfo();
?>

修改文件權限

代碼如下


chown -R www-data:www-data /home/www

5,修改 nginx 虛擬主機設置:

代碼如下

sudo vi /etc/nginx/sites-available

內容,我這裏 IPv4 和 IPv6 用了兩條獨立的命令監聽,原因見這裏。

代碼如下

server {
#listen [::]:80;
listen 80;
server_name xxx.xxxxx.xxx;
root /home/www/;

#access_log /var/log/nginx/xxx-access.log;
#error_log /var/log/nginx/xxx-error.log;

location / {
index index.php index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /home/www/nginx-default;
#}

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

location ~ /.ht {
deny all;
}
}

6,修改 fastcgi 參數,

代碼如下

sudo vi /etc/nginx/fastcgi_params

加入:

代碼如下

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

7,重新啓動 nginx 和 php-fpm,配置完成:

代碼如下
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm reload
更多相關文章
  • CentOS系統安裝mysql5數據庫兩種方法
    centos安裝mysql數據庫有源碼安裝方式yum還有一種RPM方式安裝,下面我們來介紹
  • Mac和ubuntu下安裝與使用vim插latex suite
    vim-latex suite是一個把latex和vim結合在一起的免費軟件,但用起來功能
  • 本文章來給各位同學介紹一篇關于Ubuntu下安裝Sublime Text 2與添加右鍵菜單技巧,大家有興趣的朋友可以進入一起看看哦.Sublime Text 2是免安裝的,下載完解壓就可以了.我這邊解壓路徑是/home/fhp/App/SublimeText2爲了能在終端直接使用sublime打開文
  • 本文章來給各位同學介紹在ubuntu下安裝phpmyadmin 出現404錯誤的解決辦法,各位有需要了解的朋友可進入參考.安裝phpMyAdmin 代碼如下 tar -zxvf phpMyAdmin-2.11.5.1
  • 今天在ubuntu系統中安裝了mysql數據庫了,按正常方法來啓動它但是在啓動過程中無法啓動了,下面我就把整理個解決過程與各位同學分享哦.今天從ubuntu 下安裝mysql 代碼如下 apt-get install
  • Ubuntu下安裝codeblocks13圖解教程
    Code::Blocks 是一個開放源碼的全功能的跨平台C/C++集成開發環境. linux下安裝codeblocks不是一件簡單的事,本文我們用圖解來介紹一下codeblocks在Ubuntu下的安裝.linux下安裝codeblocks本來就是件困難的事情,因爲通常情況下,需要安裝的各種依賴安裝 ...
  • 本文章來給各位同學詳細介紹關于在ubuntu下安裝配置Apache.MySql和PHP環境,希望此教程對各位同學會有所幫助哦.1:首先安裝apache:打開終端(ctrl+Alt+t),輸入命令:sudo apt-get install apache2即可安裝,安裝完後,打開浏覽器,在地址欄輸入:l ...
  • Mac OS X 下安裝Nginx問題碰到的朋友不多,因爲在mac系統安裝nginx環境不實用了,不過有人碰到了我們就一起來看看,說不定對你會有幫助呢.我是通過brew install nginx的,前面都很順利,n
一周排行
  • 本文章來給各位同學介紹一個關于Hibernate以組件作爲複合主鍵實例詳解,希望此教程對各位同學會有所幫助哦.有時候我的表中需要多個主鍵的時候,這個時候我們就需要使用組件來做爲表的主鍵.1.我們需要一份hiberna ...
  • 後面頁面public partial class _default : system.web.ui.page { protected void page_load(object sender, eventargs e
  • 漢字字符在浏覽器中會以urlencode的編碼形式傳值,現在我們來講講JAVA的url傳這種urlencode參數時如何轉碼處理.對于如下的URL傳參,能夠被伺服器request接收的參數值可能會丟失後面的部分(&a ...
  • Windows 8系統下修改Metro應用的默認安裝路徑教程
    Windows 8系統下如何修改Metro應用的默認安裝路徑呢?對于這個問題小編今天給各位
  • 在c#.net中可以利用app_data文件夾來實現下載文件及圖片文件的防盜鏈功能.原理一:在asp教程.net中app_data文件夾包含應用程序的本地數據存儲.它通常以文件(諸如microsoft access或 ...
  • 最近因爲換工作又開始搞Linux伺服器了,現在編譯link的時候,出現"undefined reference'dlclose@xxx函數'"錯誤,現在我把解決這個錯誤的方法整理如下對于linux ...
  • 我們在js中執行正則表達式有很多種方法,下面我來給各位朋友詳細介紹利用js test執行正則表達式吧,有需要了解的朋友可參考.test 方法 返回一個 Boolean 值,它指出在被查找的字符串中是否匹配給出的正則表
  • JS將Url參數轉換爲JSON格式的做法小編第一次接觸了,不過在網上找到一段代碼很不錯,各位一起來和小編看看吧.我記得用JS將Url參數轉換爲數組的方法我以前寫過的,結果昨天去面試,也有這個面試題目,然後不知道腦袋突
  • oppo手機自拍杆使用教程
    自拍杆又可以叫做自拍神器了,自拍杆幾乎所有手機都可以用到它了,我們今天爲各位介紹的是opp
  • 若成功,則返回 true.否則返回 false.如果切換目錄失敗,php教程 還會發出一條警告.語法ftp_chdir(ftp_connection,directory)參數 描述 ftp_connection 必需 ...