3

上下文:我正在尝试在我的本地 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

4

1 回答 1

1

这是部分答案。

更改 httpd.conf 中的行

AddType application/x-httpd-php .php

AddType application/x-httpd-php .php .htm .html

允许 apache 在 HTML 文件中呈现内联 PHP 代码。

(我从http://php.about.com/od/advancedphp/p/html_php.htm得到这个)

我现在仍然有一个 OwnCloud 问题,我将把它带到他们的论坛

感谢您的帮助

DJ

于 2014-11-20T16:52:25.000 回答