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、