?參考Ubuntu中文wiki:http://wiki.ubuntu.org.cn/Nginx
0. 版本信息
nginx:1.4.6
php:5.5.9
MySQL:5.5
1. 安裝nginx
sudo apt-get install nginx
nginx文件結構
/etc/nginx:所有配置文件,虛擬主機在/etc/nginx/sites-available下?|
/usr/sbin/nginx:程序文件路徑
/var/log/nginx:日志文件
/etc/init.d/nginx:nginx啟動腳本
2. 啟動nginx
sudo /etc/init.d/nginx start
此時訪問http://localhost/,應該能正常訪問。
可能的問題
80端口被占用
Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
修改文件:/etc/nginx/sites-available/default,去掉 listen 前面的 # 號 , # 號在該文件里是注釋的意思 , 并且把 listen 后面的 80 端口號改為自己的端口,訪問是需要添加端口號。
403錯誤
可能是nginx配置文件里的網站路徑不正確,修改/etc/nginx/sites-available的root網站路徑
3. 配置PHP和MySQL
安裝php和MySQL
sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql mysql-client
安裝FastCgi(Common Gateway Interface,通用網關接口)
sudo apt-get install php5-fpm
配置nginx
修改/etc/nginx/sites-available/default 修改主機名
server_name localhost;
修改首頁
index index.php index.html index.htm;
去掉以下配置的注釋以支持php腳本
location ~ \.php$ {
include /etc/nginx/fastcgi_params; #需放在第一行,否則會出錯
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
}
重啟nginx
/etc/init.d/nginx stop
/etc/init.d/nginx start
啟動fastcgi
spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
讓php-cgi開機自啟動
為了讓php-cgi開機自啟動: Ubuntu開機之后會執行/etc/rc.local文件中的腳本 所以我們可以直接在/etc/rc.local中添加啟動腳本。 spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi 添加到語句:exit 0 前面才行
創建、測試phpinfo
sudo vi /usr/share/nginx/html/info.php
測試
打開http://localhost/info.php
測試MySQL
vim /usr/share/nginx/html/mysql.php
<?php
header("content-type:text/html;charset=utf-8");
$conn = mysql_connect('localhost','root','chenxu0909');
if(!$conn) {
echo 'connect mysql error'.mysql_error();
die();
}
else {
echo 'connect mysql success';
}
// 創建數據庫
if(mysql_query("CREATE DATABASE IF NOT EXISTS `test` CHARACTER SET utf8",$conn)) {
echo "Database created";
}
else {
echo 'Create database failed'.mysql_error();
die();
}
mysql_close($conn);
訪問http://localhost/mysql.php