其实这类文章网上已经比较多了,不过现在最新的版本是10.6,所以重新整理一下。并且尽量使用官方提供的安装包。
虽然在Mac OS X 10.6中是自带Apache,但没有mod_php5,所以没法简单的开启php的支持。不过在Mac OS X 10.5中是自带mod_php的。如果在Mac OS X下做开发,MacPorts是必不可少的东西,这是一款包管理软件。当然,还是有其它的包管理系统Fink、Homebrew这些选择,不过今天的重点是如何快速的搭建Lighttpd+PHP+MySQL环境。
首先,需要安装MacPorts,在安装之前,必须先安装Xcode Tools,在安装选项确保已经选中命令行开发。一般买Mac的时候,会附赠两张光盘:系统盘和开发工具盘,你可以在开发工具盘里找到Xcode Tools,或者去Apple官方网站去下载最新的Xcode Tools。
在MacPorts的官方下载页面选择你的Mac OS X版本,最新的版本是1.8,下载好镜像运行安装程序即可。在安装过程中会进行源码树同步,所以不必在安装完成后执行sudo port -v selfupdate。
安装lighttpd非常简单,只需要执行:
sudo port install lighttpd
等安装完毕后,按提示执行:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.lighttpd.plist
运行之后每次开机会自动启动lighttpd,之后你需要创建一个默认的配置文件,不过已经有一个样例文件
cd /opt/local/etc/lighttpd/
cp lighttpd.conf.default lighttpd.conf
在lighttpd.conf的配置文件中,取消mod_fastcgi前面注释,以启用fastcgi的支持。接着搜索fastcgi.server,取消该配置项前面的注释。类似于下面
fastcgi.server = ( “.php” =>
( “localhost” =>
(
“socket” => “/opt/local/var/run/lighttpd/php-fastcgi.socket”,
“bin-path” => “/opt/local/bin/php-cgi”,
“max-procs” => 1,
“bin-environment” => (
“PHP_FCGI_CHILDREN” => “1”
),
)
)
)
由于是在自己的开发机上,可以设定PHP_FCGI_CHILDREN为1,这样就只会产生一个php-cgi进程。
注意:请确保/opt/local/var/log/和/opt/local/var/run/这两个目录可写,通过以下命令修改权限,
sudo chmod 777 -R /opt/local/var/log/
sudo chmod 777 -R /opt/local/var/run/
现在开始安装MySQL,为了简单方便,我们直接从官方网站下载已经做好的镜像文件,在安装镜像文件中,自带了系统偏好设置项,安装之后可以通过系统偏好设置项来启动MySQL。
最后,安装PHP,需要注意在最新的MacPorts中有4个版本的PHP:php4、php5、php5-devel、php52,其中php5是最新的PHP 5.3,其它的一些库的只支持这个版本的,所以这里我就安装php5这个版本。至少php 5.3和php 5.2的区别可以去查看一下文档。由于使用fastcgi运行,所以在安装php5的时候加上fastcgi这个参数,
sudo port install php5 + fastcgi
安装完成后,我们需要创建一个 php.ini文件
sudo cd /opt/local/etc/php5/
sudo cp php.ini-development php.ini
在php.ini文件中找到cgi.fix_pathinfo = 1这一行,取消前面的注释。
在PHP 5.3中有一点需要说明,MySQL的原生驱动已经在PHP的源码里面了,在原先的版本中PHP的MySQL扩展使用的是libmysql这个库,不过现在已经内置了一个性能更好的库。注意:这和mysql扩展不是一类东西,所以,在PHP中依然使用mysql、mysqli、pdo_mysql这三种扩展。要安装这三个扩展的支持也非常简单,
sudo port install php5-mysql
安装完成后,需要设定mysql的socket连接,修改php.ini文件中以下几项
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket =/tmp/mysql.sock
mysqli.default_socket =/tmp/mysql.sock
这样一个简单的Lighttpd+PHP+MySQL环境就可以运行了。
sudo port install php5 + fastcgi这里好像加号后面不能有空格
另外,我运行了sudo launchctl load -w /Library/LaunchDaemons/org.macports.lighttpd.plist,为什么还是不能自动启动?
有可能是写日志的目录没有创建导致启动失败。手动创建一个就行了