ubuntu 11.10 安装 nginx + php + mysql

出自:wiki.ubuntu.org.cn/Nginx#.E5.AE.89.E8.A3.85nginx

Ubuntu安装之后的文件结构大致为:

  • 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
  • 程序文件在/usr/sbin/nginx
  • 日志放在了/var/log/nginx中
  • 并已经在/etc/init.d/下创建了启动脚本nginx
  • 默认的虚拟主机的目录设置在了/var/www/nginx-default (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置)

 

安装步骤如下 :

 

安装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 文件 ,进行测试了 。

你可能感兴趣的:(ubuntu)