用惯了在Windows上一个appserv或phpStudy压缩包搞定,要在MAC上捣腾一个PHP开发环境还不大习惯。但自己亲自配一下环境还是有所收获的。众所周知OSX上自带了apache和php,所以这两个搞起来还比较顺利。装MySQL的最新版5.6.22版颇费周折,本文详细记录之。
apache的配置
apache已经自带了,只需如下三个命令就可以了。
开启apache服务 sudo apachectl start
停止apache服务 sudo apachectl stop
重启服务 sudo apachectl restart
查看版本 httpd -v
手动打开apache服务后,在浏览器输入localhost,将看到如下:
程序的根目录在/Library/WebServer/Documents/ 下,这个It works 就是里面的info.php打印出来的。下面介绍如何将apache的这个默认目录更改到用户目录下。
1,在自己的用户目录下新建一个Sites文件夹,我的用户目录为yanzi
2,进到cd /etc/apache2/users/目录下,sudo vim username.conf,内容为:
<Directory "/Users/yanzi/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
上面第一行里的yanzi就是用户目录。然后将该文件权限改为644:
sudo chmod 644 username.conf
3,进到/etc/apache2/目录,sudo vim 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 注释放开。
PS:在vim下只要切换到命令模式,然后输入/”words you need find”就能快速找到需要查找的词。
4,进到/etc/apache2/extra/目录,将Include /private/etc/apache2/users/*.conf 这句话放开注释。
然后终端输入:sudo apachectl restart 重启apache,浏览器输入: loacal/~yanzi/ 就能看到效果了。(yanzi是我的用户目录的名字,后面不用再加/Sites)
经过以上步骤apache就搞好了。
PHP配置
PHP的配置非常简单,就一个事,进到/etc/apache2/目录,编辑httpd.conf,找到LoadModule php5_module libexec/apache2/libphp5.so将其放开注释就行了。
然后sudo apachectl restart 重启,在用户目录的Sites文件夹下,新建一个index.php,里面echo phpinfo() ,就可以看到效果了:
安装MySQL5.6.22
这个版本是最新的MySQL,安装方法跟5.5的略有不同。在官网下载mysql-5.6.22-osx10.9-x86_64.dmg,下面是安装方法:
1,双击安装的时候,不要勾选StartUp Item这一项:
如此安装完毕后,在设置---MySQL手动开启MySQL服务。
我这里已经打开了MySQL服务。下面要将其设置为开机自动启动。
2,默认状态下,我们用mysql的命令每次都要输入全路径,如sudo /usr/local/mysql/support-files/mysql.server start 开启mysql服务,/usr/local/mysql/bin/mysql -v查看mysql版本,得先把bin目录配到环境变量里。切换到用户根目录 ,vim .bash_profile,输入:
export PATH=”/usr/local/mysql/bin:$PATH”
保存后,source .bash_profile使环境变量生效。接着就可以直接在终端里输入mysql命令了。
最后,通过mysqladmin -u root password ‘yourpasswordhere’ 给mysql的root用户设置密码。单引号里的内容就是要设的密码。
3,修复socket error的问题。有一个负责mysql 服务器 客户端通讯的socket文件,mysql的这个版本将其放在/tmp目录,但是OSX却默认的找 /var/mysql 这个目录,所以要建个软链接。新建目录 /var/mysql, 然后sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock 就ok了。
4,让mysql开机自动启动。
sudo vim sudo nano /Library/LaunchDaemons/com.mysql.mysql.plist,里面内容输入:
KeepAlive
Label
com.mysql.mysqld
ProgramArguments
/usr/local/mysql/bin/mysqld_safe
–user=mysql
保存后,修改权限:
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
这样mysql就ok了!
phpMyAdmin的安装
从http://www.phpmyadmin.net/home_page/downloads.php 下载,我下的是phpMyAdmin-4.4.2-all-languages.zip这个版本,将其解压。然后最外层文件夹名字修改为phpmyadmin,进到~/Sites/phpmyadmin这个目录,新建文件夹:mkdir config 修改读写权限:chmod o+w config
然后浏览器输入:http://localhost/~yanzi/phpmyadmin/setup/ (注意 中间的yanzi 换成自己的用户名称)
点击 “新建服务器“,我上面已经新建好了,然后在这个界面:
密码处输入mysql的root用户密码。然后点击“应用“,这样config文件夹下就生成了config.inc.php,将该文件拷贝到phpmyadmin的根目录下。然后删除整个config文件夹。输入http://localhost/~yanzi/phpmyadmin/ 就可以看到登陆phpmyadmin的界面了。 如此,phpMyAdmin搞定。
读写权限和分组问题
最后遗留一个读写权限和归属问题,如果本地开发测试的话,这个步骤可以忽略。如果想让自己的mac切实作为一台服务器,那么这个还要设置下的。这个步骤等同于在布阿里云代码的时候,让public_html文件夹的所有东西可写,且归属于www一个意思。假设Sites文件夹下有个自己的项目:testsite
sudo chmod -R a+w ~/Sites/testsite 设置所有人都可以读写
sudo chown -R _www ~/Sites/testsite 设置testsite文件夹只归属_www组。
OK,PHP在MAC上的搭建到此结束。
参考文献:
1.http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/
2.http://blog.csdn.net/henry121212/article/details/9210193 (参考这个没有搞成功)
附一个设置php虚拟主机的链接:
http://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/#apacheuser
另外 ,如果你一不小心安错了,那么可以参考下面删除mysql:
http://www.cnblogs.com/TsengYuen/archive/2011/12/06/2278574.html