Apache 2.4未在Mac OS 10.8中加载php5.5

Apache 2.4未在Mac OS 10.8中加载php5.5,php,macos,apache,Php,Macos,Apache,我正试图在我的带有MacOS10.8.5的迷你Mac中使用Apache2.4.7和php5.5 按照中的说明安装Apache 2.4.7 运行apachectl-v,显示 Server version: Apache/2.4.7 (Unix) Server built: Mar 4 2014 19:23:56 PHP 5.5.8 (cli) (built: Jan 12 2014 18:50:29) Copyright (c) 1997-2013 The PHP Group Zend

我正试图在我的带有MacOS10.8.5的迷你Mac中使用Apache2.4.7和php5.5

按照中的说明安装Apache 2.4.7

运行apachectl-v,显示

Server version: Apache/2.4.7 (Unix)
Server built:   Mar  4 2014 19:23:56
 PHP 5.5.8 (cli) (built: Jan 12 2014 18:50:29) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
按照中的说明安装PHP5.5

运行php-v,如下所示

Server version: Apache/2.4.7 (Unix)
Server built:   Mar  4 2014 19:23:56
 PHP 5.5.8 (cli) (built: Jan 12 2014 18:50:29) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
我在apachehttp.conf文件中添加了以下行

LoadModule php5_module /usr/local/php5/libphp5.so
但它似乎不起作用,就像我试图用

sudo apachectl start
它会产生以下错误

httpd: Syntax error on line 151 of /usr/local/apache-2.4.7/conf/httpd.conf:
    Cannot load /usr/local/php5/libphp5.so into server: 
        dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found:
            unixd_config\n
Referenced from: /usr/local/php5/libphp5.so
Expected in: /usr/local/apache-2.4.7/bin/httpd in /usr/local/php5/libphp5.so
正如我链接的教程中所建议的,我用

export PATH=~/bin:/usr/local/php5/bin:$PATH
export MANPATH=/usr/local/apache/man:$MANPATH
我已经尝试了几个小时不同的解决方案,这就是我所能做到的


如果有人能给我一些提示,我会很高兴,我很绝望

我猜您在加载libphp5时遇到了apache2的zend_parse_参数错误。因此:

httpd: Syntax error on line 151 of /usr/local/apache-2.4.7/conf/httpd.conf:
    Cannot load /usr/local/php5/libphp5.so into server: 
        dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found:
查看./configure输出。如果您收到类似于以下内容的消息:

配置:警告:Zend/PHP解析器再生支持的bison版本:1.28 1.35 1.75 1.875 2.0 2.1 2.2.3 2.4 2.4.1(发现:无)

尝试安装bison:sudo-apt-get-install-bison


然后进行清理。/configure。。。然后make-i安装

经过数小时的尝试,我成功地让它工作了

我将描述我所做的一切,以帮助其他人节省这些时间

请注意,此解决方案适用于MAc OS X 10.8.5。它可能不适用于您

下面是让Apache2.4.7与PHP5.5一起工作的

  • 更新和下载您需要的工具

    1.1-XCode。从苹果商店免费获得

    1.2-XCode命令行。转到XCode、首选项、下载并获取命令行

    1.3-自制。使用以下命令:

    ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
    
    更多信息

  • 几张支票

    2.1-检查周围是否没有当前的apache或php安装。为此,我删除了它们,并用命令查找配置文件,以防万一

    find /usr -name "apache"
    
    find /usr -name "httpd"
    
    find /usr -name "php
    
    2.2-使用brew doctor确认没有干扰设置的配置

    brew doctor
    
    2.3-通过确认以下命令不起作用来检查是否正确执行

    php -v
    apachectl -v
    httpd -v
    
  • 安装apache

    3.1-使用

    3.2-修改您的.bash_配置文件,以使/usr/local/bin成为优先级文件夹(因此系统从那里获取apache和php,而不是其他文件夹,如/usr/sbin)

    3.3-确认apache工作正常。要执行此操作,请启动服务并转到显示“ItWorks”的localhost。然后关闭它继续使用php

    sudo apachectl start
    (Go to browser and open localhost)
    sudo apachectl stop
    
  • 安装php

    4.1使用

    4.2如果由于以下错误而无法工作

    cannot open /usr/share/httpd/build/config_vars.mk: No such file or directory at /usr/sbin/apxs line 217.
    
    。。。通过以下方式创建符号链接:

    cd /usr/share/
    sudo ln -s /usr/local/Cellar/apache24/< apache version installed >/ httpd
    
    。。。然后在LoadModule部分添加php模块(搜索LoadModule)

    。。。并在mime_模块中添加php类型。搜索mime#模块,并在该部分中搜索#过滤器

    。。。在它们下面添加下一行

    # process php type files using apache php module
    AddType application/x-httpd-php .php
    
    这告诉Apache在将文件发送到客户端之前,先通过其php处理器运行该文件

    。。。保存并退出

  • 如果要将站点存储在用户文件夹而不是WebService中,则为可选

    6.1再次修改httpd.conf。 打开文件

    cd /usr/local/etc/apache2/
    sudo nano httpd.conf
    
    cd /usr/local/etc/apache2/
    sudo nano httpd.conf
    
    并在文件末尾添加以下行,替换为您的用户名

    ServerName dev.local
    User <username>
    Group staff
    
    DocumentRoot "/Users/<username>/Sites"
    ErrorLog "/usr/local/var/log/apache-error.log"
    CustomLog "/usr/local/var/log/apache-access.log" common
    <Directory "/Users/<username>/Sites">
      Options All
      AllowOverride All
      IndexOptions NameWidth=*
    
      Require all denied
      Require host localhost
      Require host 127.0.0.1
    </Directory>
    
    7.2在Sites文件夹的根目录中创建一个php文件(如果执行了步骤6,请在/Users//Sites/test.php中创建)

    7.3打开它

    Go to Browser and localhost/test.php
    

  • 祝你好运。

    除了步骤4.1之外,本指南非常棒,在该步骤中,您必须像下面这样安装php:

    brew install php55 --homebrew-apxs
    
    这一行将自动将“LoadModule php5_module…”放在httpd.conf中,因此如果有人执行了上述其他步骤,只需使用以下命令删除php:

    brew remove php55
    
    然后使用以下行安装php:

    brew install php55 --homebrew-apxs
    

    然后就没有问题了

    感谢您的帮助,遗憾的是,它没有解决问题。我很遗憾地听到:(我们感受到了您同样的挫折。我们尝试了与您相同的事情,但失败了,决定尝试Brew。Brew抱怨MacPorts仍然安装,“哪个端口”in t向我们展示了垃圾文件的位置。ready to brew…下一个错误:compile失败。我们需要将apsx从/usr/local/apache/bin复制到/usr/sbin,然后brew完成了安装和制作。但没有php解析。起初MIME没有意义,因为我们认为它与发送到浏览器的文件有关(即发送mp3打开电脑上的mp3播放器),但在遵循您的说明之后,php被解析了。我们编辑了该部分也是为了帮助您!tuI很高兴它帮助了您!当然欢迎您的贡献。希望它也能帮助其他人。我并不真正理解第4.2步,我应该从包含
    config_vars.mk
    的文件夹中添加一个simlink到httpd的文件夹二进制文件或apxs one的文件夹中apache的文件夹。这将使第5步变得不必要。对答案的贡献很好-虽然不是答案本身
    brew install php55 --homebrew-apxs
    
    brew remove php55
    
    brew install php55 --homebrew-apxs