最近重装系统,Mac下原有的PHP开放环境需要重新配置,因为之前没有记录,所以在网上到处搜参考资料,重新配置花了我不少功夫。
虽然Max下有XAMPP这样的一站式开发环境部署包。不过系统内部既然有现成的Apache和PHP,所以就好好利用这一点了。
机器环境是Mac OS X 10.7.2
1、Apache
先启用Apache试试。
打开System Preferences -> Sharing , 在Web Sharing前打勾,既可启动Apache。
或者是通过命令行启动
sudo apachectl start
然后在浏览器中打开 http://localhost 试试。
2、PHP
启用PHP。
打开Terminal,用你喜欢的编辑工具打开/etc/apache2/httpd.conf
比如:
vi /etc/apache2/httpd.conf
把LoadModule php5_module libexec/apache2/libphp5.so的注释就是“#”去掉,然后保存退出。
创建php.ini
sudo cp /etc/php.ini.default /etc/php.ini
然后打开php.ini,修改这一行:
;date.timezone =
把注释也就是“;”去掉,然后加入你的时区( http://php.net/manual/en/timezones.php )
例如:
date.timezone =Asia/Shanghai
最后重启一下apache就OK了。
在System Preferences 里,把Web Sharing关闭再打开。或者:
sudo apachectl restart
3、MySQL
从 http://dev.mysql.com/downloads/mysql/ 下载MySQL安装包。Lion系统应该默认是64位的了,所以下载64位的版本。
依次安装mysql, the startup item, the preference pane。
然后在system preferences面启动MySQL。
接着我们需要手动把MySQL的bin文件加入到环境变量里。
sudo vim /etc/paths
将 /usr/local/mysql/bin
添加到里面去, 一行一个路径。
即便添加成功,未必运行成功,所以可能还是需要加上权限。
sudo chmod +x /etc/paths
然后在命令行中敲入:
mysql
看能不能连接成功。
如果没问题的话,就初始化一下MySQL,加下密码什么的安全措施。
mysql_secure_installation
依你所需要的配置就好。
另外还需要在php.ini中配置一下mysql.sock的位置,否则在php只能用127.0.0.1来连mysql,localhost的话会找不到mysql。
在php.ini找到mysql.default_socket ,加上sock位置:
mysql.default_socket = /tmp/mysql.sock
然后再重启一下apache。
4、Extra
开启了Apache就是开启了“Web共享”,用户就可以通过“http://[本地IP]/”来访问“/Library(资源库) /WebServer/Documents/”目录,通过“http://[本地IP]/~[用户名]”来访问“/Users/[用户名]/Sites /”目录。
我不太喜欢把网站文件放倒/Library(资源库) /WebServer/Documents/ 这么深的地方,也不喜欢输入浏览器地址的时候,还得加上“~[用户名]”,这么个麻烦的路径。所以我修改了一下httpd.conf,把根目录指向/Users/[用户名]/Sites /,满足我们的需要。
sudo vi /etc/apache2/httpd.conf
把
DocumentRoot "/Library/WebServer/Documents"
修改成
DocumentRoot "/Users/[用户名]/Sites"
把
<Directory "/Library/WebServer/Documents">
修改成
<Directory "/Users/[用户名]/Sites">
这样就可以把根目录指向我们需要的位置。
然后我们还需要开启一下rewrite功能。
首先确认/etc/php.ini中应该启用了mod_rewrite。Lion系统应该默认启用的。
LoadModule rewrite_module modules/mod_rewrite.so
在/etc/apache2/httpd.conf文件找到
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
把AllowOverride None
改成AllowOverride All
接着修改/etc/apache2/users/[用户名].conf
sudo vi /etc/apache2/users/[用户名].conf
把其中的AllowOverride None
也改成AllowOverride All
一切OK了,就重启一下apache,看能否正常工作。
然后装个wordpress测试一下。
Enjoy it!