2010-03-13 84 views
3

运行Mac OS X 10.5.8,预装了PHP 5.2.11。使用Coda 1.6.10。PHP在Mac上包含哪些正确的路径?

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

有什么办法,我可以使用之类的语句

include_once “通用/ header.php文件”;

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

include_once “/卷/ Macintosh的HD /用户/尼尔/桌面/网站/ ColoredLists_v1.0 /普通/ base.php”;

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

当我包括这条线在脚本的开始,它的工作原理:

通过set_include_path('/卷/ Macintosh的HD /用户/尼尔/桌面/网站/ ColoredLists_v1。 0' );

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

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

+0

你是什么意思,从“文件”和“无法从服务器”的工作?命令行而不是Apache? – zneak 2010-03-13 19:25:39

+0

是@zneak。 PHP文件仅由PHP文件处理,然后输出的html文件在浏览器中呈现。该请求不会转到服务器,请求页面,然后返回呈现的html。所以这里没有htaccess或apache配置的问题。 – Neil 2010-03-16 19:16:27

回答

2

你可以试试这个方法。

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

尝试

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

包括文件

或编辑你的php.ini并更改include_path变量(我使用甲基苯丙胺所以不能告诉你确切的路径到php.ini)

0

它确实是一个include_path问题。默认似乎是.:/usr/lib/php;也许如果你从你的脚本所在的目录启动了PHP命令,它会好吗?

0

这个屡试不爽对我来说:

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

+0

我不认为任何$ _SERVER变量都可以工作,因为它将PHP运行在命令行而不是服务器上。我不知道。我会在稍后尝试。 – Neil 2011-04-23 06:39:51