我正在运行 ngnix 和 php5-fpm,并且使用的是 Ubuntu 13.04
server {
server_name website.com;
access_log /srv/www/website.com/logs/access.log;
error_log /srv/www/website.com/logs/error.log;
root /srv/www/website.com/public_html;
location / {
index index.html index.htm index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/website.com/public_html$fastcgi_script_name;
}
}
我在 /srv/wwww/website.com/public_html/phpmyadmin 中有一个指向 /usr/share/phpmyadmin 的符号链接
不确定发生了什么,而且我对这一切还很陌生。
答案1
在对具体错误了解不多的情况下,我想说你应该检查文件权限(根据我的经验,“禁止”错误通常是由此引起的)。
转到你的 html 根目录(看起来像 /srv/www/website.com/public_html/)并输入
ls -Z
或者可能
ls -l
然后确保所有文件都属于运行 Web 服务器的用户。他们应该有一个适合您的 Web 服务器的用户和组 - 我没有专门使用过那个。或者他们可能是 root,我以前见过。SELinux 上下文(您只能在第一个命令中看到)应该是这样的
unconfined_u:object_r:httpd_sys_rw_content_t:s0
它可能不完全是那样,但如果它里面有“http”或者看起来与网络相关,那么你可能没问题。如果它没有出现,不要惊慌;我不确定 Ubuntu 是否会强制这样做。您可能只会获得用户/组权限。
包括 SELinux 上下文,您应该会得到类似这样的结果:
drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 css
drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 downloads
不过,可能也不完全一样。使用第二条命令,它看起来更像这样:
drwxr-xr-x. 2 apache apache 4096 Aug 19 00:41 css
drwxr-xr-x. 3 apache apache 4096 Jun 26 22:36 downloads
再次强调,用户和组不一定是 apache。如果它与您的 Web 服务器相关,或者可能是 root,那就很好了。
如果用户和组错误,你可以使用以下命令进行更改:
chown -R user:group folder
如果 SELinux 上下文错误(如果它不存在,您可能不需要担心它),您可以使用以下方法修复它:
chcon -R -t httpd_sys_content_t /srv/wwww/website.com/public_html/
也可能是缺少模块或 Web 服务器存在问题。我以前从未使用过 ngnix,但我记得在使用 lighttpd 而不是常用的 apache 时,我在处理 php 文件时也遇到了同样的意外困难。我不得不安装一个模块并进行微小的配置更改。遗憾的是,我无法提供任何建议 - 就像我说的,我没有专门使用过 ngnix。
答案2
好吧,我不确定符号链接哪里做错了,但我决定采用这种方法,而且成功了!我只是决定给 phpmyadmin 一个自己的子域名。
在 Ubuntu 13.04 上你必须确保使用
fastcgi_pass unix:/var/run/php5-fpm.sock;
代替
fastcgi_pass 127.0.0.1:9000;
这也给我带来了一些问题。
server {
listen 80;
server_name pma.website.com;
access_log /var/log/nginx/phpmyadmin/access.log;
error_log /var/log/nginx/phpmyadmin/error.log;
root /usr/share/phpmyadmin;
location / {
index index.php;
}
## Images and static content is treated different
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 360d;
}
location ~ /\.ht {
deny all;
}
location ~ /(libraries|setup/frames|setup/libs) {
deny all;
return 404;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
}
}