我正在努力将一个PHP站点从Godaddy的一台服务器迁移到另一台服务器。该网站上有许多“遗留”代码,其中包含指向图片,CSS等的链接:
<img src="/img/img.png" />
和必需/包含的内容,如...
require_once($_SERVER['DOCUMENT_ROOT']."/_inc/required-stuff.php");
我遇到的问题是当前网站是“www.mycurrentsite.com”,当我在cPanel中设置一个新帐户时,它创建了类似的内容。
111.111.111.111/~mycurrentsite /
因此所有以“/”开头且$ _SERVER ['DOCUMENT_ROOT']的项目都没有指向正确的位置。
我已经阅读过有关设置主机的内容,但这只会让我进入ip,而不是“〜substuff”区域。我知道必须有比进入并重写所有内容更快的东西或设置变量=“~mycurrentsite /”我放在所有东西的前面并在我上线时设置为“”。
我不知所措,并且愿意在过去几个小时试图寻找解决方案之后,以“不研究”的方式获得可能获得的选票。
当我查看$ SERVER ['DOCUMENT_ROOT']当前指向设置的位置时,它是“/ usr / local / apache / htdocs”。我能够在这个位置设置index.html页面,至少将任何到IP的流量推送到“~mydomain”子文件夹,但这对文件的映射没有帮助。
我猜这可能是Apache改变的东西,但是我害怕在那里打破一些东西,因为cPanel设置它并且大多数在我认为可能触摸的区域中说“不要编辑”。
编辑: 我在httpd.conf文件中更改了该区域,并设置了ServerName与~mydomain信息匹配的区域中的值。
这似乎有效,但我不相信这是最好的方法,因为它有“不要编辑。自动生成......”。我打算取消注释我的更改并在推出DNS之前放回原来的内容,但就目前而言,它似乎是 A 解决方案,如果不是最好的解决方案。
编辑:
我再次遇到这个问题,在apache http.conf文件中手动编辑VirtualHost选项时,我意识到我可以为每个站点设置不同的端口。我现在在端口:80上设置a.domain.com,在端口:8080上设置b.domain.com等。
像魅力一样工作。我接下来遇到的一个问题是PHP会话被不同的网站读取,但这是通过更新代码来设置的......
ini_set('session.name', 'DOMAIN1'); // session name for a.domain.com
HTH拯救别人一段时间。