說明:本教程由三部分組成如下:
1.??????源碼編譯安裝Nginx
2.??????源碼編譯安裝php以及mysql、redis擴展模塊
3.??????配置虛擬主機
文中所涉及安裝包程序均提供下載鏈接,歡迎使用
?
執行環境以及前置條件:Ubuntu 12.04 LTS 已安裝g++編譯環境
全部源程序路徑位于:root@ubuntu:/home/shihai/Desktop/Nginx目錄下。例如以下圖所看到的:
程序安裝路徑位于:/usr/local目錄下
?
第一部分:安裝Nginx
安裝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——server軟件
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
當你看到上圖所看到的內容時。說明Nginxserver已經成功安裝
?
第二部分:安裝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
?
tar –xjf libxml2-2.6.23.tar.bz
cd libxml2-2.6.23
./configure
make
make install
rpm –ivh libxml2-devel-2.6.23-1.i386.rpm?
安裝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-libxml2
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;/*監聽port號*/
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;/*server錯誤頁面*/
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/*;
保存退出后,重新啟動nginxserver,又一次加載配置文件,使用命令例如以下:
/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等
?
?
?
?
版權聲明:本文博主原創文章,博客,未經同意不得轉載。