free website counter

nginx配置对php的支持,安装phpmyadmin

  Nginx默认不支持php解释器,虽然Backend动态语言不使用php,但是比较常用的数据库图形化管理工具phpmyadmin,为php所写,要使用的话,必须配置nginx对php的支持。这一点上,通过FastCGI进行支持。昨天下午配置的时候,遇到各种问题,终于搞定。网上的博客大都年代比较久远,复制粘贴真是没有好下场,记录一下一些要点。

1. Nginx源码安装路径

  网上关于配置Nginx对php支持的博客,Nginx大都使用apt-get安装,但我始终感觉apt-get安装的目录组织,操作起来有点麻烦。而通过源码安装,Nginx所有相关的东西,都在/usr/local/nginx目录下,操作显得较为方便。

  nginx.conf中配置了root路径,即默认Nginx加载html文件的路径,默认是nginx/html,这一点,影响到下面对php支持的配置项,很多直接复制粘贴别人的配置,不顾自己的环境,肯定成功不了。


2. 安装php-cgi等工具

sudo apt-get install php5-fpm php5-cli php5-cgi mysql-server php5-mysql


3. 安装spawn-fcgi

  通过spawn-fcgi,管理FastCgi,它原属于lighttpd,但 9.10 后,spawn-fcgi被分离出来单独成包:

sudo apt-get install spawn-fcgi


4. nginx.conf相关配置

  配置nginx.conf,相当于nginx收到关于php请求时,将其转发给后端的php解释器进行处理,cgi的一种典型实现。fastcgi_param 为默认的Web目录,前面默认设置为html,与配置文件中的root设置要对应。最后一个include的文件,位于conf/路径下

index index.php index.html index.htm;

location ~ \.php$ { 
	fastcgi_pass 127.0.0.1:9000; 
	fastcgi_index index.php; 
	fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; 
	include fastcgi_params; 
}


5. 需要启动的服务

  首先重启nginx,然后启动fastcgi php。当出现error时,可能是nginx转发了请求,但是后端php解释器没有启动,查看一下9000端口的情况netstat –ant | grep 9000。具体可以查看error.log中的相应记录。

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi


6. 安装phpmyadmin

  首先从http://sourceforge.net/projects/phpmyadmin/下载phpmyadmin的最新版本,解压后,拷贝到/usr/local/nginx/html/中,权限设置成755,则可以通过ip/phpmyadmin进行访问图形化管理界面。

Published 07 May 2015
分享按钮