博主之前一直用的是 apache,随着网站负荷量增高,感觉 apache 稍微有点力不从心了。随着 nginx 越来越流行,而且其功能强大,博主准备采用 nginx 作为自己的服务器啦。 每当到了环境配置的时候,博主便会去网上各种搜集资料,然而感觉他们讲的都条理不一,有的地方并不符合自己的配置习惯,所以博主习惯自己配置的同时把配置过程总结一下,方便自己,也方便大家。 好,接下来我们就开始我们的环境配置之旅吧。
Nginx
1.更新源
1 |
sudo apt-get update |
2.安装 nginx
1 |
sudo apt-get install nginx |
3.检查是否安装成功
输入 localhost 或者远程地址,若出现 Welcome To Nginx 则证明安装成功。 如果没有看到,可以运行
1 |
sudo killall apache2 |
杀掉 apache 进程,因为可能 80 端口被占用了。
4.更改运行目录
默认的 nginx 目录是/usr/share/nginx/html,我们将其修改为/var/www,当然可以根据个人习惯灵活更改。 修改/etc/nginx/sites-available/default 文件
1 |
root /usr/share/nginx/html; |
更改为
1 |
root /var/www |
再将
1 |
index index.html index.htm; |
更改为
1 |
index index.html index.php index.htm; |
重启 nginx
1 |
sudo service nginx restart |
我们在/var/www 目录下新建 index.html 文件,写入一些测试文字。 重新访问 localhost 或者远程地址,可以看到刚才设置的 index.html 文件中的内容,说明目录已经更改成功了。
PHP
安装 PHP 以及相关扩展。
1 |
sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl |
执行上述指令即可。 此时有的小伙伴想要测试运行 PHP 文件了,然而很悲剧地告诉你是不可以的,因为你还没有配置 fastcgi,继续往下看。
MySQL
执行如下命令,安装 MySQL 服务端和客户端。
1 |
sudo apt-get install mysql-server mysql-client |
在安装时可能提示你输入 root 用户的密码,设置即可。
phpMyAdmin
执行如下命令,安装 phpMyAdmin。
1 |
sudo apt-get install phpmyadmin |
创建软连接
1 |
sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin |
我们将创建一个根目录为/var/www,链接名为 phpmyadmin 的文件,指向/usr/share/phpmyadmin
spawn-fcgi
1.安装 fastcgi
1 |
sudo apt-get install spawn-fcgi |
2.配置 fastcgi
修改 /etc/nginx/fastcgi_params 文件,增加下面一行
1 |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
修改/etc/php5/cgi/php.ini 文件,将下面一行取消注释
1 |
cgi.fix_pathinfo=1; |
这样 php-cgi 方能正常使用 SCRIPT_FILENAME 这个变量 修改/etc/nginx/sites-available/default 文件,我们之前修改的目录地址是/var/www,将
1 |
|
修改为
1 |
location ~ \.php$ { |
3.开启 fastcgi 进程
1 |
sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid |
参数含义如下
-f 指定调用 FastCGI 的进程的执行程序位置,根据系统上所装的 PHP 的情况具体设置 -a 绑定到地址 addr -p 绑定到端口 port -s 绑定到 unix socket 的路径 path -C 指定产生的 FastCGI 的进程数,默认为 5(仅用于 PHP) -P 指定产生的进程的 PID 文件路径 * -u 和-g FastCGI 使用什么身份(-u 用户 -g 用户组)运行,Ubuntu 下可以使用 www-data,其他的根据情况配置,如 nobody、apache 等现在可以在 web 根目录下放个探针或 php 文件测试一下了
运行结果类似如下
1 |
spawn-fcgi: child spawned successfully: PID: 11775 |
4.设置开机启动 fastcgi
修改/etc/rc.local 文件,添加下面一行
1 |
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid |
修改完之后,重启 nginx
1 |
sudo service nginx restart |
我们可以在/var/www 目录下新建 index.php 文件测试运行,发现已经可以运行 PHP 文件了。
测试运行
所有配置已经完毕,现在我们输入 localhost 和 localhost/phpmyadmin 便可以轻松加愉快地访问了。 如有问题,欢迎交流。