Mac OS X Yosemite 10.10 配置 Apache+PHP 教程注意事项

刚更新到了 Mac OS X Yosemite 10.10,发现运行Apache出现了一些问题,修正一下!

教程基于 Mac OS X Mavericks 10.9.X,移步:Mac OS X Mavericks 配置 Apache+Mysql+PHP 详细教程

首先启动 Apache,在终端里输入命令:

sudo apachectl start

查看 Apache 版本:

httpd -v

在Yosemite 10.10下,apache更新了

Server version: Apache/2.4.9 (Unix)
Server built:   Sep  9 2014 14:48:20

接着测试,我就发现如下几点需要修正,如有其它疑问欢迎交流:

1、重新启用PHP,避免脚本直接显示在页面上

首先是 http://localhost/ 会将 PHP 代码直接显示在页面上,这里需要开启 php 支持:

sudo nano /etc/apache2/httpd.conf

按 ctrl+W 查找并去掉代码行前边的 #,之后重启 apache,如下:

LoadModule php5_module libexec/apache2/libphp5.so

2、开启支持用户级目录 http://localhost/~username/

用户级目录不能访问了,http://localhost/~yang/,提示:

Not Found
The requested URL /~ yang/ was not found on this server.

首先配置 yang.conf 运行命令:

sudo vi /etc/apache2/users/yang.conf

将以下代码保存在 conf 文件中,与 10.9.X 不一样:

<Directory "/Users/yang/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
</Directory>

记得给权限:

sudo chmod 755 /etc/apache2/users/yang.conf

这里还需要启用几个支持,运行:

sudo nano /etc/apache2/httpd.conf

查找并去掉代码行前边的#,启用如下:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

接着运行:

sudo nano /etc/apache2/extra/httpd-userdir.conf

开启:

Include /private/etc/apache2/users/*.conf

最后别忘记重启 Apache

sudo apachectl restart

再试一下,是不是成功啦!

http://localhost/~yang/

注:这里的 yang 是macbook用户名。

另,如果需要.htaccess支持伪静态rewirte,需要在 httpd.conf 开启代码行:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

注:在 MAC OS 系统下 .htaccess 文件是不能直接新建的,而且是隐藏状态!
例如给wordpress添加伪静态,如下命令:

cd ~/Sites/Wordpress
touch .htaccess
vi .htaccess

添加如下内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~yang/Wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~yang/Wordpress/index.php [L]
</IfModule>

记得给予权限及重启:

chmod 777 .htaccess
sudo apachectl restart

参与评论

  • Jason

    <Directory "/Users/yang/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
    </Directory>

    这里有问题,换成:
    <Directory "/Users/yang/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
    Allow from all
    </Directory>

    3年前 (2016-05-11)
    回复
    回复Jason
  • leader4

    非常感谢,我用的是mac10.10,配置apache2.4,初学php,想自己搭建环境,结果网上搜了好多,照着做了好多,都提示not found 或err ,终于在您这里通过以下修改解决了环境搭建问题。

    Options Indexes MultiViews
    AllowOverride None
    Require all granted

    再次感谢!

    3年前 (2016-01-21)
    回复
    回复leader4
  • wangshiruyan

    你好 ,我最近也在配置Apache,我的系统是10.10的 按照上边的设置了,但是不管打开localhost还是127.0.0.1都显示“网站已关闭。管理员可以使用 Server 应用程序来打开这些网站。” 最开始开启Apache的时候,输入localhost显示it works ,后来不管我怎么改都显示网站已关闭那句话。另外,我在httpd.conf里边建了DocumentRoot 和Directory这两个路径。

    3年前 (2016-01-08)
    回复
    回复wangshiruyan
  • shu

    缺少 httpd-userdir.conf 这个文件,求发一份 mo_zifeiyu@icloud.com ,谢谢。

    3年前 (2015-12-17)
    回复
    回复shu
  • shu

    配置文件都被我改烂了,能不能发个配置文件给我?mo_zifeiyu@icloud.com QQ:2690973946谢谢!

    3年前 (2015-12-16)
    回复
    回复shu
  • 杨俊伟

    已发!

    3年前 (2015-12-17)
    回复
    回复杨俊伟
  • shu

    收到。能不能吧你Q给我,请教你几个问题?我是新手。

    3年前 (2015-12-17)
    回复
    回复shu
  • 胡宗林

    thinkphp Url出现 Not Found

    The requested URL /About-index.html was not found on this server. 怎么办 项目在台式电脑就可以 移到mac 就不行了, 后台可以用 就是前台url 用不了 用的{:U('About/index')}

    3年前 (2015-12-05)
    回复
    回复胡宗林
  • 寞墨

    配置完了之后localhost与localhost/~lihuijiang/均报403怎么回事

    3年前 (2015-11-22)
    回复
    回复寞墨
  • 杨俊伟

    类似 yang.conf 的权限配置对了么,本文基于 OS X 10.10,最新的 el capitan 10.11.X 未做测试

    3年前 (2015-11-23)
    回复
    回复杨俊伟
  • kl未央

    按你的改了, localhost都不能打开了。我想知道问题出在哪里 你为什么不回答类似的问题呢?

    3年前 (2015-11-21)
    回复
    回复kl未央
  • 杨俊伟

    首先你得确认是基于此系统版本,然后保证流程正确,不少同学反馈没注意这个没注意那个的……最后就是此类问题真心需要具体问题具体分析。

    3年前 (2015-11-23)
    回复
    回复杨俊伟
  • sEal.

    按照教程配置了,但是PHP打开是空白,这是什么原因

    4年前 (2015-11-04)
    回复
    回复sEal.
  • 杨俊伟

    重启一下 apache ,或者目录下写一个测试phpinfo,看是否成功

    4年前 (2015-11-05)
    回复
    回复杨俊伟
  • 暖色调

    顶,我也是,更新为10.11不能用了

    3年前 (2016-01-08)
    回复
    回复暖色调
  • 杨俊伟

    怎么个不能用!

    4年前 (2015-10-09)
    回复
    回复杨俊伟
  • 胡宗林

    我用了Navigate for mysql 可以使用 但是设置密码了就不能用了 就说连接失败 没有权限

    4年前 (2015-10-10)
    回复
    回复胡宗林
  • 杨俊伟

    使用 adminer 管理mysql试一下

    4年前 (2015-10-10)
    回复
    回复杨俊伟
  • 胡宗林

    mysql 可以打开 但是phpmyadmin 提示没有权限

    4年前 (2015-10-09)
    回复
    回复胡宗林
  • 杨俊伟

    是否程序原因呢!比如加载了google服务什么的!

    4年前 (2015-10-09)
    回复
    回复杨俊伟