我一直在设置新的Web服务器来替换老化的Web服务器,但是在现有服务器上运行的相对路径存在一些问题。 现有服务器是带有5.6的Centos 6,但是新服务器是具有相同php版本的Centos 7。我还要提到的是,两台服务器都通过单个用户(独奏)许可证运行WHM / cPanel。
我在public_html
文件夹上一层有几个文件夹,其中包含一些包含文件以及一些从cron作业运行的php文件。我将它们放在此处,因为public_html
文件夹中不再需要它们。
// Example folder structure
-includes
-cjobs
-public_html
-includes
-css
-js
index.php
在现有服务器上,cjobs
文件夹中的文件上的以下操作正常
include "../public_html/includes/mail_include.php";
,但是在新服务器上失败。我最终使用了include_once (dirname(__FILE__) . "/../includes/mail_include.php");
,还不得不将cjobs
文件夹重新放置到public_html
文件夹中。请注意,完整路径确实可以正常工作,因此/home/username/includes/mail_include.php
始终可以正常工作,但是我不想对路径进行硬编码。
我觉得php中可能有一些小的配置设置没有更改,但是我只是无法弄清楚为什么我需要以这种方式包含文件。这意味着我需要修改数千个文件,以便它们可以在新服务器上工作,事实证明这确实很痛苦。
任何建议都值得赞赏。