nginx下设置phpmyadmin

实现的目的:

假设域名是 abc.com,nginx配置文件是/etc/nginx/conf.d/abc.com.conf,网站根目录是/var/www/abc

phpmyadmin目录是/var/www/phpmyadmin

现在想实现的目的是:通过配置abc.com.conf文件,使得在浏览器里输入abc.com/phpmyadmin能直接访问phpmyadmin

修改abc.com.conf:

vi /etc/nginx/conf.d/abc.com.conf

找到location ~ \.php$

修改成下面的形式:

location ~ \.php$ {
    set $php_root /var/www/abc;
    if ($request_uri ~* /phpmyadmin) {
        set $php_root /var/www/phpmyadmin;
    }

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}

这样就可以了

解释:

nginx只能有匹配一个location地址,所以通过$php_root变量来匹配不同的php-fpm访问。

二、phpmyadmin不能访问

1、浏览器里输入abc.com/phpmyadmin后,提示

Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

解决:
这是由于php.ini文件里session.save_path = "/var/lib/php/session"设置的问题。

如果这一行被注释掉了,那么先取消注释(去掉前面的逗号)。

然后新建一个session目录:

mkdir /var/lib/php/session

设置session的所有者为php-fpm的使用,比如nginx:

chown -R nginx:nginx session

2、

 

posted @ 2013-05-07 16:00  cuxnil  阅读(1142)  评论(0编辑  收藏  举报