[LinuxFocus-icon]
首页  |  站点地图  |  索引  |  搜索

新闻 | 过往期刊 | 链接 | 关于LF
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  Polish  

[Photo of the Author]
by Sascha Blum (homepage)

关于作者:
我真的很喜欢Linux,因为他非常的强大和稳定,尤其他可以给用户很多的选项和资源. 最好的是,他对所有人开放(开源),所以任何人都可以进一步开发他.
目录:

 

安装一个LAMP系统

[Illustration]

摘要:

在这个指南中,我会告诉你怎么安装一个Linux服务器和一些主要的而且很有用的东西.换句话说,我将告诉你如何安装一个LAMP系统.

首先,我将告诉你这个LMAP的缩写代表的是什么.
LAMP就是Linux Apache MySQL PHP,你或许可以从名字猜到,一个LAMP系统包括一个Linux操作系统,一个Apache Web服务器,一个MySQL数据库,和一个脚本语言PHP.



 

介绍

本文介绍了如何使用动态共享对象(DSO)来安装一个LAMP系统.

DSOs和静态安装相比的主要优点:你很容易就可以随时使用任何一个新版本的模块的覆盖其相应的旧版本的模块而不用从新编译安装所有其他的模块. 无论这个模块是PDF-Lib模块,GD-Lib模块或者任何其他的模块. 使用静态安装,打个比方,如果你想把PHP 4.2.3升级到PHP 4.2.4,你必须重新编译和安装所有的东西,Apache服务器,PDF-Lib和其他所有你需要的模块(当然包括PHP本身在内),但是使用DSO安装,只有PHP受到影响,而其他的所有东西还是保持不变的.

注意:一般来说,由于安装过程有可能是不一样的,你应该在安装或编译每个软件之前仔细的阅读README文件.通常,成功的安装依赖于./configure后面的开关. 基于我的测试,这个安装应该一次成功,如果出现任何错误,请参考README文件,并确认使用root权限进行安装!
导言已经足够了.让我们开始安装我们的LAMP系统吧.

在开始安装之前,请务必完整而且仔细的阅读本文!  

下载你所需要的软件包

在安装之前,你需要下载下列软件包:  

安装

只要把所有这些安装包全部下载完毕了,你就可以开始安装了。首先,复制这些文件到以下目录(如果你没有这个目录,使用mkdir /usr/local/src/lamp命令来建立lapm目录):

/usr/local/src/lamp/

唯一你不需要复制到这里的文件就是MySQL RPM文件,因为他们可以直接的安装。最好先安装MySQL,想知道如何安装他,请看下面"MySQL 3.23.52"这部分

现在六个包都应该以tar.gz的形式放在 /usr/local/src/lamp/目录了.你需要使用下面的步骤把他们解包.

注意:你需要输入的命令是下面的黑体; 计算机输出是普通字体,所以的输入都起始于一个>符号.

首先打开一个控制台(shell终端,例如bash),然后在执行下面的命令:

user:~ > su
[Now enter your root password]
root: ~> cd /usr/local/src/lamp
root:/usr/local/src/lamp > tar -xvzf apache_1.3.27.tar.gz
root:/usr/local/src/lamp > tar -xvzf zlib-1.1.4.tar.gz
root:/usr/local/src/lamp > tar -xvzf libpng-1.2.2.tar.gz
root:/usr/local/src/lamp > tar -xvzf gd-1.8.4.tar.gz
root:/usr/local/src/lamp > tar -xvzf pdflib-4.0.3.tar.gz
root:/usr/local/src/lamp > tar -xvzf php-4.2.3.tar.gz

把所有的包解开之后,使用命令 "ls -l" 来显示所有的目录.

需要指出的是,你很有必要按照这里的安装顺序一步一步的执行下去,因为一些软件包需要其他的包才能正常的工作.比如GD库需要zlib和libpng,而libpng又需要zlib. 好,现在让我们开始Apache web服务器的安装吧.  

Apache 1.3.27

注意:确保你阅读了README文件!在这里./configure有好几个可以设置的开关.

不要使用--enable-module=all编译Apache Web服务器!如果这样的话,任何模块都不会编译进去的. 最好的方法就是尽可能的指定一些模块. 一般说来,这样做对DSO的支持已经足够了. 之后你可以自己添加任何其他的模块,这就是DSO安装的优势所在.

按照下面的方法来安装和配置Apache.

首先,象刚才那样进入命令行模式(shell终端,例如 Bash),

注意:不要在命令行下输入user:/usr/local/src/lamp >.这个是Linux命令行和当前的路径,你的命令行可能看起来不一样.

