• Register

Mac OS X Mavericks 配置 Apache+Mysql+PHP 详细教程

2014-10-19更新:MacOS X yosemite 10.10 下,有一些地方需要注意一下,为避免教程混乱,请移步:

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

 

网上的教程已经有很多,这里简洁的记录一下。以 Mac OS X Mavericks 10.9.X 为例。

先附上如何进入指定目录文件夹,按键盘 Command + Shift + G ,然后输入指定目录名即可。

一、启动 Apache

Mac OS X 系统已经集成了 Apache+PHP 环境,依次进入“系统偏好设置 -> 共享” ,开启“Web 共享”,就可以打开 Apache。

新版的 Mac OS X 中,苹果取消了这个共享功能的图形界面,只能从命令行开启

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

sudo apachectl start

关闭 Apache:

sudo apachectl stop

重启 Apache

sudo apachectl restart

查看 Apache 版本:

httpd -v

MacOS X 10.9.X 中的 Apache 版本信息:

Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

MacOS X yosemite 10.10 中的 Apache 版本信息:

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

启用 Apache 之后,在浏览器中访问 http://localhost 或 http://127.0.0.1,如果出现“It works!”就表示运行正常。

二、Root 目录

OS X 中默认有两个目录可以直接运行你的 Web 程序,一个是系统级的 Web 根目录,一个是用户级的根目录,大家记下即可。

注:以下 haibor 为用户名,需要按实际修改。

Apache系统级的根目录及对应网址是:

/Library/WebServer/Documents/
http://localhost

用户级的根目录及对应网址是:

~/Sites
http://localhost/~haibor/

952C931C-1FF4-48DD-B9E8-1D02276F8D4A

~/Sites 也就是你用户目录下面的”站点”目录,在 OS X 中,这个目录可能没有,所以你需要手动建立一个同名目录。建立方式很简单,直接在终端中运行:

sudo mkdir ~/Sites

建立“站点”文件夹之后,检查 /etc/ 文件夹下面是不是有“haibor.conf”这个文件:

/etc/apache2/users/

如果没有,那么你需要创建一个,取名为“haibor.conf”,可以使用 vi 或者 nano 这两种编辑器之一来创建。

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

创建之后将下面的这几行内容写到上面的 conf 文件中:

<Directory "/Users/haibor/Sites/">
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

文件保存之后,给它赋予相应的权限:

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

接下来重启 Apache,以使该配置文件生效:

sudo apachectl restart

之后你就可以通过浏览器访问你的用户级目录网页了,你可以随便防个网页进去测试一下。根目录地址为:

http://localhost/~haibor/

也可以更改根目录,但要记得给新文件夹设置,文件夹需要有执行权限x,设置了755就可以了:

mkdir /Users/user/workspace
chmod 755 /User/user/workspace

把/etc/apache2/httpd.conf文件里的 /Library/WebServer/Documents/ 都替换成自己的路径,比如 /User/user/workspace

重启Apache:apachectl restart,再次访问localhost即显示的是更改后的文件里的内容了。

三、启动 PHP

OS X Mavericks 中已经集成了 PHP 5.4.30 版本,需要手动开启。你可以用 vi 或者 nano 编辑器打开下面这个文件:

sudo nano /etc/apache2/httpd.conf

然后按ctl+W进行查找,搜索”php”,第一条匹配的应该是下面这句代码:

LoadModule php5_module libexec/apache2/libphp5.so

请将这句代码前面的#去掉,然后保存文件。

将 /etc/php.ini.default 复制为 /etc/php.ini,使用命令:

cp /etc/php.ini.default /etc/php.ini

就可以按照自己的习惯修改php.ini的配置,例如上传大小限制:

post_max_size = 20M
upload_max_filesize = 20M
memory_limit = 256M /*脚本运行最大消耗的内存*/

接下来再一次重启 Apache:

sudo apachectl restart

现在 PHP 应该已经开始工作了,你可以在用户级根目录下(~/Sites/)放一个PHP测试文件,代码如下:

<?php phpinfo(); ?>

