`
mengdejun
  • 浏览: 410278 次
  • 性别: 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与php分别部署在不同的主机上配置方法

    注意,在修改 nginx.conf 文件时,我们需要将 `/home/www/html` 目录指定为 PHP 主机上的目录,而不是 Nginx 主机上的目录。这是一个常见的错误,如果你将其指定为 Nginx 主机上的目录,可能会导致配置失败。 在 ...

    Nginx虚拟主机(HTML).

    在配置Nginx虚拟主机之前,需要编辑Nginx的主配置文件。根据文档提供的信息,打开位于/usr/local/nginx/conf/nginx.conf的配置文件,并在文件的最底部加入如下内容: ```nginx http { server { listen 80; ...

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

    该文档涉及的知识点主要集中在使用PHP编写Shell脚本来管理Nginx虚拟主机。这里我们将深入探讨这个话题: 1. **PHP作为Shell脚本语言**:通常,Shell脚本用于Linux或Unix系统中的命令行操作。然而,由于PHP具有丰富...

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

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

    03-nginx虚拟主机配置.zip

    **Nginx虚拟主机配置详解** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,常被用于互联网应用的负载均衡和高并发处理。在本教程中,我们将深入探讨如何利用Nginx配置虚拟主机,实现多个网站在同一台...

    Win7 下配置Nginx+PHP7

    1. 解压php-7.1.1-nts-Win32-VC14-x64.zip,将php-for-nginx目录下的php-cgi.exe和相关dll文件复制到Nginx的安装目录,如C:\nginx\。 2. 创建一个名为php的目录(如C:\nginx\php),并将php.ini-development重命名为...

    nginx + php 安装配置——WEB页面

    总之,通过以上步骤,我们成功地在CentOS系统上安装了Nginx和PHP,配置了Nginx以支持PHP解析,并解决了可能出现的"No input file specified"错误。这样的配置为部署和运行基于PHP的Web应用程序提供了基础。

    nginx配合PHP安装,优化使用教程

    创建一个新的虚拟主机配置,例如`/etc/nginx/sites-available/my-site.conf`: ```nginx server { listen 80; server_name example.com; # 替换为你的域名 root /var/www/html; # 设置网站根目录 index index....

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

    标题中的“php管理nginx虚拟主机shell脚本__2.docx”指的是使用PHP编写的一个Shell脚本来管理和操作Nginx的虚拟主机。这个脚本能够帮助用户创建、删除Nginx的虚拟主机配置,提高运维效率。 描述中提到的“用法”,...

    Nginx版UPUPW PHP绿色服务器平台

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

    upupw_nginx_php5.6

    7. **安全性**:在使用Upupw_Nginx_PHP5.6时,要注意安全配置,例如限制文件上传、设置强密码、保护敏感目录等,以防止恶意攻击。 8. **日志管理**:Nginx和PHP都有自己的日志系统,分别记录访问日志和错误日志,这...

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

    ### PHP管理Nginx虚拟主机Shell脚本解析 #### 概述 在现代Web服务器管理领域,自动化工具的使用能够显著提升工作效率并减少人为错误。本文档介绍了一个使用PHP编写的Shell脚本来管理Nginx虚拟主机的过程。该脚本...

    实战Nginx 目录

    **实战Nginx目录** 在IT行业中,Nginx是一个广泛应用的高性能Web服务器和反向代理服务器,以其高效、稳定和灵活的配置而备受青睐。本文将深入探讨Nginx的基本配置与优化,帮助读者更好地理解和掌握这个强大的工具。...

    nginx虚拟主机配置实例详解

    标题“nginx虚拟主机配置实例详解”向读者介绍了如何配置nginx虚拟主机的具体案例。nginx是一个高性能的HTTP和反向代理服务器,它也作为一个IMAP/POP3/SMTP服务器。虚拟主机是指在单一服务器上运行多个网络服务或...

    nginx 目录

    在您提到的 "nginx-1.10.0Modify" 文件目录中,我们可以预见到一系列与 Nginx 1.10.0 版本相关的配置文件、二进制可执行文件和其他支持文件。下面,我们将深入探讨 Nginx 的核心目录结构及其重要性。 1. **主目录...

    Web环境搭建:Linux+Nginx+PHP+Mysql+Redis

    ### Web环境搭建:Linux+Nginx+PHP+MySQL+Redis #### 一、环境概述与推荐版本 在构建一个高效且稳定的商城系统时,选择合适的Web环境至关重要。本指南将介绍一套广泛应用于电商平台的技术栈——**Ubuntu + PHP + ...

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

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

    nginx安装包+php安装包+补丁+代码

    将这些代码部署到服务器上,通常需要按照特定的目录结构放置,并在Nginx配置文件中设置相应的location,以便Nginx能够正确处理请求并交付响应。 在实际操作中,为了简化流程和提高效率,人们通常会使用自动化部署...

    centos nginx php mysql 集成

    7. **配置 Nginx**:编辑 Nginx 的配置文件,如 `/etc/nginx/nginx.conf` 或者站点配置文件(如 `/etc/nginx/conf.d/default.conf`),以指向 PHP-FPM 并设置虚拟主机。 8. **测试配置**:使用 `nginx -t` 检查配置...

    nginx-0.7.65在windows下整合php5

    1. **安装Nginx**:解压nginx-0.7.65.zip文件,将目录放置在您希望的服务器根目录下,例如C:\nginx。然后配置Nginx的配置文件nginx.conf,指定服务器监听端口(通常为80),并定义虚拟主机。 2. **安装PHP**:解压...

Global site tag (gtag.js) - Google Analytics