user:/usr/local/src/lamp > cd apache_1.3.27
user:/usr/local/src/lamp/apache_1.3.27 > su
[Enter your root password]
root:/usr/local/src/lamp/apache_1.3.27 > ./configure --prefix=/usr/local/apache/1.3.27 --datadir=/web/htdocs --enable-rule=SHARED_CORE --enable-module=so


注意:最后一步是一次完成的,不要分成两步来做!在"--"的前面有一个空格.-datedir后面接的是你的网站的文件所在的位置,当然你也可以选择你自己的文件所放位置。 如果你修改了"/web/htdocs"这个位置,本文后面的相关位置你也需要相应的作出修改.


root:/usr/local/src/lamp/apache_1.3.27 > make
root:/usr/local/src/lamp/apache_1.3.27 > make install


如果你的输入都正确的话,你的Apache Web服务器应该编译安装完成了的.  

MySQL 3.23.52

如果你按照刚才的步骤做的话,他已经安装好了.

安全警告:如果你的服务器连接到公共网络上的话,比如因特网或者内部网,尽量把MySQL服务器的密码设置的复杂些!

root:/home/user/download/mysql > rpm -Uvh MySQL-3.23.52-1.i386.rpm
root:/home/user/download/mysql > rpm -Uvh MySQL-client-3.23.52-1.i386.rpm
root:/home/user/download/mysql > rpm -Uvh MySQL-devel-3.23.52-1.i386.rpm
root:/home/user/download/mysql > rpm -Uvh MySQL-shared-3.23.52-1.i386.rpm


注意:使用MySQL的RPM所在的位置替换/home/user/donwload/mysql.  

zlib 1.1.4

root:/usr/local/src/lamp/apache_1.3.27 > cd /zlib-1.1.4/
root:/usr/local/src/lamp/zlib-1.1.4 > ./configure --shared
root:/usr/local/src/lamp/zlib-1.1.4 > make
root:/usr/local/src/lamp/zlib-1.1.4 > make install


Comment: we use the switch --shared here to tell zlib that we want to include the library as a dynamic module in PHP.  

libpng 1.2.3

libpng的安装有点点不一样。首先,进入目录 /libpng-1.2.3/scripts/ :


root:/usr/local/src/lamp/zlib-1.1.4 > cd ../libpng-1.2.3/scripts/

然后在输入下面的命令:

root:/usr/local/src/lamp/libpng-1.2.3/scripts > cp makefile.linux ../makefile
root:/usr/local/src/lamp/libpng-1.2.3/scripts > cd ..

使用这些命令,你已经把相关的make file复制到libpng的主目录了.现在你需要看看make file并且做一些系统需要的改变, e.g.例如,特别的include目录. 通常情况下,文件中的数据都是正确的,但是你还是需要检查一下,这样可以让你更加快的发现错误.

继续输入下面的命令:


root:/usr/local/src/lamp/libpng-1.2.3 > make test


如果这时没有任何出错信息,你可以使用下面的命令安装libpng:


root:/usr/local/src/lamp/libpng-1.2.3 > make install

 

gd-1.8.4

首先进入目录gd-1.8.4:

root:/usr/local/src/lamp/libpng-1.2.3 > cd ../gd-1.8.4/


你同样应该看make file.如果你系统的某些东西有变化,你可以使用你喜欢的文本编辑器对make file做相应的修改.

通常情况下,你不需要对make file进行任何更改.

如果你现在喜欢上了编译文件,你可以输入下面的命令:

root:/usr/local/src/lamp/gd-1.8.4 > make
root:/usr/local/src/lamp/gd-1.8.4 > make install


如果这时出现了任何错误,输入下面的命令:

root:/usr/local/src/lamp/gd-1.8.4 > make clean


当出现了错误你才需要执行最后的命令!如果你执行了make clean,你必须再次检查make file并且适当的修改他,然后再执行make.

注意:务必要检查INCLUDEDIRS和LIBDIRS的设置是否正确!  

PDF-Lib 4.0.3

这个笔尖简单,因为模块已经编译好了,你只需要把他复制到/usr/local/lib目录.

输入下面的命令:

root:/usr/local/src/lamp/gd-1.8.4 > cd /
root:/ > cp /usr/local/src/lamp/pdflib-4.0.3-Linux/bind/php/php-4.2.1/libpdf_php.so /usr/ local/lib/libpdf_php.so

 

PHP 4.2.3

最后,你需要安装PHP.

进入PHP目录:

