I fail to understand why entrance to PHPmyadmin is forbidden (http://my_ip/phpmyadmin
). Here's what I did to install it:
On a pure Ubuntu 16.04 machine (server, xenial) I've installed LEMP with php-fpm 7.0. Nginx conf is default:
apt-get update -y
apt-get upgrade nginx mysql-server php-fpm php-mysql -y
I then installed PMA and permitted it:
DEBIAN_FRONTEND=noninteractive apt-get upgrade phpmyadmin php-mbstring php-mcrypt -y
ln -s /usr/share/phpmyadmin/ /var/www/html/
chown -R www-data:www-data /usr/share/phpmyadmin/ /var/www/html
chmod -R a-x,a=rX,u+w /usr/share/phpmyadmin/ /var/www/html
I really fail to understand what's wrong from the error log:
directory index of "/var/www/html/phpmyadmin/" is forbidden
What might cause PMA to be forbidden?
Update – general:
- My nginx.conf.
- My fastcgi.conf.
Update for Jenny:
I removed the symlink and added this conf inside the http
block in nginx.conf
and restarted the server, but no change is seen:
server {
location /phpmyadmin {
index index.php index.html index.htm;
root /usr/share;
}
}
Best Answer
When you symlink a directory, you are telling nginx that "when you need to use
/var/www/html/phpmyadmin
, you should instead look at/usr/share/phpmyadmin/
. And that directory is not under your webroot directory, so nginx won't be using it.Instead of using a symlink, tell nginx to start using that directory directly. Example:
That will tell nginx that the location
/phpmyadmin
lives under/usr/share
instead of under/var/www/html/
.Or, if the
/usr/
and the/var/
file systems are on the same partition, you could do a hard link instead of a symlink. But that's likely to cause problems for you if you ever change the partition layout.