• 欢迎@方程式 @小云 加入我们
  • Register

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
版权声明:转载请注明来自杨俊伟博客,本文地址:http://yangjunwei.com/a/1568.html
除非注明,杨俊伟博客文章均为原创,转载请注明出处和链接!
 

70 条评论 »

  • Jason
    2016/05/11 at 21:14:30

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

  • leader4
    2016/01/21 at 12:01:11

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

    Options Indexes MultiViews
    AllowOverride None
    Require all granted

    再次感谢!

  • wangshiruyan
    2016/01/08 at 12:07:23

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

  • shu
    2015/12/17 at 21:28:05

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

  • shu
    2015/12/17 at 01:12:16

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

  • 胡宗林
    2015/12/05 at 21:03:08

    thinkphp Url出现 Not Found

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

  • 寞墨
    2015/11/22 at 16:26:49

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

    • 头像来自 腾讯QQ
      杨俊伟
      2015/11/23 at 10:14:09

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

  • kl未央
    2015/11/21 at 20:49:39

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

    • 头像来自 腾讯QQ
      杨俊伟
      2015/11/23 at 10:12:00

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

  • 头像来自 腾讯QQ
    sEal.
    2015/11/04 at 23:12:31

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

  • 陈小予
    2015/10/25 at 16:33:16

    网站做的好棒哦

  • clear
    2015/10/23 at 17:00:21

    太棒了,解决了

  • 胡宗林
    2015/10/09 at 12:35:24

    哎 惨了 升级10.11后又不能用了

  • Tylerrr
    2015/10/06 at 07:08:34

    升级了10.11 按照您10.10的又配置了一遍 根目录下的网站可以打开了 但是载入速度十分慢 请问下是什么问题呢?

  • 无节操图片
    2015/10/02 at 16:52:31

    好东西 谢谢分享

  • 集團菌
    2015/09/01 at 21:38:28

    成功了!!感谢!

  • Alien
    2015/08/22 at 14:01:10

    还是不行?

    Not Found

    The requested URL / was not found on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

  • 木木彡615
    2015/05/27 at 10:29:57

    10.10的系统,刚开始开启apache localhost还可以访问,后来不知道怎么弄的,现在localhost访问不了,apache启动也没报错啊!请问怎么解决啊

    • 头像来自 腾讯QQ
      杨俊伟
      2015/05/27 at 15:15:42

      @木木彡615 看一下报的什么错,如果没有升级过系统,一般是权限问题。说一个案例,看对你是否有帮助:有一同学拷贝全站代码替换到localhost,导致无法访问,尝试一下新建目录!

  • hpking
    2015/05/15 at 21:38:00

    碰到一个问题,htaccess无权限,能否帮一下?

  • 王玮
    2015/05/05 at 17:01:03

    首先感谢博主,按你说的成功了~~~嘻嘻,还有一个问题想请教一下
    怎么改变appache的默认目录,我修改了httpd.conf,把"/Library/WebServer/Documents"都改成了我自己的路径发现不行

  • liting
    2015/04/17 at 14:35:26

    开启Include /private/etc/apache2/users/*.conf
    连localhost都访问不了,有同样情况的人吗?

    • 清风笑
      2015/05/01 at 15:08:20

      @liting 问题出在设置虚拟主机那个地方,不用设置虚拟主机,问题就解决了。

  • 漱沫瞻烟
    2015/04/16 at 18:43:19

    Forbidden

    You don't have permission to access /~username/ on this server.

    我也遇到了这个问题,但是我反复检查,确实conf已经改过来了。请问您知道是什么原因吗

  • 灵_望舒
    2015/03/23 at 14:35:27

    在sudo chmod 755 /etc/apache2/users/haibor.conf中
    找不到
    LoadModule php5_module libexec/apache2/libphp5.so 该如何解决

    • 头像来自 腾讯QQ
      杨俊伟
      2015/03/23 at 19:36:39

      @灵_望舒 是在 sudo nano /etc/apache2/httpd.conf 中

      • 灵_望舒
        2015/03/23 at 21:31:20

        @杨俊伟 这里面没有。。。之前手误

        • 头像来自 腾讯QQ
          杨俊伟
          2015/03/23 at 21:36:51

          @灵_望舒 此文基于os x 10.10,刚刚确认了一下,libphp5.so 在169 行!

          • 灵_望舒
            2015/03/23 at 23:54:45

            @杨俊伟 LoadModule userdir_module libexec/apache2/mod_userdir.so
            LoadModule alias_module libexec/apache2/mod_alias.so
            #LoadModule rewrite_module libexec/apache2/mod_rewrite.so
            #LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so “这里是169” 怎么办==!

            <IfModule unixd_module>
            #
            [ line 169/540 (31%), col 1/62 (1%), char 8959/20781 (43%) ]

          • 头像来自 腾讯QQ
            杨俊伟
            2015/03/24 at 10:06:20

            @灵_望舒 手动添加此行,看是否可行!

  • obzone
    2015/03/19 at 23:06:06

    配置完以后,服务器是开着的,然后localhost访问提示无法连接服务器,
    谁能发我一份httpd.conf文件啊,shaoyecheng@live.cn qq:395732456

  • obzone
    2015/03/19 at 22:53:19

    按照说的配置了,现在连localhost都无法访问了,这什么情况

  • peter
    2015/03/09 at 21:35:04

    太牛了 成功!

  • mraz
    2015/02/12 at 14:23:35

    apache的conf,里面User和Group要改成当前的用户和用户组

  • 钱蛋儿
    2015/01/16 at 18:09:53

    “Google Chrome”到 localhost 的连接尝试遭到拒绝。原因可能是该网站已崩溃,也可能是您的网络配置不正确。
    请检查您的互联网连接是否正常
    请检查您的网线是否插好,并重新启动您在使用的任何路由器、调制解调器或其他网络设备。
    对防火墙或防病毒软件进行设置,以允许 Chrome 访问该网络。
    如果它已被列为允许访问网络的程序,请尝试将其从列表中删除,然后再重新添加。
    如果您使用代理服务器…
    请检查您的代理设置,或与网络管理员联系以核实代理服务器是否运转正常。如果您认为自己使用的不是代理服务器,请执行以下操作: 依次转到“应用”>“系统偏好设置”>“网络”>“高级”>“代理”,然后取消选中所有已选的代理。
    这个怎么破啊 ,好像都被我搞烂了,大神能不能留个麻花藤啊

    • 头像来自 腾讯QQ
      杨俊伟
      2015/01/17 at 16:42:45

      @钱蛋儿 清一下你浏览器缓存,然后尝试一下用 127.0.0.1,如果不行,可能是你localhost服务器未正常启动

  • seeyoon
    2015/01/11 at 22:55:41

    可以了。。。之前conf文件一直没改过来,因为用系统自带的编辑器一直提示被锁定,用sublime修改成功。

  • seeyoon
    2015/01/11 at 22:30:58

    Forbidden

    You don't have permission to access /~username/ on this server.

    您知道这个是什么情况吗,谢谢

  • 钱蛋儿
    2015/01/06 at 19:27:33

    我的没有conf怎么破啊,

  • 耳朵奍小鱼
    2014/12/03 at 19:25:48

    你好,我按照你最新的教程,最后打开http://localhost/~jinbiao/,提示因为safari不能连接到服务器http://localhost,但是我在浏览器输入http://localhost 显示it works,求助应该怎样解决呢?

  • Selen
    2014/10/21 at 10:47:05

    昨天发现不能用后就找到了之前保存的10.9的教程,然后上面就大大的写着10.10的注意事项,太赞了。

  • 星空之下
    2014/10/20 at 10:03:24

    更新了系统后,发现本地架构的网站验证码打不开。例如phpcms的验证码。和旧系统对比发现gd库缺少了freetype,怎样才能重新安装gd库

  • 星空之下
    2014/10/19 at 23:19:52

    如何安装gd库

发表评论 

我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册