root:/ > cd /usr/local/src/lamp/php-4.2.3/
root:/usr/local/src/lamp/php-4.2.3 > ./configure --with-apxs=/usr/local/apache/1.3.27/bin/apxs --enable-track-vars -- enable-ftp --with-zlib --with-gd --with-sockets --enable-sockets --with-sysvshm --with-sysvsem --disable-debug --with-pdflib-dir=/usr/local/lib --with-tiff-dir=/usr/local/lib --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/lo cal/lib --with-zlib-dir=/usr/local/lib --with-mysql --with-xml


注意:最后一步是一次完成的,不要分成两步来做!在"--"的前面有一个空格, 在第二行和第三行的"sysvshm"和"sysvsem"并不是错误!

象以前一样输入:

root:/usr/local/src/lamp/php-4.2.3 > make
root:/usr/local/src/lamp/php-4.2.3 > make install


注意:在一些配置比较低的计算机编译(make)PHP需要花比较长的时间,所以如果一段时间内没有任何反应的话,请不要不烦躁。你可以使用rm /usr/local/src/lamp -r命令删除 /usr/local/src/lamp目录 确认要正确输入,因为以root执行"rm -r /"将破坏整个系统,可是,如果删除了"usr/local/lamp"目录的话,在重新安装或者升级系统的时候,你需要做更多的工作,所以你可以只删除以".tar.gz"结尾的源代码包.  

配置

 

httpd.conf

安装完毕,现在开始配置.

首先,我们需要告诉Apache Web读物器让他支持*php或者*.php3文件.

进入Apache的"conf"目录:

root:/usr/local/src/lamp/php-4.2.3 > cd /usr/local/apache/1.3.27/conf
root:/usr/local/apache/1.3.27/conf >


然后使用你可以编辑和保存的文本编辑器打开"httpd.conf"文件.

注意:Kate编辑器是很适合编辑配置文件的,注意他必须运行在KDE环境,按 Alt + F2 => kdesu kate来启动他.按Ctrl + G跳转到你想到的那行.

在这个文件的190行你可以找到这些:

#
#Dynamic Shared Object (DSO) Support
#
#To be able to use the functionality of a module which was built as a DSO you
#have to place corresponding `LoadModule' lines at this location so the
#directives contained in it are actually available _before_ they are used.
#Please read the file README.DSO in the Apache 1.3 distribution for more
#details about the DSO mechanism and run `httpd -l' for the list of already
# built-in (statically linked and thus always available) modules in your httpd
#binary.


在这里如果没有的话,你需要输入:

LoadModule php4_module libexec/libphp4.so

下面的内容你可以在770行找到:

#AddType allows you to tweak mime.types without actually editing it, or to
#make certain files to be certain types.
#AddType application/x-tar .tgz

在这里添加:

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
AddType application/x-httpd-php .phtm
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps


注意:请确保输入正确,否则将会出现错误.

如果你不象PHP解析器执行HTML文件,你可以注释掉下面的内容:

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html



现在httpd.conf文件就配置好了.
什么是解析器?

解析器就是一个解析文本的一个小软件。这个文本可以是源代码(象 C++)或者是一个标记语言 (象 HTML).他检查文本的语法错误而且传递解析了的文本,并通常以高效简洁的内码来处理应用程序.

文本通过解析器执行需要一定的时间才可以显示出来,那就是说纯粹的HTML页面读取和显示都比PHP或者其他的脚本. 但是用户不会发现这个细小的延迟,当多个用户都访问同样的文件的时候,这个延迟才比较明显。例如,如果多个用户同时访问一个PHP页或者脚本,这个页的显示速度会稍微慢些。当然和硬件配置也有很大的关系。因此,如果你打算把你的LAMP系统对外开放, (例如因特网或者内部网),你需要更加好的配置,计算机更加快,否则系统将变的非常缓慢 . 另一方面,你可以很安全在一个旧的PC或者笔记本电脑使用LAMP系统开发PHP页或者脚本连接MySQL数据库,因为就只有你一个人在你的计算机系统上执行和显示PHP页或者脚本,速度是不成问题的.
 

php.ini

现在你需要设置和修改php.ini文件.

首先,你需要把php.ini文件复制到适当的位置,进入PHP的安装目录 :

root:/usr/local/apache/1.3.27/conf > cd /usr/local/src/lamp/php-4.2.3/

复制"php.ini-dist"到/usr/local/lib并且把名字改成"php.ini".按照下面的方法去做:

root:/usr/local/src/lamp/php-4.2.3 > cp php.ini-dist /usr/local/lib/php.ini

