PHP包含在Mac上的正确途径是什么?

时间:2010-03-13 19:22:07

标签: php macos include server-side-includes include-path

运行Mac OS X 10.5.8,预装PHP 5.2.11。使用Coda 1.6.10。

我正在编写PHP文件,然后预览它们从文件而不是服务器运行。这个工作正常,直到我尝试PHP包含。它们不能作为相对路径,只能作为驱动器根目录的绝对路径。

有什么方法可以使用

之类的语句
  

include_once“common / header.php”;

没有像我这样指定我的整个文件路径:

  

include_once“/ Volumes / Macintosh HD / Users / neil / Desktop / Website / ColoredLists_v1.0 / common / base.php”;

,其中ColoredLists_v1.0是包含所有网站文件的目录。我尝试过将_SERVER [DOCUMENT_ROOT]或dirname(文件)添加到文件路径之类的解决方案,但由于未设置变量,因此无效。有没有简单的方法可以做到这一点,或者我可以更改配置,以便它默认情况下查找特定目录而不是查看驱动器根目录?目前,echo_include_path显示。:

当我在脚本开头包含这一行时,它可以工作:

  

set_include_path('/ Volumes / Macintosh HD / Users / neil / Desktop / Website / ColoredLists_v1.0');

但是,如果我想为我的所有脚本执行此操作,我似乎无法使更改永久化。即使我在我的php.ini中编辑了Unix include_path之后,它似乎也无法正常工作。

更新:我最终决定最简单的方法是在本地运行Apache服务器。它预装了Mac,因此没有遇到太多麻烦。我修改了httpd.conf只允许来自localhost的连接,从而减轻了我的安全担忧。当然,这仍然打开80端口,但我在路由器后面,所以我希望我不会暴露。 Coda在“网站”中提供了一些很棒的功能,我可以在这里设置本地网址,因此它现在非常出色。现在,只有缺点是编码后,我需要手动刷新预览。

4 个答案:

答案 0 :(得分:2)

你可以尝试这种方法。

require_once(dirname(__FILE__) . '/example.php');

答案 1 :(得分:0)

尝试

set_include_path(
    '/Volumes/Macintosh HD/Users/neil/Desktop/Website/ColoredLists_v1.0' .
    PATH_SEPARATOR . 
    get_include_path());

在共享包含文件

或编辑你的php.ini并更改include_path变量(我正在使用MAMP,因此无法告诉你php.ini的确切路径)

答案 2 :(得分:0)

这确实是一个include_path问题。默认值似乎是.:/usr/lib/php;也许如果您从脚本中的目录中启动PHP命令,那会没关系吗?

答案 3 :(得分:0)

每次都适合我:

<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/common/header.php'); ?>