我有一台 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,这样我就不会弄乱系统默认版本