然后把"pdflib"作为一个扩展写到php.ini文件.这样PHP知道如何处理相应的PDF函数,PHP也找到了其他的模块 (zlib, GD, etc.).

现在使用文本编辑器打开文件"/usr/local/lib/php.ini". 这个扩展所在的的位置是第371行.

他看起来应该象这样:


;Directory in which the loadable extensions (modules) reside.
....

extension_dir = ./ <=使用下面的内容覆盖他:

extension_dir = /usr/local/lib
extension=libpdf_php.so



保存文件.

到这里为止,你全部完成了!全能的LAMP系统!

现在测试服务器,这是为了测试时候你可以成功的启动服务器。第一步是先关闭任何正在运行中旧的服务器(例如当你安装这个版本的时候,如果一个Web服务器已经安装了). 你只需要这样做:

root:/usr/local/src/lamp/php-4.2.3 > killall httpd


现在尝试启动新的服务器:

root:/ > /usr/local/apache/1.3.27/bin/apachectl start


如果你看到了下面的消息...

/usr/local/apache/1.3.27/bin/apachectl start: httpd started


... 完全OK,并且你的服务器已经在运行了!

现在进入你的"web/htdocs"目录(DocumentRoot 如果你已经选择了另外一个目录,记得做相应的改变if ) 并在那里建立一个叫info.php的新文件,按照下面来做:

user:/ > cd /web/htdocs/
user:/web/htdocs > touch info.php



用文本编辑器打开ingo.php并按照下面编辑:


<?PHP
echo phpinfo();
?>


注意:确认没有任何错漏,包括括弧!

保存并退出编辑器. 现在到了最激动人心的部分!在你的浏览器输入下面的地址:

http://127.0.0.1/info.php
or
http://localhost/info.php
or
http://rechnername/info.php
or
http://lokale_IP/info.php

此时,如果你可以看到phpinfo()的输出的话,一切都正如我们所愿,你可以随意的进行PHP编程了,恭喜你!你现在不但拥有了一个全能的LAMP系统,还拥有了一个Web服务器.

注意:你现在可以在/web/htdocs目录下新建多个子目录(或者你在安装的时候指定的任何目录).例如,如果你有多个Web工程,你可以为每一个工程创建一个目录.

注意/web/htdocs (或者其他你指定的目录) 是你的Web服务器的根目录. 这就是URL地址是http://127.0.0.1/info.php的原因,如果你有其他的子目录,例如project1, project2,等等.你只需要把URL地址改成: http://127.0.0.1/project1/ or http://127.0.0.1/project2/,等等.

注意:PHP文件只要他们在/web/htdocs或者子目录下才会被执行!

你可以随意的扩展你的Web服务器.  

推荐

在这个部分,我推荐一些可以让你更好的管理系统和Web服务器的工具:

