博主之前一直用的是apache,随着网站负荷量增高,感觉apache稍微有点力不从心了。随着nginx越来越流行,而且其功能强大,博主准备采用nginx作为自己的服务器啦。
每当到了环境配置的时候,博主便会去网上各种搜集资料,然而感觉他们讲的都条理不一,有的地方并不符合自己的配置习惯,所以博主习惯自己配置的同时把配置过程总结一下,方便自己,也方便大家。
好,接下来我们就开始我们的环境配置之旅吧。
Nginx
1.更新源
2.安装nginx
sudo apt-get install nginx
|
sudo
apt
-
get
install
nginx
|
3.检查是否安装成功
输入localhost或者远程地址,若出现Welcome To Nginx则证明安装成功。
如果没有看到,可以运行
杀掉apache进程,因为可能80端口被占用了。
4.更改运行目录
默认的nginx目录是/usr/share/nginx/html,我们将其修改为/var/www,当然可以根据个人习惯灵活更改。
修改/etc/nginx/sites-available/default文件
root /usr/share/nginx/html;
|
root
/
usr
/
share
/
nginx
/
html
;
|
更改为
再将
index index.html index.htm;
|
index
index
.
html
index
.
htm
;
|
更改为
index index.html index.php index.htm;
|
index
index
.
html
index
.
php
index
.
htm
;
|
重启nginx
sudo service nginx restart
|
sudo
service
nginx
restart
|
我们在/var/www目录下新建index.html文件,写入一些测试文字。
重新访问localhost或者远程地址,可以看到刚才设置的index.html文件中的内容,说明目录已经更改成功了。
PHP
安装PHP以及相关扩展。
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
|
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服务端和客户端。
sudo apt-get install mysql-server mysql-client
|
sudo
apt
-
get
install
mysql
-
server
mysql
-
client
|
在安装时可能提示你输入root用户的密码,设置即可。
phpMyAdmin
执行如下命令,安装phpMyAdmin。
sudo apt-get install phpmyadmin
|
sudo
apt
-
get
install
phpmyadmin
|
创建软连接
sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin
|
sudo
ln
-
s
/
usr
/
share
/
phpmyadmin
/
/
var
/
www
/
phpmyadmin
|
我们将创建一个根目录为/var/www,链接名为phpmyadmin的文件,指向/usr/share/phpmyadmin
spawn-fcgi
1.安装fastcgi
sudo apt-get install spawn-fcgi
|
sudo
apt
-
get
install
spawn
-
fcgi
|
2.配置fastcgi
修改 /etc/nginx/fastcgi_params文件,增加下面一行
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param
SCRIPT
_FILENAME
$
document_root
$
fastcgi_script_name
;
|
修改/etc/php5/cgi/php.ini文件,将下面一行取消注释
这样php-cgi方能正常使用SCRIPT_FILENAME这个变量
修改/etc/nginx/sites-available/default文件,我们之前修改的目录地址是/var/www,将
#location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #}
|
#location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include fastcgi_params;
#}
|
修改为
location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; }
1
2
3
4
5
6
7
8
9
10
11
12
|
location
~
\
.
php
$
{
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
fastcgi
_pass
127.0.0.1
:
9000
;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index
index
.
php
;
fastcgi_param
SCRIPT_FILENAME
/
var
/
www
$
fastcgi_script_name
;
include
fastcgi_params
;
}
|
3.开启fastcgi进程
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
|
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文件测试一下了
运行结果类似如下
spawn-fcgi: child spawned successfully: PID: 11775
|
spawn
-
fcgi
:
child
spawned
successfully
:
PID
:
11775
|
4.设置开机启动fastcgi
修改/etc/rc.local文件,添加下面一行
/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
|
/
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
sudo service nginx restart
|
sudo
service
nginx
restart
|
我们可以在/var/www目录下新建index.php文件测试运行,发现已经可以运行PHP文件了。
测试运行
所有配置已经完毕,现在我们输入localhost和localhost/phpmyadmin便可以轻松加愉快地访问了。
如有问题,欢迎交流。
转载请注明:静觅 » Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin详细步骤