Nginx change/phpmyadmin目录
我正试图让example.com/phpmyadmin从我的站点路由到另一个目录,这样我就可以为我的所有站点使用一个通用phpmyadmin安装。我试过这个:Nginx change/phpmyadmin目录,nginx,phpmyadmin,Nginx,Phpmyadmin,我正试图让example.com/phpmyadmin从我的站点路由到另一个目录,这样我就可以为我的所有站点使用一个通用phpmyadmin安装。我试过这个: server { listen 80; server_name example.com; location / { root /home/web/example.com/public_html; index index.html index.htm index.
server {
listen 80;
server_name example.com;
location / {
root /home/web/example.com/public_html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /home/web/example.com/public_html;
if ($request_uri ~* /phpmyadmin) {
root /home/web/phpmyadmin;
}
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name example.com;
location / {
root /home/web/example.com/public_html;
index index.html index.htm index.php;
}
location /phpmyadmin {
root /home/web/phpmyadmin;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /home/web/example.com/public_html;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
这似乎根本不起作用
我也试过:
server {
listen 80;
server_name example.com;
location / {
root /home/web/example.com/public_html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /home/web/example.com/public_html;
if ($request_uri ~* /phpmyadmin) {
root /home/web/phpmyadmin;
}
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name example.com;
location / {
root /home/web/example.com/public_html;
index index.html index.htm index.php;
}
location /phpmyadmin {
root /home/web/phpmyadmin;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /home/web/example.com/public_html;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
使用此文件检查错误日志后,我得到:
2013/06/28 01:10:47 [error] 7068#0: *1 "/home/web/phpmyadmin/phpmyadmin/index.html" is not found (2: No such file or directory)
因此,在location块中,我将root改为/home/web,认为这将去掉额外的phpmyadmin,但是,我在错误日志中根本没有得到任何关于phpmyadmin的信息。我似乎无法找出正确的配置以及此配置不起作用的原因。有什么想法吗?我认为您在第二个配置中的问题是
索引内部/phpmyadmin
将其替换为索引index.php
这是我的服务器的phpmyadmin,但它被配置为子域
server {
client_header_timeout 0;
server_name phpmyadmin.example.com;
root /var/www/phpmyadmin/;
#replace this with your phpmyadmin location
#like /usr/share/phpmyadmin for example
index index.php;
access_log /var/log/nginx/phpmyadmin_access_log;
error_log /var/log/nginx/phpmyadmin_error_log;
location ~* \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
client_max_body_size 64m;
client_body_buffer_size 128k;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
location ~ /\. {
access_log off;
log_not_found off;
deny all;
}
}
这三个设置用于导出和导入大文件,当导出的文件大于一定数量时,或者如果服务器需要时间生成导出的sql文件,nginx将失败
client_header_timeout 0;
client_max_body_size 64m; #change this if ur export is bigger than 64mb.
client_body_buffer_size 128k;
在Ubuntu服务器上,我使用以下设置使phpMyAdmin在几个Nginx站点的/pma
下可用
/etc/phpmyadmin/nginx-php5-fpm.conf
location /pma {
alias /usr/share/phpmyadmin/;
}
location ~ ^/pma/(.*\.(js|css|gif|jpg|png))$ {
alias /usr/share/phpmyadmin/$1;
}
location ~ ^/pma(.+\.php)$ {
alias /usr/share/phpmyadmin$1;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
charset utf8;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT /usr/share/phpmyadmin;
}
然后,在任何可用的/etc/nginx/sites/*
中,我可以使用以下命令启用pma支持:
include /etc/phpmyadmin/nginx-php5-fpm.conf;
您的设置要求我在URL之后添加index.php
,以访问PMA。即,http://mysite/pma
不起作用。我需要用http://mysite/pma/index.php
。所以我添加了index.php index.html index.htmalias/usr/share/phpmyadmin/后面的code>指令代码>指令。这可能是特定于我的设置,但我想为其他人记下它。