四、安装 MySQL

1、下载 MySQL 及安装

OS X Mavericks 中并没有集成 Mysql,需要手动安装。

官网下载: http://dev.mysql.com/downloads/mysql/

国内镜像: http://mirrors.sohu.com/mysql/

请下载 Mac OS X 10.7 (x86, 64-bit), DMG Archive  (如有更新版本,可下载)。

如需要登录/注册,直接点下方的:No thanks, just start my download.

下载完DMG之后,双击你会提取出三个文件和一个 RedMe.txt 文档。这三个文件分别是:

mysql-5.6.15-osx10.7-x86_64.pkg
MySQLstartupitem.pkg
MySQL.PrefPane

你需要逐一安装这三个文件,MySQLStartupItem.pkg 安装后,mysql会随系统启动而自启动,MySQL.prefPane 表示可以在系统偏好设置中看到mysql选项,还有一个就是mysql的安装项。

2、配置及启动 MySQL

三个文件都安装完成之后,进入「系统偏好设置」,在面板的最下面你会看到一个 MySQL 的设置项,点击它之后就可以启动MySQL。

mysql-for-mac-os-x

也可以通过命令开启mysql

sudo /usr/local/mysql/support-files/mysql.server start

如果你想查看 MySQL 的版本,可以用下面这个命令:

/usr/local/mysql/bin/mysql -v

运行上面这个命令之后,会直接从命令行中登录到 MySQL,输入命令 \q 即可退出。

到这里 MySQL 已经配置完成,并且可以运行。

3、mysql相关命令设置

为了更加方便使用,最好再设置一下系统环境变量,也就是让 mysql 这个命令在任何路径都可以直接启动(不需要输入一长串的准确路径)。

设置环境变量也很方便,直接用命令(这里笔者用 vi 编辑器举例):

cd ;
vi .bash_profile

然后按字母 i 进入编辑模式,将下面的这句代码贴进去:

export PATH="/usr/local/mysql/bin:$PATH"

然后按 esc 退出编辑器,再输入 :wq(别忘了冒号)保存退出。当然你如果使用 nano 或者别的编辑器的话,操作方式跟这个可能不一样,反正意思就是将上面那句话写入到 .bash_profile 文件中。

接下来还要重新加载一下 Shell 以让上面的环境变量生效:

source ~/.bash_profile

之后你就可以在终端的任意目录使用 mysql 命令了,你可以运行 mysql -v 试试。

最后一步,安装好后默认的用户名是root,密码为空,你还应该给你的 MySQL 设置一个 root 用户密码,命令如下:

mysqladmin -u root password '这里填你要设置的密码'

(请记住密码一定要用半角单引号包起来)

上面的 mysqladmin 命令,我没有写完整路径。因为上面我们已经设置了环境变量,如果你没有设置环境变量的话,就需要用/usr/local/mysql/bin/mysqladmin ******** 来运行。

4、修复mac下 mysql.sock 路径导致的2002 socket 错误

由于 mac 下安装mysql,自动生成的 mysql.sock 路径在 /tmp/mysql.sock ,而php默认连接mysql的路径是 /var/mysql/mysql.sock ,因此需要通过如下命令来修复连接:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

当然也可通过修改 /etc/php.ini 如下行:

mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock

上述操作也能解决 mysql 不能使用 localhost 连接的问题,由于“127.0.0.1”使用“TCP/IP”协议,“localhost”使用sock方式连接,而mac下的mysql.sock的位置/tmp/mysql.sock与phpinfo() 给出的位置/var/mysql/mysql.sock不相符。

五、安装 phpMyAdmin 或 adminer

可以在 phpMyAdmin官网下载安装包,推荐下载 english.tar.gz,也可以下载 all-languages.tar.gz 使用中文版,解压之后,将解压出来的文件夹改名为”phpmyadmin”,并放到上面建立的”站点”目录下(~/Sites)。然后在 phpmyadmin 下建立一个 config 文件夹:

到这里就算完成了,接下来你就可以访问 http://localhost/~haibor/phpmyadmin/  来通过 phpmysql 管理你的数据库了。

