【问题标题】:Change or rewrite reported root directory更改或重写报告的根目录
【发布时间】:2017-03-22 07:49:32
【问题描述】:

我有一个运行 WHM/cPanel 的生产服务器。我使用 MAMP 在我的 Mac 上本地开发我的 Wordpress 网站。我使用“hosts”文件将我的 URL 指向 localhost,因此我不必更改本地开发数据库中的 URL,这有助于来回迁移。

仍然不同并且经常导致问题的是服务器路径。

在生产中,服务器路径是:

/home/cvc1968/public_html

在我的本地 MAMP 安装中(我保留在 Dropbox 上以便我可以在家或办公室工作)时:

/Dropbox/MAMP/htdocs/cvc1968/public_html

一些插件使用服务器路径并将其存储在数据库中,所以当我导出/导入时,我经常会遇到 php 错误“文件不存在”等。

我已经弄清楚如何在 Mac 上重新获取“/home”文件夹,并尝试将“cvc1968”文件夹的符号链接放在那里,并将 httpd-vhosts.conf 文件中的 VirtualHost DocumentRoot 配置为“/home” /cvc1968/public_html/'。该站点仍将 Dropbox 位置报告为服务器目录(使用 php 命令 getcwd() ),无论我是否包含 FollowSimLinks 选项。

我的问题是:有没有什么办法,可能是使用 MAMP 中的 apache 配置文件或任何其他方法,将我的文件保存在它们所在的位置,但让本地站点报告其目录路径与生产环境相同路径?

【问题讨论】:

  • 为什么不在你的 apache 配置中设置正确的DocumentRoot
  • 我不清楚。正如 Ortomala 在下面建议的那样,我确实在每个配置中都正确设置了 DocumentRoot。我有几个存储文件夹路径的插件(即 iThemes Security 将服务器路径存储到其备份目录和日志目录。)这意味着当我将数据库从 MAMP 迁移到生产或反之亦然时,我必须进行搜索SQL 文件中的 /replace 以更改该服务器路径。我希望有一种方法可以将本地文件保存在我想要的位置,但是“欺骗”这些插件认为服务器路径与生产路径相同。
  • 这取决于每个插件的配置。如果您只使用相对于 DocumentRoot 路径的路径,应该没问题。存储在日志和备份中的路径应该不是问题,因为它们在处理请求时不会被使用。
  • 如果不修改插件代码,我无法控制插件的行为,更新时会丢失。我开始意识到唯一的解决方案是让我重新获取我的 Mac 的 /home 文件夹,将我所有的站点文件放在那里,然后从 Dropbox 目录符号链接到该文件夹​​。我已经确认 Dropbox 遵循符号链接并上传所有文件。我最担心的是下次升级 MacOS 时我的 /home 文件夹会发生什么。我必须为我放在那里的所有网站创建一个同步备份。
  • 另外,仅供参考,当路径错误时,它会在我的主页上引发 php 错误,但也会阻止设置 cookie,我无法登录该站点。

标签: php wordpress apache mamp


【解决方案1】:

解决方案是使用DocumentRoot 指令。

在您的生产服务器 apache 配置中添加:

DocumentRoot /home/cvc1968/public_html

并在您的 mac apache 配置中添加:

DocumentRoot /Dropbox/MAMP/htdocs/cvc1968/public_html

根据您的实际配置以及插件是否已经在数据库中存储了错误的路径,您可能需要重新安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2017-05-13
    • 1970-01-01
    • 2018-04-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多