Linux下Nginx、MySQL、PHP5、phpMyAdmin安装与配置

时间:2023-01-27 20:14:12

以前在Linux下,只配过LAMP,没尝试过Nginx,这次换个口味尝试一下,中间遇到了一个比较无语的小错误浪费了很长时间(下面会说到)。总体来说还算比较顺利吧,不过安装PHP的目的只是为了用phpMyAdmin,所以对PHP的版本等方面都没有要求,如果要求PHP版本是5.2的还需要额外操作。配置好之后,安装了Discuz! X2.5,简单看了下没有什么问题。

1.环境

OS:Ubuntu 13.04 64bits

2.安装Nginx

sudo apt-get install nginx

配置文件在/etc/nginx下
程序文件在/usr/sbin/nginx下
日志文件在/var/log/nginx下
网站目录在/usr/share/nginx/html下,注意:需要为目录树加写权限:sudo chmod -R 777 /usr/share/nginx/html
并已经在/etc/init.d/下创建了启动脚本nginx

启动nginx的命令:sudo /etc/init.d/nginx start
然后就可以访问通过http://localhost/访问了。如果看到Welcome to nginx!,下面一大片英文,则代表安装成功。否则,请到日志文件查看错误原因。

3.安装MySQL

sudo apt-get install mysql-server mysql-client

安装过程中,会要求输入两次root的密码。

此外,需要执行以下操作,才能解除只有本地可以访问的限制
在/etc/mysql/my.cnf找到:bind-address 127.0.0.1,在这一行前加#注释掉。

4.安装PHP5

这里安装了很多组件,其中php5-fpm是FastCGI Process Manager,是Nginx配合PHP所必须使用的。php5-mcrypt是phpMyAdmin需要使用到的。

sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql php5-gd php-apc php5-common

5.配置Nginx使配合PHP5

5.1 /etc/nginx/nginx.conf

可以根据需要修改这两个变量的值:worker_processeskeepalive_timeout

5.2 /etc/nginx/sites-available/default

1.找到index,添加index.php

2.找到server_name,改为你所希望的域名(准确,正则,glob),当然也可以配置server里的其他属性,如监听端口号listen等。

3.找到如下一段(这是Nginx配合PHP的部分):

nginx配合php(修改前)
1234567891011 #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;#}

修改为:

nginx配合php(修改后)
1234567891011 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_passunix:/var/run/php5-fpm.sock;        fastcgi_indexindex.php;        includefastcgi_params;}

注意:千万不要忘了取消掉前后大括号所在行的注释!我就是在这里耽误了很久时间的。

此外,要注意fastcgi是使用的9000端口,还是sock的形式。网上很多教程都是用的9000端口那行,而在我的实际操作中发现netstat -nat | grep php得到的是sock这种。我这里安装的PHP版本是5.4的,不知其他版本情况。

4.删除如下一段的注释(下面为删除后的代码):

location ~ /\.ht
123456 # deny access to .htaccess files, if Apache's document root# concurs with nginx's one#location ~ /\.ht {        deny all;}

6.测试Nginx与PHP

创建探针文件phpinfo.php,放到Nginx网站根目录下。

phpinfo.phpPHP
1 <?phpphpinfo();?>

重启Nginx服务器:sudo /etc/init.d/nginx restart

进入http://localhost/phpinfo.php,查看探针文件。

7.phpMyAdmin的安装

从phpMyAdmin的sf主页上下载最新版本的phpMyAdmin(点击进入)。

将得到的压缩文件放到/usr/share/nginx/html中,解压即可(可以根据自己的需要修改目录名字)。注意:phpMyAdmin目录需要权限为755,否则显示“配置文件权限错误,无法写入!”。

可以将phpMyAdmin根目录下的config.sample.inc.php复制一份并改名为config.inc.php,即可作为默认的配置文件。

可以通过配置文件对验证方式进行修改,这里就不多介绍了。需要注意的是,如果使用cookie验证方法,则必须在blowfish_secret后面填上任意字母作为短语密码,如果留空会在登陆后报错。

其他部分可以保持不变,也可以根据自己需求修改。