Apache2 拒绝处理 php 文件 - “Snow Leopard”OSX 10.6.4

Apache2 拒绝处理 php 文件 - “Snow Leopard”OSX 10.6.4

我有一台 macbook pro i5。
我的理解是,默认情况下它应该能够提供 php5。
我已取消注释 /etc/apache2/httpd.conf 中的相关行

LoadModule php5_module        libexec/apache2/libphp5.so

我已经重新启动了 apache

sudo apachectl -k restart

当我尝试访问带有 php 扩展名的文件时,Apache 提示我下载该文件。即,它认为我想要下载该文件,而不是处理 php 并向我发送 html......

当我查看 apache 错误日志时,我看到了这个

[2010 年 11 月 12 日星期五 10:16:14] [通知] Apache/2.2.14 (Unix) PHP/5.3.2 mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2 mod_wsgi/3.2 Python/2.6.1 已配置 - 恢复正常操作

因此看起来 php5 正在正确加载。

我想要了解:
我该如何解决?
或者
我如何重新安装 apache2 以使其就像我刚刚安装了操作系统一样?

提前致谢


更新 @Zayne - 我的 httpd.conf 结尾有

Include /private/etc/apache2/other/*.conf

我有一个文件 /etc/apache2/other/php.conf,其内容为

<IfModule php5_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

@Zayne 我已经将 php.ini.default 复制到同一文件夹中的 php.ini。当我运行

sudo apachectl configtest

我明白

/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument
httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName
Syntax OK

此外我决定尝试

apachectl -M

显示所有已加载的模块最重要的是在已加载模块列表中我得到了

Loaded Modules:
 php5_module (shared)

由于模块正在加载,所以问题似乎与让 apache 使用 php 引擎来处理 php 文件有关......所以 ifmodule 指令有问题?

答案1

全新的 Macbook,全新安装,我做了:

sudo cp /etc/php.ini.default /etc/php.ini

并取消注释 /etc/apache2/httpd.conf 中的以下行:

LoadModule php5_module        libexec/apache2/libphp5.so

然后运行:

sudo apachectl restart

并且它成功了。

答案2

您需要让 apache 知道如何处理 .php 扩展文件。因此配置应该在某处包含类似以下内容的行:

<IfModule mod_php5.c>
  AddType application/x-httpd-php .php .phtml .php3
  AddType application/x-httpd-php-source .phps
</IfModule>

根据需要取消注释/添加,如果不能解决问题,请告知我们。


更新

不再有 Mac 可供测试,因此读了一些资料,似乎只需执行以下操作即可在 Snow Leopard 上启用 PHP 和 apache2:

  • 为 PHP 启用 LoadModule(您已完成)
  • 运行以下命令检查 apache 配置apachectl configtest
  • 复制默认的/etc/php.ini文件到/etc/php.ini,并使其对 apache 用户可读

不确定您是否尝试过最后两种方法 - 您能尝试一下并让我们知道这是否有帮助吗?

答案3

我知道这个问题问得有点久了,但我只是苹果电脑我的 AMP 堆栈并禁用默认 Apache,这样我就不会弄乱系统默认版本

相关内容