使用Slim应用程序在Ubuntu上包含路径PHP警告
我在apache/ubuntu和PHP7上的Slim应用程序中遇到了一个包含路径的问题。当我的应用程序/路由索引页面尝试包含位于子目录中的文件时,我在apache error.log中获得以下内容,但路径对我来说似乎是正确的:使用Slim应用程序在Ubuntu上包含路径PHP警告,php,apache,slim,lamp,Php,Apache,Slim,Lamp,我在apache/ubuntu和PHP7上的Slim应用程序中遇到了一个包含路径的问题。当我的应用程序/路由索引页面尝试包含位于子目录中的文件时,我在apache error.log中获得以下内容,但路径对我来说似乎是正确的: PHP Warning: include(myapp/production/include.php): failed to open stream: No such file or directory in /var/www/html/index.php on line
PHP Warning: include(myapp/production/include.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 33
PHP Warning: include(): Failed opening 'myapp/production/include.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/index.php on line 33
目录结构为:
/var/www/html/
├── index.php
├── myapp/
│ ├── vendor/
│ └── production/
│ └── include.php
index.php中的相关第33行:
include ('myapp/production/include.php');
是否有与文件/目录权限相关的内容导致了这种情况?我非常熟悉在linux服务器上设置web应用程序;感谢您的帮助
编辑:
我在主web目录中添加了一个test include文件(与index.php相同),并且该include确实有效 如果我猜的话,我怀疑磁盘上的目录和文件名的情况与PHP代码中使用的情况不同 Linux具有区分大小写的文件系统,因此名为
Production
的目录与名为Production
的目录不同
确保您在
include
语句中使用的文本与磁盘上的目录和文件名完全匹配。如果我猜,我怀疑磁盘上的目录和文件名的大小写与您在PHP代码中使用的大小写不同
Linux具有区分大小写的文件系统,因此名为Production
的目录与名为Production
的目录不同
确保您在
include
语句中使用的文本与磁盘上目录和文件的名称完全匹配。是的,您应该检查权限,甚至为了调试起见,我会在index.php
的同一文件夹中创建test.php
文件,并尝试包含它,然后你会知道这是否与权限有关。我尝试在web根目录中包含一个测试,它确实有效。然后,路径错误或某些权限丢失。请在test.php和index.php中提供您认为应该包含此include.php
的确切代码。是的,您应该检查权限,即使是为了调试,我也会在与index.php
相同的文件夹中创建test.php
文件,并尝试include
它,然后你会知道它是否与权限有关。我尝试在web根目录中包含一个测试,如果路径错误或者某些权限丢失,请在test.php和index.php中提供您认为应该包含此include.php
的确切代码。