出自:wiki.ubuntu.org.cn/Nginx#.E5.AE.89.E8.A3.85nginx
Ubuntu安装之后的文件结构大致为:
安装步骤如下 :
安装nginx
sudo apt-get install nginx
安装 nginx 成功以后 , 启用 nginx
sudo /etc/init.d/nginx start
启动成功 , 会显示 : starting nginx:nginx , 也可以用 startx 命令 , 进入 Ubuntu 的桌面窗口 , 用火狐浏览器访问 127.0.0.1 , 会显示 Welcome to nginx , 不过我的 Ubuntu 之前装过了 Apache , Apache 占用着 80 端口 , 虽说安装成功了 , 但是并没有启动成功 , 这时候需要手动修改 nginx 的端口号信息 , 如下
打开 /etc/nginx/sites-available/default 文件 , 要对这个文件进行修改 , 我用的不是 root 账号 , 所以要提前用命令获取对 /etc/nginx/sites-available/ 文件夹的 写权限 , 命令为 : sudo chmod -R 777 /etc/nginx/sites-available
取得权限以后 , 进行修改 , 具体的修改 server{ } 里的内容
去掉 listen 前面的 # 号 , # 号在该文件里是注释的意思 , 并且把 listen 后面的 80 端口号改为 8001
root /usr/share/nginx/www 这句的意思是指明了 nginx 的默认站点文件夹 ,我把这行前面加了个 # 号 , 也就是给注释掉 , 重新写了一行 root /var/www/nginx , 因为 apache 的默认站点文件夹是 /var/www , 我就在 www 里见了一个 nginx 文件夹 , 专门放 nginx 的站点 , 要在 var/www 目录下操作 , 注意权限问题 .
修改了 nginx 的端口号以后 , 访问 nginx 的站点必须加上端口号 8001 : http://127.0.0.1:8001
接着 安装 PHP 和 Mysql
sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
之前安装 apache 的时候 , 已经安装了 mysql
安装 FastCgi
/usr/bin/spawn-fcgi这个文件来管理 FastCgi,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi 被分离出来单独成包:
sudo apt-get install spawn-fcgi
至此 , 所有的 安装 已经完成了 , 接下来配置 nginx 对 php 的支持
打开 /etc/nginx/sites-available/default 文件 , 找到 server{} 里的 location ~\.php${} , 把整段代码前面的 # 号给去掉 , 并修改为如下
location ~\.php${
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx$fastcgi_script_name;l
include /etc/nginx/fastcgi_params;
}
至此 , 基本配置已经完成 , 但是如果 Ubuntu 重启 , 那么 fastcgi 不会自动启用 , 切换到命令窗口 , 用命令重启 nginx 和 fastcgi php
sudo /etc/init.d/nginx restart
spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
这样很累 , 需要每次重启 Ubuntu , 都要手动启用下 fastcgi ,
fastcgi 启动成功 , 会输出 spawn-fcgi : child spawned successfully : PID xxxx
wiki.ubuntu.org.cn/Nginx#.E5.AE.89.E8.A3.85nginx 这里介绍的 设置 让 fastcgi 开机自动运行的办法 , 我这不好用
主要是我的 Ubuntu 的 /etc/init.d 目录下 , 执行 cp nginx php-cgi 时 报错 , 找不到 php-cgi
最后找到了一个解决办法 , 就是让 fastcgi 跟随 nginx 启动和停止 .
来源 : http://bailkai.blog.163.com/blog/static/82011736201101815343425/
打开 /etc/init.d/nginx 文件
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
pkill -9 php-cgi
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
pkill -9 php-cgi
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
粗体部分 是添加的 , 修改文件 , 注意权限 , 添加了配置以后 , 手动启动 fastcgi 的命令将不可用 .
都完成以后 , 就可以在 /var/www/nginx 目录下新建一个 php 文件 ,进行测试了 。