前言:
LAMP系统在很多网络系统中,包括开放软件系统,里面被广泛应用,OS X作为基于BSD的主流图形用户界面之一的商业桌面/服务器系统, 它本来就原生地支持LAMP的(并不完全是),只是在系统默认的情况下,LAMP中的主要元素(Apache, MySQL, and PHP)是关闭disabled的,用户需要若干步骤来打开enable这些功能而已。
虽然是这样一个思路,但是在配置这些软件的时候还是会出现各种各样的问题, 尤其是在Leopard上面操作, 由于各个部分和版本之间的差异, 会造成一些麻烦, 所以有必要记录下来, 以备后用; 本文也希望可以作为一个参考资料, 将各个软件的配置情况在Mac系统上的情况给于说明; 还有就是尽量考虑到系统管理员的工作特点, 尽量使用shell命令, 以使管理工作可以尽量自动化。
Mac OS X Leopard 10.5系统自带的各软件版本可以满足绝大多数系统的要求,我的系统目前是10.5.5, 它的Apache是2.2.9(目前Open Source最新版本2.2.11), 而PHP是5.2.6(现在最新版本是5.2.8). 对于在Mac系统上使用LAMP的最大问题是, 这些部件可能需要针对OS X平台的binary版本, 而且PPC/Intel/Universal Binary等可能也是一个问题,根据Apple说它们可以很好地工作在Rosetta下面,但是我没有测试,总之这些升级可能需要等待第三方或者是Apple来发布更新。
一. Web服务:
1. Enale Apache
Apache2的程序保存在/etc/apache2目录中.
这个功能可以通过GUI的直观方式打开,下图分别是在Client和Server上操作的图示:
注1
作完上面的工作就可以测试一下web server是否工作了。打开任何一个浏览器,输入, 就可以看到Apache的简单的画面了.
使用shell命令的话, 就使用:
sudo apachectl start
同时, OS X的Web serice有一个特性,就是它自动地为本机的每个用户都自动打开用户的web service, 也就是说你可以在浏览器上输入用户的地址就可以看到用户的web页面了,比如: ~student/.2. 还有一点就是,系统默认的web内容的根目录是/Library/WebServer/Documents, 而每个用户自己的是/Users/用户名/Sites/. 这些设置可以在/etc/apache2/httpd.conf文件中找到相应的设置.
3. 防火墙:
如果你希望让局域网甚至外网的用户访问你的web, 那么你要确认一下OS X的防火墙是不是对web service打开了端口,虽然是默认情况下,当你打开web server后系统自动打开该端口,但是如果出现无法访问问题的话,还是要检查一下。该设置在下图显示:
4. 禁止用户web服务:
如果管理员希望禁止某个用户的web服务, 很好解决, 只要删除或者移动对应用户的conf文件就可以了, 对应于每个用户的conf文件可以在/etc/apache2/users/目录中可以找到.
二. PHP
1. Enable PHP
php的配置文件php.ini储存于/etc/目录中, 它的程序部分在/usr/apache2/libexec/目录中.
其实,对于PHP的支持是已经内置的,只不过是被注释掉了。看看下图,
发现这一行: #LoadModule php5_module libexec/apache2/libphp5.so. 最前面有一个#符号,这一行变成了注释行,只要是我们删除那个#符号然后重新运行Apache就可以了。
在变更之前,我们作一个备份,然后再修改内容,是一个好的习惯。
cp /private/etc/apache2/httpd.conf /tmp/httpd.conf mv /private/etc/apache2/httpd.conf /private/etc/apache2/httpd.conf.org
然后使用任何一个你熟悉的文本编辑器编辑/tmp/httpd.conf,删除那个#号。我使用在Terminal里面的nano, 它是内置的编辑器:nano /tmp/httpd.conf
按键ctrl+w输入php5,这样nano就找到了那一行,删除后,按键Ctrl-x, 它询问你是否保存变更,输入y, 再按回车,就可以保存了,最后把/tmp目录下的文件挪回来就好了。(如果系统询问password,那么输入administrator的密码)mv /tmp/httpd.conf /private/etc/apache2/ sudo chown root:wheel /private/etc/apache2/httpd.conf
2. 设置变更的检验:首先是运行下面的命令来重新启动apache或者重新启动电脑也可以:
sudo /usr/sbin/apachectl restart
最后是检验结果了。打开TextEdit,然后输入下面一行代码:<?php phpinfo(); ?>
保存到用户的sites目录下面的文件名为phpinfo.php文件,再浏览器的地址栏输入~test/phpinfo.php,只要是上面的步骤都正确就可以看到php的infomation页面了.3. Use SQLite.
在PHPInfo里面,可以找到, sqlite已经被打开了,见下图:
上面这些过程, 操作起来一般来说没有问题, 毕竟是Leopard内置的, 但是节下来的工作就需要一些耐心了, 请看Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(二).