Webmin 1.000
(http://www.webmin.com/)

Webmin可以让你完全轻松的管理你的系统,你也可以使用他轻松的配置你的Web服务器,例如.让你的Web服务器随着系统的启动而启动,对MySQL同样有用。 由于Webmin本身很容易使用,因为这个,他非常之适合Web服务器新手.

下载:
http://prdownloads.sourceforge.net/webadmin/webmin-1.000.tar.gz?download
or
http://www.webmin.com/


phpMyAdmin 2.3.1
(http://www.phpwizard.net/projects/phpMyAdmin/)

phpMyAdmin专门为MySQL定制的非常好的工具. 他可以让你建立,删除和编辑表和和其他许多的功能,同样是强烈推荐.

下载:
(phpMyAdmin-2.3.1-php.tar.gz)
http://www.phpmyadmin.net/index.php?dl=2  

使用Webmin配置

设置Apache服务器::
webmin => Server => Apache Webserver
Module config:

Apache server root directory:
/usr/local/apache/1.3.27/bin/

Path to httpd executable:
/usr/local/apache/1.3.27/bin/httpd

Apache version:
select empty field and enter: => 1.3.27

Path to apachectl command:
in empty field => /usr/local/apache/1.3.27/bin/

Command to start Apache:
in empty field => /etc/init.d/apachectl start

注意:如果apachectl不在这个目录,那就复制一个到这里:
root > cp /usr/local/apache/1.3.27/bin/apachectl /etc/init.d/


停止Apache:
in empty field => /etc/init.d/apachectl stop

Display virtual servers as:
=> Icons

Order virtual servers by :
=> order in config file(s)

Maximum number of servers to display
=> 100

Path to httpd.conf
in empty field => /usr/local/apache/1.3.27/conf/httpd.conf

Path to srm.conf
in empty field => /usr/local/apache/1.3.27/conf/srm.conf

Path to access.conf
in empty field => /usr/local/apache/1.3.27/conf/access.conf

Path to mime.types
in empty field => /usr/local/apache/1.3.27/conf/mime.types

File to add virtual servers to:
=> httpd.conf

Test config file before applying changes?
=> Yes
注意:不需要输入=> !

如果你想Apache服务器在系统启动的时候也随之启动,你可以在Webmin这样设置:
webmin => System => Bootup and Shutdown

如果Apache没有在这里监听,把他作为一个新的服务写入.

Name => apachectl
Script => is usually loaded automatically
Start at boot time? => Yes
Bootup commands => /etc/init.d/apachectl start
Shutdown commands => /etc/init.d/apachectl stop  

升级

 

升级PHP

首先,复制新版本的PHP包到下面的目录:

/usr/local/src/lamp/

假设这个新版本的PHP是PHP 4.2.4 (我不知道是否真是这个名字).这个部分描述了你升级PHP需要的步骤.基本上,你所希望的是把旧版本的PHP升级到新版本的.

把刚才复制的文件解包.

打开命令行,并执行下面的命令:

user:~ > su
[Only enter your root password]
root:~ > cd /usr/local/src/lamp/
root:/usr/local/src/lamp > tar -xvzf php-4.2.4.tar.gz


如果你旧版本的源文件仍然在"/usr/local/src/lamp"目录的话,执行下面的命令 .

我们就版本的目录叫做 "/usr/local/lamp/php-4.2.3".

我们首先需要创建一个新的libphp4.so.把原来的重命名成"libphp4-4.2.3 .so":

root:/ > cd /usr/local/apache/1.3.27/libexec/
root:/usr/local/apache/1.3.27/libexec > cp libphp4.so libphp4-4.2.3.so


我们再创建一个旧版本的php.ini的备份:

root:/ > cd /
root:/ > cp /usr/local/lib/php.ini /usr/local/lib/php-4.2.3.ini


接着再删除就版本的php.ini:

root:/ > rm /usr/local/lib/php.ini


最好保存你旧版本的PHP源文件,因为你可以少输入很多东西!

这是因为这个就版本的目录"/usr/local/lamp/php-4.2.3"保存着一个短的shell脚本,他保存着上次./configure的所有参数.因此如果你不保存这个目录,你现在将不得不手动的输入所有的参数!

现在执行./configure:

root:/ > cp /usr/local/lamp/php-4.2.3/config.nice /usr/local/lamp/php-4.2.4/config.nice
root:/ > cd /usr/local/lamp/php-4.2.4
root:/usr/local/lamp/php-4.2.4 > ./config.nice
root:/usr/local/lamp/php-4.2.4 > make
root:/usr/local/lamp/php-4.2.4 > make install


注意:同样,如果你没有保存旧的目录"/usr/local/lamp/php-4.2.3",你需要手动输入所有./configure的参数,正如在上面"Installation => PHP 4.2.3" 描述的那样.

复制php.ini到合适的地方:

root:/ > cd /
root:/ > cp /usr/local/lib/php.ini-dist /usr/local/lib/php.ini


现在只须按需要改变php.ini,正如上面 "Configuration => php.ini"所描述.

最后,重新启动Apache,你的服务器升级完毕:

root:/ > /usr/local/apache/1.3.27/bin/apachectl restart

 

结束语

 

后记

正如我们所知,人无完人,在本文中同样会出现错误。如果这方面的专家读了本文并觉得有地方需要修正,缺漏了一些东西或者需要进一不解释,请告诉我, 我可以改进这个指南.他也在SuSE Linux 8.0测试通过,同样你可以在其他Linux版本中使用.

当然有许多途径配置一个LAMP系统,但是本指南是基于告诉初学者如何建立一个Web服务器的。我将继续更新这个指南,建议你访问我的主页以获取最新的指南(请看下载链接旁边的注释).
 

相关参考

 

对这篇文章发表评论

每篇文章都有各自的反馈页面。在这个页面里,您可以提交评论,也可以查看其他读者的评论:
 反馈页面 

主页由LinuxFocus编辑组维护
© Sascha Blum, FDL
LinuxFocus.org

点击这里向LinuxFocus报告错误或提出意见
翻译信息:
de --> -- : Sascha Blum (homepage)
de --> en: Orla Shanaghy <o_shanaghy(at)yahoo.com>

2003-04-06, generated by lfparser version 2.25