也可以使用 adminer 来管理,很方便的说,推荐相关文章 轻量级主流数据库Web端管理工具Adminer

Adminer官网下载

六、设置虚拟主机

1、配置 Apache 文件:

sudo vi /etc/apache2/httpd.conf

在 httpd.conf 中找到“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,去掉前面的“#”,“:wq!” 保存并退出。

重启 Apache:sudo apachectl restart 。

2、配置虚拟主机文件 httpd-vhost.conf

sudo vi /etc/apache2/extra/httpd-vhosts.conf

实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:

Forbidden
You don't have permission to access /index.php on this server

最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。

增加如下配置

<VirtualHost *:80>
    DocumentRoot "/Users/haibor/Sites"  #程序目录
    ServerName localhost    #此处也可以设置为其它,例如 sites
    ErrorLog "/private/var/log/apache2/sites-error_log"
    CustomLog "/private/var/log/apache2/sites-access_log" common
    <Directory />
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

:wq! 保存退出,并重启Apache。

3、配置hosts文件,运行命令:

sudo vi /etc/hosts

加入"127.0.0.1 localhost" 或 "127.0.0.1 sites",这样就可以配置完成 localhost / sites 虚拟主机了,可以访问“http://localhost” 或 “http://sites”了。

在10.8之前Mac OS X版本其内容和“http://localhost/~[用户名]”完全一致。

注意,记录log的“ErrorLog "/private/var/log/apache2/sites-error_log"”也可以删掉,但记录日志其实是一个好习惯,在出现问题时可以帮助我们判断。如果保留这些log代码,一定log文件路径都是存在的,如果随便修改一个不存在的,会导致Apache无法服务而没有错误提示,这个比较恶心。

七、关于 php.ini

先复制一份 php.ini,然后就可以通过php.ini来配置各种PHP功能了。

sudo cp /etc/php.ini.default /etc/php.ini

例如修改 upload_max_filesize、memory_limit、post_max_size 三项值,来调整PHP提交文件的最大值,比如phpMyAdmin中导入数据的最大值。

八、其它

1、安装 Zend Guard Loader

官网下载:http://www.zend.com/en/products/loader/downloads#Mac%20OS

针对mac下php版本对应下载,例如 zend-loader-php5.5-darwin10.7-x86_64.tar.gz,解压后得到 ZendGuardLoader.so 文件,存放到 /usr/local/lib/php/ 目录下。

接着编辑配置文件  php.ini :

zend_extension = /usr/local/lib/php/ZendGuardLoader.so ##路径根据实际情况而定
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=

注:同时使用以下两个拓展,需要注意确保 ioncube loader 在 Zend Guard Loader 之前加载,Zend debugger 在 Zend Guard Loader 之后加载。

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

发表评论 

