`
mengdejun
  • 浏览: 400246 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

nginx“虚拟目录”不支持php的解决办法

    博客分类:
  • Php
阅读更多

这几天在配置Nginx,PHP用FastCGI,想装一个phpMyAdmin管理数据库,phpMyAdmin不想放在网站根目录下,这样不容易和网站应用混在一起,这样phpMyAdmin的目录就放在别处,在Apache里,有alias,比较方便,在Nginx下没有虚拟目录概念的,是用location配合alias使用,我先试了简单的配置方式

location /web/ {
alias  /data/web/;
index  index.html index.htm index.php;
}

location ~ .*\.(php|php5)?$ {
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

我用http://localhost/web/可以访问到/data/web目录下的静态文件,但访问php文件,却报No input file specified.的错误,而且在Nginx的error日志上却什么信息也没有,我在网上搜索了一下,判断应该是php文件并没有被后端的 FastCGI运行,我又继续搜索一些文章,试着增加了一段配置

location /web/ {
alias  /data/web/;
index  index.html index.htm index.php;
}

location ~ ^/web/.+\.php$ {
root /data/;
rewrite /web/(.*\.php?) /$1 break;
include fcgi.conf;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param SCRIPT_FILENAME /data/web$fastcgi_script_name;
}

location ~ .*\.(php|php5)?$ {
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

这下可以了,原理应该是采用rewrite的方法,对于/web/下php类型的的请求交给后端的FastCGI处理,并且指定了php脚本的位置,这样我们就可以配置phpMyAdmin了,配置如下

location /phpmyadmin/ {
alias  /data/phpmyadmin/;
index  index.html index.htm index.php;
}

location ~ ^/phpmyadmin/.+\.php$ {
root /data/;
rewrite /phpmyadmin/(.*\.php?) /$1 break;
include fcgi.conf;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param SCRIPT_FILENAME /data/phpmyadmin$fastcgi_script_name;
}

location ~ .*\.(php|php5)?$ {
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

要注意的是

location ~ .*\.(php|php5)?$ {
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

这段,要放在phpmyadmin的后面,放在前面就有问题,这是和Nginx的location规则有关,具体看Nginx的文档,另外,phpMyAdmin里要配置一下URI的绝对路径,就可以了。

分享到:
评论

相关推荐

    Nginx版UPUPW PHP绿色服务器平台

    UPUPW已配置Nginx的虚拟主机支持伪静态文件,示例包含discuz,phpwind,WordPress和ThinkPHP伪静态规则; UPUPW已配置Nginx的虚拟主机支持Pathinfo路径功能; 支持Nginx和PHPfpm服务的单独开启、关闭与重启; 支持...

    php管理nginx虚拟主机shell脚本_.docx

    php管理nginx虚拟主机shell脚本_.docx

    LNMP/Nginx 虚拟主机面板 AMH v5.0.zip

    欢迎使用LNMP/Nginx 虚拟主机面板 - AMH   01) 简单: 简洁精致,支持ssh、web在线轻松管理维护虚拟主机、MySQL、FTP。 02) 高效: 使用高性能Nginx服务器软件支持,面板基于AMH命令行运行,实现过程快速高效。 ...

    php管理nginx虚拟主机shell脚本__2.docx

    php管理nginx虚拟主机shell脚本__2.docx

    php管理nginx虚拟主机shell脚本__1.docx

    php管理nginx虚拟主机shell脚本__1.docx

    DebianLNMP虚拟主机管理工具Nginx PHP5.3 MySQL管理软件

    DebianLNMP虚拟主机管理工具Nginx PHP5.3 MySQL管理软件 Debian6系统下使用之前发布的“DebianLNMP”服务器软件套件,DebianLNMP一键安装包是一个快捷的服务器套件,轻轻松松全自动安装LNMP(Nginx、MySQL、PHP、...

    DebianLNMP虚拟主机管理工具Nginx+PHP5.3+MySQL管理软件

    DebianLNMP虚拟主机管理工具Nginx PHP5.3 MySQL管理软件 Debian6系统下使用之前发布的“DebianLNMP”服务器软件套件,DebianLNMP一键安装包是一个快捷的服务器套件,轻轻松松全自动安装LNMP(Nginx、MySQL、PHP、...

    LNMP/Nginx 虚拟主机面板 AMH v3.2

    Amysql - AMH简介 01) 简单: 简洁精致,支持ssh、web在线轻松管理维护虚拟主机、MySQL、FTP。 02) 高效: 使用高性能Nginx服务器软件支持,面板基于AMH命令行运行,实现过程快速...AMH为独立的一套LNMP/Nginx虚拟

    nginx虚拟主机配置实例详解

    主要介绍了nginx虚拟主机配置实例详解的相关资料,需要的朋友可以参考下

    nginx搭建配置详细说明

    5.1. 什么是nginx的虚拟主机 5.2. 标准的虚拟主机配置 5.3. 规划虚拟主机的配置文件 6. 动静分离 7. nginx的反向代理 7.1. 什么是反向代理 7.2. 明确两个概念 7.3. 特点 7.4. 反向代理的配置 7.5. 可以将...

    PHP Nginx MySql 绿色WEB服务器 RTMP FOR WINDOWS

    # 使用说明 解压到固定目录不用随意修改路径,如果需要修改路径请修改注册表系统路径! 开始菜单允许 regedit 找到 【HKEY_CURRENT_USER\Software\WebServer】 去设置服务器...需要自己绑定和nginx虚拟目录进行访问

    史上最牛逼的Nginx最佳实践教程从入门到精通

    5.nginx配置虚拟主机 6.nginx location配置 7.nginx root&alias文件路径配置 8.nginx日志配置 9.apache和nginx支持SSL配置 10.nginx日子切割 11.Nginx重新规则指南 12.Nginx逻辑运算 13.隐藏Nginx版本号的安全性与...

    Nginx七个实验.rar

    目录: ①Nginx MySQL PHP.pdf ②Nginx虚拟主机(HTML).pdf ③Nginx静动分离.pdf ④Nginx虚拟主机(PHP).pdf ⑤Nginx tomcat整合.pdf ⑥Nginx并发查看.pdf ⑦Nginx授权访问.pdf

    实战nginx-张宴

    4.6 在不停止Nginx服务的情况下平滑变更Nginx配置 4.7 编写每天定时切割Nginx日志的脚本 第5章 Nginx与JSP、 ASP.NET、 Perl的安装与配置 5.1 Nginx与JSP( Tomcat) 在Linux上的安装、 配置 5.2 Nginx与ASP.NET( ...

    nginx-1.0.4 服务器软件下载

     Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下...

    nginx for windows下载以及详细安装与配置

    1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系统下安装和使用,现在提供nginx for windows下载以及详细安装与配置,供windows下的nginx应用。 2.Nginx 本身只是一个HTTP和反向代理服务器,它无法...

    nginx负载均衡 nginx+tomcat tomcat实现负责均衡

    目前官方 Nginx 并不支持 Windows,您只能在包括 Linux、UNIX、BSD 系统下安装和使用; Nginx 本身只是一个 HTTP 和反向代理服务器,它无法像 Apache 一样通过安装各种模块来支持不同的页面脚本,例如 PHP、CGI 等...

    MiniServer v2.0 php运行环境(Apache+Nginx+MySQL+PHP)

    3.网站根目录为 www/htdocs 文件夹,可以通过MiniServer菜单快速进入,也可以使用Apache的虚拟目录功能单独设置目录(Nginx暂时不支持虚拟目录) 4.菜单中有修改端口的功能,修改前请确保其他软件没有占用所修改的...

    Linux+Nginx+MySQL+PHP一体化安装脚本

    同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

    nginx-1.0.5.zip服务器

    Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下...

Global site tag (gtag.js) - Google Analytics