nginx虚拟目录支持PHP,nginx“虚拟目录”不支持php的解决方法
nginx“虚拟目录”不支持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“虚拟目录”不支持php的解决方法相关推荐
- 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】
[thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法] 参考文章: (1)[thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方 ...
- 使用nginx做反代时遇到413 Request Entity Too Large的解决方法
使用nginx做反代时遇到413 Request Entity Too Large的解决方法 参考文章: (1)使用nginx做反代时遇到413 Request Entity Too Large的解决 ...
- 小米助手android6版本暂未支持,小米助手连接不上小米5怎么办 小米助手显示不支持安卓6.0连接不上小米5解决方法...
有用户反映小米5连接小米助手没反应,而且还说不支持安卓6.0.但是小米5连接其他管家却能连上,就是一直连不上"小米助手".如果是我也会很郁闷,本来小米助手是针对小米手机连接电脑的配 ...
- 现场记录:Nginx重启失败,端口已被使用的可能原因及解决方法
1. 问题 某用户在使用系统时上传了错误文件,并且未意识到该问题,直到流程审批结束,此时已无法修改:运维人员分析了相关接口,将处理好的文件上传到Nginx静态目录下,kill掉进程后重启Nginx,出 ...
- oracle目录删除后恢复,Oracle删除后不能重新安装的解决方法
很多朋友只用了Oracle的删除,但很多情况下,他会发现重新安装时,点了下一步安装界面就消失了,往往无奈下只好重装系统,其实只是你数据库没删干净,删干净就不会出现这种情况了. 实现方法: 1. 开始- ...
- 2012网站服务器目录磁盘满了,服务器磁盘异常爆满的原因及解决方法
最近经常收到360网站监控发来的邮件,提示网站打不开,原因则无一例外都是磁盘爆满,导致mysql停止工作,删除部分文件后,网站恢复访问,不过过不多久,网站又再次因为磁盘爆满而打不开,在服务器上找了一圈 ...
- 访问共享目录,取消默认使用Guest帐号登录的解决方法
默认情况 下,Windows XP的本地安全设置要求进行网络访问的用户全部采用来宾方式.同时,在Windows XP安全策略的用户权利指派中又禁止Guest用户通过网络访问系统.这样两条相互矛盾的安全 ...
- VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态——解决方法
虚拟机VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态,也就是需要开启Intel Virtualization Technology虚拟化技术.Intel VT-x完 ...
- mysql_connect() 不支持 请检查 mysql 模块是否正确加载 解决方法
本文出自 "小鸡哥哥的空间" 博客,请务必保留此出处http://aishaoer.blog.51cto.com/769164/283947 本文出自 51CTO.COM技术博客 ...
- nginx 1.14 php,安装php7.2+nginx1.14.2常见报错解决方法_2018_lcf
1.PHP(无底色行是错误信息,黑底色行是解决方法) configure: error: Cannot find OpenSSL's # yum -y install openssl openssl- ...
最新文章
- 2月中国域名总量平稳回升 净增长量逾10.3万个
- python3 获取 文件 文件夹大小
- 对数线性模型之一(逻辑回归), 广义线性模型学习总结
- objcopy的详细说明
- 循环神经网络 (RNN)
- UVA 11584 Partitioning by Palindromes (字符串区间dp)
- 使用Metal打造令人惊叹的游戏效果
- 在Jupyter Notebook中调用ML模型服务图像标题生成器
- BFS-迷宫问题-用宽度(广度)优先搜索解决最优路径问题
- excel怎么设置自动计算_Excel怎么计算所占百分比?
- 国奇科技获得融资背后:同名公司存在失信行为,总裁谷建余被限消
- 手机号码正则表达式匹配
- 紫光华宇拼音输入法 6.x bug集
- 微信发红包api php,php版微信公众号接口实现发红包的方法
- 使用OpenSSL模拟SSL证书验证过程
- 关于常用传感器NPN和PNP类型的选择
- 第32届IEEE机器人与人类交互通信国际会议ROMAN 2023
- 华为人力资源管理经典大全
- php.ini 配置composer,composer安装配置
- 神奇的计算机作文400字,人工智能作文400字十篇
热门文章
- OpenStack自动发现计算节点
- Android Looper Message MessageQueue Handler
- linux编译cmake
- java基础--集合案例斗地主发牌排序
- leetcode 1504. Count Submatrices With All Ones | 1504. 统计全 1 子矩形(单调栈)
- 线性代数:二次型为什么可以用矩阵表示?——分组因式分解推导
- 【牛客网】安置路灯 C++
- Java集合Collection与List的关系、常见用法
- 算法设计与分析(第三周)递归求阶乘
- 使用VSCode连接到IBM Cloud区块链网络