首页 > 代码库 > Mac OS X原 Apache 删除后重装方法

Mac OS X原 Apache 删除后重装方法

网上一直有说不建议删除OSX自带的Apache,我也是手贱了

不过既然已经删掉了,要用就得装回来吧,顺带也更新升级

好吧,开动


直接上brew安装吧,省时省力,如果喜欢手动也建议先弄个brew

先弄Apache吧,当时百度了半天不知道在哪里下载

后来才知道原来这货本名叫 httpd (卧槽……)


第一步:

--------------------------------------------------手动操作控--------------------------------------------------

Apache httpd:

下载链接:http://httpd.apache.org/download.cgi


这是PHP的,要下旧版本如 5.3 之类点右边的 Old archives

下载链接:http://php.net/downloads.php


httpd 的安装,先终端跑这句,32位的系统 host 用 i386

sudo ./configure --prefix=/usr/local/apache2 --with-apr=/usr/sbin/apr --with-apr-util=/usr/sbin/apr-util --host=amd64

运气好肯定没 error,运气不好就先用 brew 装那个 apr 和 apr-util 吧,缺什么就 brew install 什么

然后就 make && make install 吧,完事后文件都跑到 /usr/local/apache2里面去了

打开 conf 里面的 httpd.conf 配置ServerRoot、Listen Port、Module等

-----------------------------------------------------------------懒人控-----------------------------------------------------------------

缺什么就 brew install 什么

brew install httpd24回车等待

然后添加PHP扩展库

brew tap homebrew/dupes
brew tap homebrew/php
brew tap josegonzalez/homebrew-php

如果有问题就先 brew update 一次再添加扩展

最后安装 php,需要 5.4 就写 php54,5.5 就 php55,会自动下载当前最新的子版本

例如我安装 php53 就会下载 5.3.29

brew install php53回车等待


如果报错提示什么 apxs,Apache 没有使用 --enable-so,/usr/share/httpd/build 什么的

先创建一个httpd的软链接到 /usr/share,然后cd 到 httpd 的目录下,接着

ln -s ./ /usr/share/httpd
再次安装错误就解决了

brew 安装的 httpd 配置文件在 /usr/local/etc/apache2/2.x/ 里

-----------------------------------------------------------------控尾行-----------------------------------------------------------------

别高兴得太早,还有很多细节得处理

第二步:

我们先来编辑编辑 httpd.conf 文件

这里有几个我们需要修改的地方

1. ServerRoot,值为httpd所在目录,一定不能错

2. Listen,端口号,我习惯80

3. LoadModule,如果是手动安装的php自己cp那个so文件到httpd里面的libexec目录下;如果是brew安装的

应该会自动添加一条类似LoadModule php5_module /usr/local/Cellar/php53/5.3.29/libexec/apache2/libphp5.so的

4. 看到 User Daemon 和 Group Daemon,Daemon 改成 _www 吧

5. ServerAdmin,管理员邮箱,可改可不改

6. ServerName,如果前面加了#号一定去掉,改成 localhost 或者 127.0.0.1 

7. DocumentRoot,就是 Windows 下的 www 文件夹,建议改到 /Users/用户名/Sites,没有Sites新建一个,

修改后下面的 <Directory 也要改成和 DocumentRoot 同样值

改好了保存,这个时侯我们还是访问不了php的网页,不信在Sites目录里写个php文件内容

<?php
	phpinfo();
?>
当然在打开之前我们先终端跑一句:

sudo apachectl start

然后浏览器打开localhost,是不是直接出来 php 代码了 - -

好了,别被玩儿坏了,我们来解决这个问题

新建一个文件吧,内容如分割线内:

--------------------------------------------------------------------------------------------------------------------

#
# Additional PHP Apache directives,
# part of the entropy.ch PHP package for Mac OS X

# For more information, go to http://www.entropy.ch/software/macosx/php/
#
# 这里的 php module 路径改成自己的 so 文件所在位置
LoadModule php5_module /usr/local/Cellar/php53/5.3.29/libexec/apache2/libphp5.so

# 这个就是解决 php 显示代码的
<IfModule mod_php5.c>

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

# 这个是设置允许默认访问 index.php
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

--------------------------------------------------------------------------------------------------------------------

保存为 php.conf,手动安装 httpd 的孩纸把文件放到 /etc/ 下吧

brew 的孩纸放到 /usr/local/etc/php/5.x/ 里

然后再次编辑 httpd.conf 文件

把 LoadModule 里的 php5_module 这一行注释掉(前面加上#)

在文件末尾添加一句:

Include /etc/php.conf 或

Include /usr/local/etc/php/5.x/php.conf

然后保存


第三步:

打开 php 目录里面的 php.ini 文件,找到 [Date],下边有一行 ;date.timezone =

改为 date.timezone = PRC 保存

可解决 PHP Warning: phpinfo(): It is not safe to rely on the system 问题

Mac OS X原 Apache 删除后重装方法