說明:本教程主要包括如下三個部分:php
1. 源代碼編譯安裝Nginxhtml
2. 源代碼編譯安裝php以及mysql、redis擴展模塊mysql
3. 配置虛擬主機nginx
文中所涉及安裝包程序均提供下載連接,歡迎使用web
運行環境以及前置條件:Ubuntu 12.04 LTS 已安裝g++編譯環境redis
全部源程序路徑位於:root@ubuntu:/home/shihai/Desktop/Nginx文件夾下,以下圖所示:sql
程序安裝路徑位於:/usr/local文件夾下ubuntu
第一部分:安裝Nginxvim
安裝Nginx前須要安裝依賴庫PCRE庫、zlib庫、SSL庫瀏覽器
安裝PCRE庫——爲了rewrite
pcre庫下載地址
tar –zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure --prefix=/usr/local/pcre-8.21
make
make install
安裝zlib庫——爲了gzip壓縮
zlib下載地址
tar –zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/zlib-1.2.8
make
make install
安裝ssl庫——支持ssl加密
openssl下載地址
tar -zxvf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./config --prefix=/usr/local/openssl-1.0.1
make
make install
安裝nginx——服務器軟件
nginx下載地址
tar -zxvf nginx-1.2.8.tar.gz
cd nginx-1.2.8
./configure --prefix=/usr/local/nginx-1.2.8 \
--with-pcre=../pcre-8.21/ \
--with-zlib=../zlib-1.2.8/
make
make install
設定nginx啓動的配置文件
/usr/local/nginx-1.2.8/sbin# ./nginx -c /usr/local/nginx-1.2.8/conf/nginx.conf
/usr/local/nginx-1.2.8/sbin# ./nginx -s reload
查看nginx進程
ps –ef|grep nginx
打開localhost
當你看到上圖所示內容時,說明Nginx服務器已經安裝成功
第二部分:安裝php以及mysql、redis擴展模塊
安裝ncurses——安裝mysql前置條件:
ncurses下載地址
tar -zxvf ncurses-5.4.tar.gz
cd ncurses-5.4
./configure
make
make install
安裝mysql——此處使用是源碼包編譯安裝
mysql下載地址
tar -zxvf mysql-5.1.73.tar.gz
cd mysql-5.1.73
./configure --prefix=/usr/local/mysql-5.1.73
make
make install
安裝curl庫——用於curl請求
curl庫下載地址
tar -zxvf curl-7.39.0.tar.gz
./configure --prefix=/usr/local/curl-7.39.0
make
make install
安裝php
php下載地址
tar -zxvf php-5.2.14.tar.gz
gunzip php-5.2.14-fpm-0.5.14.diff.gz
patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff
cd php-5.2.14
./configure --prefix=/usr/local/php-5.2.14\
--enable-fastcgi \
--enable-fpm \
--enable-sockets \
--enable-mbstring \
--with-mysql=/usr/local/mysql-5.1.73 \
--with-mysqli=/usr/local/mysql-5.1.73/bin/mysql_config\
--with-pdo-mysql=/usr/local/mysql-5.1.73 \
--with-curl=/usr/local/curl-7.39.0 \
--with-openssl=/usr/local/openssl-1.0.1 \
--with-mcrypt
make
make install
啓動php-fpm使用以下命令:
/usr/local/php-5.2.14/sbin# ./php-fpm start
啓動php-fpm的時候出現
Startingphp_fpm Dec 29 15:27:32.502790 [ERROR] fpm_unix_conf_wp(), line 124: pleasespecify user and group other than root, pool 'default'
解決辦法:進入目錄:/usr/local/php-5.2.14/etc只須要修改php-fpm.conf
Unix user of processes
<!-- <value name="user">nobody</value> -->
Unix group of processes
<!-- <value name="group">nobody</value> -->
將<!––>去掉便可。至於user/group根據實際狀況修改(www)。
從新啓動 /usr/local/php-5.2.14/sbin# ./php-fpm restart 成功了
安裝redis擴展模塊:
redis下載地址
unzip phpredis-master.zip
exportPATH=/usr/local/php-5.2.14/bin/:$PATH
cp -r phpredis-master php-5.2.14/ext/
cd php-5.2.14/ext/phpredis-master
phpize
./configure--with-php-config=/usr/local/php-5.2.14/bin/php-config
make
make install
擴展庫路徑:/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/
在php擴展庫路徑下,能夠找到編譯生成的redis擴展庫文件redis.so
打開路徑/usr/local/php-5.2.14/lib/php.ini下的php.ini文件,使用命令以下:
vim php.ini
文件內容快速查找(按下「N」能夠查找下一個匹配位置),使用命令以下:
:?extension
找到如圖所示的指定位置後插入如下內容:
extension = redis.so
php會自動到擴展庫路徑下加載redis.so文件
若是沒找到php.ini文件,能夠全盤搜索該文件,使用命令以下:
find / -name php.ini
搜索結果顯示此路徑下存在/etc/php5/cli/php.ini文件,因而拷貝至/usr/local/php-5.2.14/lib,使用命令以下:
/usr/local/php-5.2.14/lib# cp /etc/php5/cli/php.ini php.ini
此處須要重啓php-fpm才能生效,使用命令以下:
/usr/local/php-5.2.14/sbin# ./php-fpm restart
第三部分:配置nginx虛擬主機
新建虛擬主機配置文件目錄
/usr/local/nginx-1.2.8# mkdir vhosts
cd vhosts
touch scott.qq.com.conf
vim scottshi.qq.com.conf
輸入如下內容配置自定義虛擬主機:
server {
listen 8001;/*監聽端口號*/
server_name scott.qq.com;/*域名*/
access_log/usr/local/nginxweb/htdocs/access.log;/*站點訪問日誌*/
location / {
root /usr/local/nginxweb/htdocs/;/*頁面文件目錄*/
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;/*服務器錯誤頁面*/
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI serverlistening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; /*Nginx轉發請求地址*/
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME/usr/local/nginxweb/htdocs/$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
保存退出後,進入nginx的配置文件nginx.conf
/usr/local/nginx-1.2.8/conf# vim nginx.conf
與默認server層級並列且位於http層級以內,添加以下內容,使得自定義虛擬主機生效:
include /usr/local/nginx-1.2.8/vhosts/*;
保存退出後,重啓nginx服務器,從新載入配置文件,使用命令以下:
/usr/local/nginx-1.2.8/sbin# ./nginx –s reload
編寫php測試頁面:
進入目錄/usr/local/nginxweb/htdocs/,新建test.php文件,輸入test.php頁面內容:
<?php
Phpinfo();
?>
保存退出
使用瀏覽器,訪問如下地址:
scott.qq.com:8001/test.php
此頁面會顯示配置php時的指令還有各個功能模塊,包括fastcgi、mysql、curl、redis等