【问题标题】:Apache 2.4 not loading php5.5 with Mac OS 10.8Apache 2.4 不使用 Mac OS 10.8 加载 php5.5
【发布时间】:2016-06-16 08:49:40
【问题描述】:

我正在尝试在装有 Mac Os 10.8.5 的 Mini Mac 中使用 Apache 2.4.7 和 php5.5

Apache 2.4.7 按照here 中的说明安装

运行 apachectl -v,显示

Server version: Apache/2.4.7 (Unix)
Server built:   Mar  4 2014 19:23:56

PHP5.5 按照here中的说明安装

运行 php -v,显示

 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

我在 apache http.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

按照我链接的教程中的建议,我修改了我的 bash 配置文件

export PATH=~/bin:/usr/local/php5/bin:$PATH
export MANPATH=/usr/local/apache/man:$MANPATH

我已经尝试了几个小时不同的解决方案,这就是我所得到的。

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

【问题讨论】:

    标签: php macos apache


    【解决方案1】:

    经过几个小时的尝试和这样做,我设法让它工作。

    我将描述我所做的事情,以帮助其他人节省时间!

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

    以下是让 apache 2.4.7php 5.5 工作

    1. 更新和下载您需要的工具。

      1.1 - XCode。从 Apple Store 免费获取。

      1.2 - XCode 命令行。转到 XCode、Preferences、Downloads,然后获取命令行。

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

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

      See the website 了解更多信息。

    2. 多次检查

      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
      
    3. 安装阿帕奇

      3.1 - 使用homebrew apache2 from djl

      brew tap djl/homebrew-apache2
      brew install djl/apache2/apache24
      

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

      echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
      

      3.3 - 确认 apache 工作正常。为此,请启动服务并转到出现“It works”的本地主机。然后关闭它继续php。

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

      4.1 使用homebrew php from josegonzalez

      brew tap homebrew/dupes
      brew tap homebrew/versions
      brew tap josegonzalez/homebrew-php
      brew install php55
      

      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
      

      ...并再次执行安装。

      将取决于安装的版本。 在撰写本文时,它是 2.4.10

    5. 告诉 Apache 它的新朋友。

      5.1 修改httpd.conf。 首先打开文件。

      cd /usr/local/etc/apache2/
      sudo nano httpd.conf
      

      ...然后在LoadModule部分添加php模块(搜索LoadModule)

      LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
      

      ... 并在 mime_module 中添加 php 类型。搜索 mime_module,然后在该部分中搜索 # Filters

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

      # process php type files using apache php module
      AddType application/x-httpd-php .php
      

      告诉 Apache 在将文件发送到客户端之前通过它的 php 处理器运行文件。

      ...保存并退出。

    6. 可选,如果您想将站点存储在您的用户文件夹而不是 WebService 中。

      6.1 再次修改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. 完成它!

      7.1 启动apache服务

      sudo apachectl start
      

      7.2 在站点文件夹的根目录中创建一个 php 文件(如果您执行了第 6 步,则在 /Users//Sites/test.php 中创建它)

      7.3 打开它。

      Go to Browser and localhost/test.php
      

    祝你好运。

    【讨论】:

    • 我们也感受到了同样的挫败感。我们尝试了与您相同的方法,但失败了,决定尝试 Brew。 Brew 抱怨 MacPorts 仍然安装,t 中的“哪个端口”向我们展示了该文件在哪里丢弃。准备酿造...下一个错误:编译失败。我们需要将 apsx 从 /usr/local/apache/bin 复制到 /usr/sbin,然后 brew 完成安装和制作。但没有php解析。起初 MIME 的事情没有意义,因为我们认为这与发送到浏览器的文件有关(即发送 mp3 在计算机上打开 mp3 播放器),但按照您的指示,php 被解析。我们也编辑了该部分以提供帮助!你
    • 我很高兴它有帮助!当然也欢迎贡献。希望它也可以帮助其他人。
    • 我不太了解步骤 4.2,我应该从包含 config_vars.mk 的文件夹中添加一个 simlink 到 httpd 的二进制文件夹或 apxs 的文件夹?
    • 到 apache 的文件夹。
    【解决方案2】:

    我猜你在加载 libphp5.so 时遇到了来自 apache2 的 the zend_parse_paramater 错误:

    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 2.3 2.4 2.4.1(发现:无)。

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

    然后 make distclean 然后 ./configure ... 然后 make -i install

    【讨论】:

    • 感谢您的帮助,遗憾的是它没有解决问题。
    • 很遗憾听到这个消息 :(
    【解决方案3】:

    本指南很棒,除了步骤 4.1,您必须像这样安装 php:

    brew install php55 --homebrew-apxs
    

    这一行会自动将“LoadModule php5_module ...”放到httpd.conf中,所以如果有人做了上面的其他步骤,只需删除php:

    brew remove php55
    

    然后安装 php 行:

    brew install php55 --homebrew-apxs
    

    然后就没有问题了!

    【讨论】:

    • 这确实使第 5 步变得不必要了。对答案的贡献很好 - 虽然本身不​​是答案
    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2013-03-03
    相关资源
    最近更新 更多