phpinfo()无法在mac OS-X上运行Capitan apache2服务器

时间:2016-06-24 10:09:40

标签: php macos apache mamp phpinfo

我正在使用OS-X CapitanApache/2.4.18 (Unix)。我有phpinfo.php个文件

 <?php phpinfo(); ?>

当我运行命令php phpinfo.php时,它将正确显示phpinfo()。这在浏览器中无法正确显示,而是显示如下代码

 <?php phpinfo(); ?>

我对/etc/apache2/httpd.conf

进行了以下更改
  1. 取消注释下面的行

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so LoadModule php5_module libexec/apache2/libphp5.so

  2. MIME Type标记内添加<IfModule mime_module>httpd.conf个文件

    AddType application/x-httpd-php .php

  3. 确保libexec/apache2/mod_rewrite.so存在

  4. php -v给出了以下结果

  5. 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

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

    2. 使用命令

      重新启动apache2

      sudo apachectl restart

    3. 当使用网址<?php phpinfo(); ?>

      从浏览器访问时,它仍会显示php代码http://localhost/phpinfo.php

      我甚至尝试将<html><body>内的代码括在browser screen was blank内。

4 个答案:

答案 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

然后我意识到我必须启用和配置虚拟主机。我按照下面的步骤

  1. 取消注释/etc/apache2/httpd.conf
  2. 以下的行

    LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

    这样就可以在virtual hosts

    中定义apache2
    1. 编辑文件/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>

    2. 知道此文件默认包含在/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服务,并检查活动监视器。