上下文:我正在尝试在我的本地 Mac27" (2009) 上运行 Apache,以便我可以使用 OwnCloud 作为 Apple iCloud 的替代品(我只想像在老式的“OS X big”中那样对我的日历进行本地同步猫”的日子。出于偏执的隐私原因,我不想让库比蒂诺知道我认识谁或我在做什么——可能是放错了地方,但你去了)。我对此的尝试是基于迈克尔·格雷西在http上的一篇博客文章://michaelgracie.com/2013/11/13/getting-ios-7-calendar-and-contacts-syncing-directly-with-os-x-10-9-mavericks/(非常感谢)。
几周前我升级到 Yosemite 时(提醒我为什么这样做?)我花了很长时间修改我非常简单的设置,然后我又回来了。昨天我升级(再次提醒我为什么这样做?)到 10.10.1,它又坏了。一切似乎都应该工作,但 PHP 没有运行。
症状是,当我运行 OwnCloud (localhost/owncloud/index.htm) 时,我得到 OwnCloud 徽标和样式,然后出现错误:
PHP module GD is not installed.
Please ask your server administrator to install the module.
然而,这是一种转移,因为问题不是 GD 模块——我认为 Apache 根本看不到 PHP。原因如下:
1) PHP 是否在 Apache 上运行?
当我去:
http://localhost
我看到了 Apache “它有效!” 信息。
调整 /Library/Webserver/documents/ 中的 index.html.en 文件允许我修改该消息,但是,当我从该文件中调用 PHP 时,例如
<h1>It works!</h1> <h2>This file is in /Library/Webserver/Documents</h2> <h3>Trying to printout phpinfo()</h3> <?php echo phpinfo(); ?>
然后我看到三行文本但没有 PHP 信息。
因此,在呈现该网页时 PHP 不可用。
2) PHP 是否可用?
对此进行调查,我从终端运行以下命令:
sudo echo <?php phpinfo() ?> | php
我得到了四千行 PHP 信息,其中包括
'--with-gd'
在配置命令中。
3) Apache 是否加载了 PHP 模块?
然后我运行:
httpd -t -D DUMP_MODULES
Apache 告诉我,在它使用的许多其他模块中:
php5_module (shared)
4) httpd.conf 文件是否与此兼容:
我已经通过我的 /etc/apache2 目录中的 httpd.conf 并取消了以下行的注释:
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
5)还有什么?
只是为了完成图片,在我的 /etc/apache2/users 文件中,我将自己的用户设置配置为:
<Directory "/Users/DJBrown/Sites/">
Options Indexes MultiViews FollowSymLinks
Require all granted
AllowOverride All
Order allow,deny
Allow from all
</Directory>
(我承认,在这一点上 - 以及其他人 - 我真的不太确定我在做什么,因为我已经从 StackOverflow 中的其他一些答案中遵循了大部分内容)。
六,结论
Apache 正在运行,PHP 已加载,并且 httpd 和 PHP 都可以从命令行查询……但 Apache 不会运行 PHP。
那可能吗?
我错过了什么?
感激地收到任何帮助。
DJ