28 条评论 »

  • tnt元上
    2016/01/01 at 13:30:06

    localhost 可以访问,加了你说的~用户名就不行了。作者你有自己尝试么?

  • 胡宗林
    2015/10/09 at 19:00:38

    配置mysql 的时候lindeAir:~ lin$ /usr/local/mysql/bin/mysqladmin -u root password 'hzl500520'
    /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: NO)'

    • Gammalong
      2015/11/29 at 21:37:41

      @胡宗林 嗨,你这个问题时怎么解决的呢?

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

        @Gammalong 密码问题 设置密码后就可以用了,

    • 头像来自 新浪微博
      杨俊伟
      2015/10/10 at 14:44:17

      @胡宗林 将 localhost 换成 127.0.0.1

  • 胡宗林
    2015/10/09 at 18:44:32

    Forbidden

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

  • 准码农
    2015/10/02 at 13:19:09

    写的真好,谢谢分享!

  • 胡宗林
    2015/09/28 at 12:09:32

    完全按照你说的改的 localhost 可以打开 但是到localhost/~Lin/就提示没有权限; 搞两天了 还是那个样

    • 头像来自 新浪微博
      杨俊伟
      2015/09/28 at 16:44:10

      @胡宗林 首先确认你的OSX系统版本,用户根目录不要更改为其它的,否则OSX目录权限比较麻烦。

      • 胡宗林
        2015/10/08 at 21:07:18

        @杨俊伟 已经搞好了 现在在配置mysql了, 真是好文章,像我们这种小白都能配置好,现在又升10.11了,不知道会不会有影响,观望中没敢升

  • IBOOKS
    2015/09/18 at 16:15:01

    按步骤来的,通过命令行可以操作数据库,还是不能通过phpmyadmin登录mysql,提示无法登录服务器,不知道问题出在什么地方,另外在phpmyadmin目录里新建config目录是目的是什么呢?谢谢。

    • 头像来自 新浪微博
      杨俊伟
      2015/09/18 at 16:24:16

      @IBOOKS 换 adminer 管理 mysql 吧,或者你将 phpmyadmin 配置文件中 localhost 改为 127.0.0.1

  • 最励志网
    2015/08/19 at 18:23:13

    分享一下我的网站,http://www.zuilizhi.net 最励志网

  • 爱奇趣分享网
    2015/08/18 at 20:41:49

    分享一下我的网站,http://www.iqiqu.net 爱奇趣网

  • 韩小城
    2015/04/09 at 01:15:24

    域名输入,不要端口输入

  • 韩小城
    2015/04/09 at 01:13:10

    #号我去了,端口我开的80和81,在hosts里设置127.0.0.1. http://www.aa.com 127.0.0.1. http://www.bb.com 虚拟主机设置了2个域名是那2个。为什么输第2个虚拟非要加端口号,不然出不来,怎么回事?怎么搞

  • CJ_oX
    2015/03/30 at 22:17:52

    问下楼主

    创建之后将下面的这几行内容写到上面的 conf 文件中:这个文件修改 需要权限 这个怎么弄

    • 头像来自 新浪微博
      杨俊伟
      2015/03/31 at 12:04:31

      @CJ_oX 文件内容及权限设置命令都写出来啦

      • CJ_oX
        2015/03/31 at 23:33:08

        @杨俊伟 完全按照你的这两篇文章设置了 还是不行 不知道出错在哪了 郁闷

        • 头像来自 新浪微博
          杨俊伟
          2015/04/01 at 14:02:53

          @CJ_oX 重新检查一遍吧,看看哪报错!最近有不少按这个搞定的!

  • 风雪类
    2014/10/19 at 01:46:37

    升级到10.10了 输入http://localhost/~zs/ (zs是我的用户名)
    提示Not Found
    The requested URL /~zs/ was not found on this server.

    • action爱生活
      2014/11/03 at 16:41:13

      @风雪类 你解决了吗,我也是这样

    • 头像来自 新浪微博
      杨俊伟
      2014/10/19 at 19:05:23

      @风雪类 已经解决,移步:http://yangjunwei.com/a/1568.html

    • 头像来自 新浪微博
      杨俊伟
      2014/10/19 at 17:58:03

      @风雪类 我也是昨天才升级到的 10.10,刚发现用户级目录不能配置为虚拟主机,如有新进展,会告知你!

  • 汶萱。
    2014/10/09 at 16:57:47

    为何我配置虚拟主机后就访问不了了,没问题的!用户名也改了

    • 头像来自 新浪微博
      杨俊伟
      2014/10/10 at 16:00:13

      @汶萱。 我这儿都是直接使用 localhost ,虚拟主机有空具体配置一下再回复你!不过你可以试一下 配置hosts文件,是否忘记这个了?

  • tonyc620
    2014/01/25 at 21:19:10

    MAC 自带的apache只能指向~/Sites/么?我尝试了指向~/Documents/web/,但是提示403,文件的权限我都设置了777,配置也修改成了相应的路径,劳烦楼主解答一下,thanks!

    • 头像来自 新浪微博
      杨俊伟
      2014/01/26 at 14:18:58

      @tonyc620 这个还真没有尝试过!!刚拿到macbook,稍候亲测过再给你说哈!

我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册