LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近几年来,已经成为Web社区的事实标准。本文我们将介绍LAMP组合的安装,本文假定你的机器上已经安装了Linux,如果你对Linux的安装还有什么问题的话,可以去相关的一些开放源码站点论坛上发表贴子,向其他网友寻求帮助。也可以向相关的厂商寻求技术支持。本文的“LAMP”中的“P”,暂时解释为“PHP”,因为FreeLAMP站点是基于Zope + Python结构架构的,所以本站在以后的文章中将着重向这方面倾斜。
所有LAMP组合中的软件都是开放源代码产品,所以您不必担心产品的价格以及版权问题。相反,有广大的开放源码社区开发人员的不断努力,这些产品的版本更新速度反而比那些昂贵的专有软件更快。虽然Linux 因为界面问题,会让您望而却步,但是您不必担心,现在,这些软件都采用了浏览器管理界面,好多都提供phpMyAdmin(一个利用PHP语言在浏览器上管理MySQL的程序)以及WebMin(通过浏览器来管理系统)来让您方便的管理系统。
PHP现在的版本已经到了4.0.4pl1,是一门面向对象的交叉平台的服务器端脚本语言。可以嵌入HTML语言中,可以作为Apache的模块来运行。下面我们以tarball(.tar.gz)格式(和它相对的是RPM 格式)的版本为例子,来介绍安装过程。
首先,去对应的网站下载最新版本的源码。为了保持系统目录分布的一致性,建议把他们解开到/usr/local/src目录:
#cd /usr/local/src
#tar xvfz filename.tar.gz
先介绍MySQL的安装:
# cd /usr/locl/src/mysql-3.23.35
# ./configure --prefix=/usr/local/mysql
这样就把MySQL 的安装目录设置为 /usr/local/mysql ,然后运行make来编译源代码,接下来就可以用make install来安装了。
安装完毕后,需要把MySQL库加入系统,采用ldconfig命令来实现:
#echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
#ldconfig -v | grep libmysqlclient
然后可以看到系统返回:
libmysqlclient.so.10 => libmysqlclient.so.10.0.0
让MySQL 在启动时自动运行:
#echo "/usr/local/mysql/bin/safe_mysqld > /dev/null &" >> /etc/rc.d/rc.local
接下来初始化数据库(切换到/usr/local/mysql 目录):
# ./scripts/mysql_install_db
启动MySQL服务:
# bin/safe_mysqld > /dev/null &
增加路径:
# PATH=" $PATH:/usr/local/mysql/bin"
测试 MySQL:
#mysqladmin version
如果能返回MySQL的所有信息,就表示您的MySQL已经安装成功了。下面为了安全起见,需要给root用户(数据库中的超级用户),设置口令:
#mysql -h -u root -p
按照提示输入口令以后,MySQL的设置就算大功告成了。
接下来的部分就是Apache和PHP的安装了。如果你的系统已经存在Apache ,那么需要首先做好备份。然后进入Apache的源代码目录:
#cd /usr/local/src/apache_1.3.19
输入配置命令:
#./configure --prefix=/usr/local/apache
然后改变到PHP的源代码目录:
#cd /usr/local/src/php-4.0.4pl1
配置PHP的编译命令:
#./configure --with-apache=../apache_1.3.19 --with-mysql=/usr/local/mysql
运行make和make install,PHP就安装成功了。
改变目录到Apache源代码所在:
#cd ../apache_1.3.19
因为增加了PHP模块,所以需要重新配置Apache的编译文件。
#./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a (注意这里的路径,后面的文件确实是不存在的,不要担心。)
然后运行make和make install,您就可以在/usr/local/apache目录下看到apache的几个目录了。为了让Apache能认识那些以PHP结尾的文件,我们需要修改/usr/local/apache/conf/httpd.conf。
找到下面的行,把行首用作注释的#号去掉:
AddType application/x-httpd-php .php
这样,Web服务器就能认识那些.php结尾的文件,否则当您浏览网站时,浏览器会提示您存盘。为了让Apache自动认识index.php作为首页,我们还必须修改DirectoryIndex行,添加index.php:
DirectoryIndex index.html index.php
然后,重新启动Apache:
#killall -HUP httpd
可以在/usr/local/apache/htdocs目录下,建立一个testphp.php的文件,内容为:
?php
phpinfo();
?>
然后在浏览器上输入http://localhost/testphp.php就应该看到你当前的PHP设置情况。
以上介绍的Apache/PHP安装方法为静态编译的方法。以后每次有新的版本出来或者添加新的模块时,必须重新编译Apache,需要花费较长的时间,我们不推荐这种方法,Apache 1.3以后的版本采用了DSO(动态共享对象)技术,实现了模块的动态安装,这种方法不仅适用于PHP,对其他模块,例如mod_perl,mod_python 都适用,因此,笔者推荐采用这种方法:
编译Apache:
#./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max
#make
#make install
然后编译PHP:
#./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
#make
#make install
之后的步骤和静态部分一样,主要就是修改httpd.conf 。 区别两种安装方法最简单的办法就是使用命令:
#httpd -l
看输出结果,静态编译没有mod_so.c模块。
笔者相信LAMP ,作为一个廉价的,开放源码的、高性能的Web开发平台,在我国相对落后的互联网建设中,在这些年“政府上网”、“企业上网”、“金字工程”的号召下,会发出璀璨的光芒,照亮Web平台。在这光芒的后面,只有两个字来衬托:“服务”。
FreeLAMP将会为这两个字而努力,再努力!