初學者的 Linux 安裝 Nginx PHP fpm 配置教程

 

網上的不少 Linux 操做系統下安裝 Nginx + PHP 的教程都很老, 並且各類依賴, 對於初學者來講比較容易混淆, 因此, 我從新寫了此篇博客, 用於介紹最簡單的 Linux 下安裝 Nginx + PHP 的方法.php

此文會常常更新, 保持與時俱進. 若是你不是在 ideawu.net 網站看到本文, 請訪問 ideawu.net, 閱讀最新的版本.html

 

安裝 Ubuntu Server

你可能聽過別的 Linux 發行版, 但若是你是初學者, 而且對 Nginx + PHP 安裝不瞭解, 建議你安裝 Ubuntu Server. 請到 Ubuntu 的官網下載最新版本的 ISO 文件, 我用的是 12.04.3-server-amd64.iso.nginx

安裝依賴軟件

在 Ubuntu 下安裝軟件, 能夠用 sudo aptitude 命令. 這是一個相似圖形界面的軟件, 啓動後, 按 「/」 輸入軟件名進行搜索, 選中後按 「+」, 再按 「g」 便可安裝.ubuntu

須要安裝的依賴軟件包是: libpcre3-dev, libxml2-dev, zlib1g-dev.瀏覽器

源碼安裝 Nginx

編譯 Nginx

到 Nginx 的官網下載最新版本的 Nginx 源碼, 當前(2013-11-11)的最新版本是 1.5.6, 將來會有升級, 因此下載的 wget 只是一個示例, 你應該替換成最新的版本.服務器

wget http://nginx.org/download/nginx-1.6.0.tar.gz
tar xzf nginx-1.6.0.tar.gz
cd nginx-1.6.0
./configure
make
sudo make install

Nginx 會被安裝在 /usr/local/nginx 目錄下.socket

啓動 Nginx

sudo /usr/local/nginx/sbin/nginx

中止 Nginx

sudo /usr/local/nginx/sbin/nginx -s stop

驗證 Nginx 是否已經啓動

打開瀏覽器, 訪問 http://127.0.0.1/ 看看網頁是否能打開. 若是你在另外一臺機器上訪問, 把 127.0.0.1 換成 Ubuntu 服務器的 IP 地址便可. 以下圖ide

圖

更多的 Nginx 配置文件的修改, 等咱們安裝完 PHP 以後再關心, 先使用默認的配置文件運行起來. 默認的配置文件在 /usr/local/nginx/conf/nginx.conf 文件.模塊化

源碼安裝 PHP fpm fastcgi

編譯 PHP

一樣, 到 PHP 的官網下載最新版本的 PHP 源碼.php-fpm

wget http://us1.php.net/get/php-5.5.5.tar.bz2/from/cn2.php.net/mirror
tar xjf mirror
cd php-5.5.5
./configure --enable-fpm
make
sudo make install

PHP 的可執行文件(php, php-cgi)會被安裝到 /usr/local/bin 目錄下. 配置文件是 /usr/local/lib/php.ini, 這個文件並不存儲, 你須要本身建立.

驗證 PHP 是否已經安裝成功

php -v

上面的命令應該有版本信息輸出.

建立 php.ini 配置文件

sudo cp php.ini-production /usr/local/lib/php.ini

不過, 如今你還用不上, 等用的時候再修改這個文件.

修改 Nginx 配置文件支持 PHP

編譯 Nginx 的配置文件 /usr/local/nginx/conf/nginx.conf, 加入下面的內容. 原配置文件裏有相似的內容, 你加在那段內容的緊跟後面便可.

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

而後重啓 Nginx

sudo /usr/local/nginx/sbin/nginx -s reload

這時候, Nginx + PHP 還不能工做, 你還須要啓動 php-cgi 進程.

啓動 php-cgi

/usr/local/bin/php-cgi -b 9000

驗證 Nginx + PHP 已經正常工做

首先, 你須要建立一個 PHP 腳本, 新建一個文件 /usr/local/nginx/html/index.php, 這個文件的內容只有一行:

<?php phpinfo();

而後修改它的文件屬性

sudo chmod ugo+rwx -R /usr/local/nginx/html

而後, 用瀏覽器訪問 http://127.0.0.1/index.php 你應該能看到 PHP 的信息, 以下圖

圖

用 fpm 方式啓動 php-cgi 進程

剛纔的一行命令雖然啓動了 php-cgi, Nginx + PHP 也正常工做了, 但這不是正式環境的作法, 只是一種臨時方法. 正式的生產環境通常用 fpm 方式啓動 php-cgi 爲守護進程.

php-fpm 程序安裝在 /usr/local/sbin/php-fpm.

建立 php-fpm.conf

PHP 默認安裝了一個 php-fpm.conf.default 的模板文件, 須要將它更名:

sudo cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

而後修改 /usr/local/etc/php-fpm.conf, 將

;pid = run/php-fpm.pid

前面的分號(註釋)去掉.

建立 nobody 用戶

sudo groupadd nobody
sudo useradd -g nobody nobody

啓動和中止 php-fpm

# 啓動
sudo /usr/local/sbin/php-fpm
# 中止
sudo kill `cat /usr/local/var/run/php-fpm.pid`

這時候, php-cgi 已經做爲守護進程啓動了.

單獨編譯安裝 PHP 模塊

上面編譯的 PHP 可能沒有包含一些你須要的模塊, 不過別擔憂, 你能夠沒必要從新編譯整個 PHP, 而是隻編譯和安裝缺乏的那個模塊. 這也是 PHP 模塊化的好處. 下面以單獨安裝 PHP 的 sockets 模塊爲例.

進入你的 PHP 源碼的 ext/sockets 目錄. ext 目錄是全部模塊的總目錄. 而後執行

/usr/local/bin/phpize
./configure
make
sudo cp modules/sockets.so /usr/local/lib/php/extensions/no-debug-non-zts-20121212/

而後修改 php.ini 配置文件, 找到

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

在其後面加上

extension=sockets.so

而後重啓 php-fpm. 這樣, sockets 模塊就已經安裝成功了.

Related posts:

  1. Nginx + PHP 配置和啓動腳本
  2. Mac 下建立隱藏用戶
  3. Nginx 499 錯誤碼以及 AJAX 調用失敗
  4. Linux+Keepalived雙機互備
  5. HBase 在 Linux 下安裝和配置

Posted by ideawu at 2013-11-11 23:25:46 Tags: fpmnginx

相關文章
相關標籤/搜索