【问题标题】:Copy site from LAMP to WAMP: relative paths don't work将站点从 LAMP 复制到 WAMP:相对路径不起作用
【发布时间】:2014-02-02 21:15:55
【问题描述】:

我正在使用 MAMP 开发一个网站,它目前在一些 Apache 服务器上运行,并且工作正常。 但是,我的一个朋友在他的 WAMP 服务器的根目录和他的机器上复制了整个内容,没有相对路径工作(没有包含,没有图像)。

网站采用 MVC 架构开发。我的朋友将三个文件夹(M、V 和 C)和 index.php 复制到 WAMP(www)的根文件夹中。

在 index.php 中,例如“include (Modele/conexionBDD.php)”行 但是服务器说“C:\wamp\www\index.php 中没有这样的文件或目录”

知道为什么吗?

提前致谢, 奥雷莉

【问题讨论】:

  • 路径错误。在我们提供帮助之前,我们需要更多关于实际路径和代码中定义的路径的详细信息。
  • 确实,很抱歉。该网站是使用 MVC 架构开发的。我的朋友复制了 WAMP (www) 根文件夹中的三个文件夹和 index.php。在 index.php 中有“include (Modele/conexionBDD.php)”行,但是服务器说“C:\wamp\www\index.php 中没有这样的文件或目录”用这些信息更新了帖子。

标签: php wamp


【解决方案1】:

Windows 和 UNIX (OSX) 使用不同的目录分隔符 - 很难相信我知道,但 Windows 使用 \ 而 UNIX 使用 /

在 PHP 中,特定于操作系统的目录分隔符存储为常量 DIRECTORY_SEPARATOR。尝试将路径重写为:

include('Modele' . DIRECTORY_SEPARATOR . '/conexionBDD.php');

此路径现在应该可以在两个操作系统上使用,但您可能需要更改所有引用的路径。

【讨论】:

  • 很难相信没有别的办法!另外,我很确定很多人在 WAMP 上开发网站,他们可以成功地将它们上传到世界各地的 (linux) Apache 服务器,而无需更改所有路径...
  • 也许是别的东西 - 用那行试试,看看错误是否发生/改变
【解决方案2】:

这个包含应该可以正常工作

include (Modele/conexionBDD.php);

但它不应该在引号中包含参数吗?

include ('Modele/conexionBDD.php');

因为 PHP 会为您更改目录分隔符。事实上,它建议您在 Windows 上编码时坚持使用 unix 分隔符。

我知道您可能一直在使用速记 My friend copied the three folders (M,V and C) and the index.php,但如果您的朋友将子文件夹 Modele 复制到 M,这可能会解释问题。

【讨论】:

    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 2011-01-25
    • 2017-07-12
    • 2013-02-19
    • 2015-08-30
    • 2011-03-17
    • 2014-06-25
    • 2018-09-15
    相关资源
    最近更新 更多