我正在使用OS-X Capitan
和Apache/2.4.18 (Unix)
。我有phpinfo.php
个文件
<?php phpinfo(); ?>
当我运行命令php phpinfo.php
时,它将正确显示phpinfo()
。这在浏览器中无法正确显示,而是显示如下代码
<?php phpinfo(); ?>
我对/etc/apache2/httpd.conf
取消注释下面的行
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
在MIME Type
标记内添加<IfModule mime_module>
到httpd.conf
个文件
AddType application/x-httpd-php .php
确保libexec/apache2/mod_rewrite.so
存在
php -v给出了以下结果
PHP: parse error in /etc/php.ini on line 107
PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
sudo cp /etc/php.ini.default /etc/php.ini
使用命令
重新启动apache2 sudo apachectl restart
当使用网址<?php phpinfo(); ?>
http://localhost/phpinfo.php
我甚至尝试将<html><body>
内的代码括在browser screen was blank
内。
答案 0 :(得分:1)
我正在为主机定义directory
,如下所示
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All
</Directory>
通过启用和配置虚拟主机解决了这个问题,但我仍然认为虚拟主机并不是绝对需要让php工作。 Thoughts welcome on this
。
然后我意识到我必须启用和配置虚拟主机。我按照下面的步骤
/etc/apache2/httpd.conf
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
这样就可以在virtual hosts
apache2
编辑文件/private/etc/apache2/extra/httpd-vhosts.conf
并声明虚拟主机,如下所示,注释任何默认的虚拟主机声明
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName myserver
ServerAlias myserver-pro
ErrorLog "/private/var/log/apache2/myserver-error_log"
CustomLog "/private/var/log/apache2/myserver-access_log" common
</VirtualHost>
知道此文件默认包含在/etc/apache2/httpd.conf
中,使用下面的行。
Include /private/etc/apache2/extra/httpd-vhosts.conf
和localhost/phpinfo.php
非常棒。
答案 1 :(得分:1)
存在类似问题,但Mac OS的Sierra 10.13.4高。 只需在apache中启用php:
sudo nvim /etc/apache2/httpd.conf
取消注释以下行
#LoadModule php7_module libexec/apache2/libphp7.so
然后重新启动apache
sudo apachectl restart
答案 2 :(得分:0)
检查PHP是否启用了PHP,查看启用mod的文件夹并搜索PHP。
答案 3 :(得分:0)
确保使用launchctl
停止所有HTTP服务,并检查活动监视器。