Linux+Apache+MySQL+PHP+FrontPage安装
competent
|
1#
competent 发表于 2007-04-29 00:45
Linux+Apache+MySQL+PHP+FrontPage安装
本文介绍如何安装Apache以支持MySQL、PHP4、FrontPage2000服务器扩展和虚拟主机功能,本文的安装步骤在Redhat 7.0和Mandrake 7.2上测试通过,所以应该适用于任何Linux发行,它也适用于任何形式的*nix系统,只要下载不同的软件包。
一. 需求 1、一个基于Intel并安装了TCP/IP和libc6的Linux系统。如果Apache或MySQL已经安装好了,建议用软件包管理程序或手工删除它们。 2、需要安装的软件包,它包括:Apache 1.3.19、MySQL服务器、PHP4和FrontPage 2000扩展、Apache支持FrontPage 2000扩展的补丁、最新的gcc编译器及其相关库。 二. 准备安装 1、下载软件包 下载下列软件包到/download目录下。 Apache 1.3.19 MySQL Server PHP4 FrontPage 2000 Extensions 2、解压缩源代码 将所有/download目录下的源代码包(除了frontpage要解压缩到/use/local目录下)解压缩: tar zxfv apache_1.3.19.tar.gz tar zxfv fp40.linux.tar.gz -C /usr/local tar mysql-3.23.32.tar.gz tar zxfv php-4.0.4pl1.tar.gz 三. 安装MySQL 第一步先要安装MySQL,因为要安装支持MySQL的PHP,然后安装支持PHP的Apache,下面是具体步骤。 1、设置用户和组 首先,系统增加名为mysql的拥护和组。 groupadd mysql useradd -g mysql mysql 2、配置并构建MySQL 进入目录/download/mysql-3.23.32并运行configure和make程序。如果想把数据库存在非缺省目录/usr/local/mysql/var/,则为configure指定选项localstatedir=/your_path。 cd mysql-3.23.32 ./configure --prefix=/usr/local/mysql make make install MySQL现在已经安装到/usr/local/mysql目录下。目前还没有一个数据目录,现在要运行MySQL自带的脚本创建目录并安装测试数据库。 scripts/mysql_install_db 在启动守护程序前,改变文件的属权,否则守护程序不能运行。 chown -R mysql.mysql /usr/local/mysql 3、启动MySQL守护程序 现在准备启动守护程序。safe_mysqld等价于tcpwrapper for MySQL,tcpwrapper常用于包装inet的服务以增加安装性。 /usr/local/mysql/bin/safe_mysqld --user=mysql & 4、设置root用户口令并在引导时启动MySQL。 现在MySQL正在运行,可以用mysqladmin设置root用户口令。 /usr/local/mysql/bin/mysqladmin -u root -p password 'yourpass' 最后一步是需要确保MySQL能在系统重起时启动。编辑/etc/rc/d/rc.local文件,并在末尾加入/usr/local/mysql/bin/safe_mysqld --user=mysql & 。或者可以编写一个启动/停止的脚本并符号链接到适当的运行级别。 四. 为Apache打补丁 在继续下列步骤前,我们必须给Apache打上FrontPage补丁,将FrontPage补丁复制到Apache源代码目录下并做一个到FrontPage的currentversion的符号链接。 cd /usr/local/frontpage/ ln -s version4.0 currentversion cd currentversion/apache-fp cp fp-patch-apache_1.3.12 /downloads/apache_1.3.19 1、打补丁 现在在Apache源代码目录下打上FrontPage补丁。这将需要将二进制补丁放在你的目录下。 patch -p0 < fp-patch-apache_1.3.12 这将在apache源代码目录下生成一个mod_frontpage.c文件,它需要复制到extras模块上。 cp fp-patch-apache_1.3.12 src/modules/extra/ 2、运行一个简单的apache配置 现在运行一个简单的配置,等一下再运行更高级的配置。 /downloads/apache_1.3.19/configure 五. 安装PHP4 PHP4是一种服务器端、跨平台、HTML嵌入式脚本语言,它赋予我们开发动态网站的能力,并能很容易地与MySQL服务器接口。 1、配置PHP4以支持MySQL和Apache 你将安装支持位于/usr/local/mysql目录下的MySQL的PHP4。 cd /downloads/php-4.0.4pl1 ./configure --with-mysql=/usr/local/mysql --with-apache=/downloads/apache_1.3.19 --enable- track-vars 2、配置apache支持MySQL和Apache 现在运行make和make install来编译Apache所需的文件。 make make install 六. 安装Apache服务器 Apache是本文的核心,所以请仔细安装下列步骤进行。现在PHP已经构建好,你将在Apache源代码目录下找到一个新目录../apache_1.3.19/src/modules/php4。现在我们再次配置apache,但这时对PHP和FrontPage的支持已经静态地构建好了。 1、创建符号链接和目录结构 创建符号链接/usr/local/httpd指向/usr/local/apache-1.3.x,这样你可以构建一个新版本apache,然后在必要时重新链接。用下列命令: mkdir /usr/local/apache-1.3.19 ln -s /usr/local/apache-1.3.19 /usr/local/httpd 2、配置Apache支持ForntPage和PHP4 现在,我们可以用--prefix=/usr/local/httpd配置apache,它是指向apache-1.3.19的符号链接。要知道,src/modules/php4/libphp4.a毫不存在,但将要生成。要注意用--add-module加入FrontPage,--activate-module加入PHP。现在运行make和make install以构建并安装Apache。其它无关紧要的是httpd.conf放在哪里,有些人喜欢放在/etc目录下。如果像这样做,加上--localstatedir=/etc即可。 cd /downloads/apache_1.3.19 ./configure --prefix=/usr/local/httpd --activate-module=src/modules/php4/libphp4.a --add-module=src/modules/extra/mod_frontpage.c 3、构建Apache 运行make将创建httpd二进制代码。如果你覆盖一个老版本的服务器,你要做的就是make,然后将httpd二进制代码从bin目录夫知道现有的httpd产品目录即可。这里建议你有一个全新的安装,因为这样非常容易地从原先的安装迁移www数据和conf文件。 make make install 七. 修改httpd.conf 很好,你已经安装好了Apache,并支持FrontPage、PHP和MySQL。现在整理一下其他事情以便能工作得更好。首先修改一些httpd.conf配置。 1、增加PHP标记 为了让Apache处理PHP扩展名,必须加入该类型。确保你把配置文件中的下列两行去掉注释。如果这两行不存在,必须手工添加。 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps 2、改变Directory Index 改变Directory Index支持以增加index.php和index.shtml。这完全作为参考,但如果你的网站严格地用SSI或PHP编写,那么有这些额外的Directory Index文件将避免参照index文件的全路径,相反,你可以简单地键入http://www.virtual.com而不是http://www.virtual.com/index.php。 DirectoryIndex index.php index.shtml index.html index.htm 3、修改目录权限 对配置文件几个重要的修改是DocumentRoot和Directory的权限。修改DocumentRoot指向你的缺省网页文件,如 DocumentRoot /www/httpd 现在对它修改目录权限是的FrontPage能够用其.htaccess文件覆盖它们。AllowOverride从None改为All。 <Directory "/www/httpd"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> 八. 运用FrontPage Extensions到根网站 我们已经完成了支持PHP和MySQL的Apache,剩下的事情就是FrontPage服务器扩展了,你可能用或不用于你的网站。但你有多人需要编辑网站并且不是每个人都熟悉FTP和HTML时,它就有用了。 1、运行fpsrvadm.exe 我们把FrontPage扩展用于网站根目录(/www/httpd)。 cd /usr/local/frontpage/currentversion/bin/ 并运行fpsrvadm.exe安装扩展到根目录。 ./fpsrvadm.exe -o install : 0 for apache (do not choose apache-fp) : /usr/local/httpd/conf/httpd.conf (patch to server config file) : ENTER (Just hit enter for a blank multi-hosting) : apache (user owner of DocumentRoot (i.e. /www/httpd)) : web (group owner of DocumentRoot (i.e. /www/httpd)) : myuser (frontpage login) : mypass (frontpage password) 注意,这里使用用户"apache"和"web"组。对于虚拟域,对每个虚拟域分开用户,但组总是"web"。 2、创建其他FrontPage用户 现在简单地为FrontPage提供一个管理员账号及该账号口令,它将是访问FrontPage的登陆名和口令。如果你保持这些与ftp登陆同步,可能更好些。你总能回来并运行./fpsrvadm.exe并用Option 7增加一个用户并输入正确的信息。或者你可以修改包含用户和加密口令的/_vti_pvt/service.pwd文件,如果需要生成一个加密口令,使用: htpasswd temp.pass.file Enter Password : ********** pico temp.pass.file <my-new-user>:3923kw#$sdfk32$ 然后复制用户和加密口令到service.pwd并且该用户即可登陆,你也必须包用户组成一组,这样对网站的修改可以进行了,这通过编辑/_vti_pvt/service.grp完成。 pico _vti_pvt/service.grp administrators : administrator <my-new-user> authors : 增加新用户到适当的修改网站的组中。现在尝试通过FrontPage登陆,用户再增加"author"或"administrator"后应该有权编辑了。 九. 用FrontPage支持创建虚拟网站 这个过程与把它们加入根网站相同,唯一的差别是当运行fpsrvadm.exe时要提供一个muulti-hosting名而不是指打回车。多宿主名将是定义在<VirtualHost>中的ServerName。 首先,编辑htppd.conf并去掉NameVirtualHost行的注释。如果你在这台机器上只有一个IP地址,那么表中第一个虚拟主机将是你的根网站。如果有两个IP地址,那么你的根网站可能在192.168.0.1并且虚拟网站可能在192.168.0.2,这可以保持根网站的完整。 if you have 1 ip address NameVirtualHost * if you have a separate ip address just for your virtual webs NameVirtualHost 192.168.0.2 确保如果你有多个IP地址,告诉Apache监听哪个IP地址,或用Listen *让Apache监听列在ifconfig中的所有接口。 # to make apache listen on all ip addresses assigned to the box Listen * # Listen for root web Listen 192.168.0.1 # Listen for virtual webs Listen 192.168.0.2 现在你已经知道该信息,假如一个虚拟网站。 <VirtualHost *> ServerAdmin root@virtual.com ServerName virtual.com DocumentRoot /www/virtual.com/public_html CustomLog logs/virtual.com/access_log combined ScriptAlias /cgi-bin /www/virtual.com/public_html/cgi-bin/ <DIRECTORY /www/virtual.com> AllowOverride All Options Indexes FollowSymLinks Includes ExecCGI MultiViews Options All order allow,deny allow from all </DIRECTORY> <DIRECTORY /www/virtual.com/public_html/cgi-bin> AllowOverride None Options ExecCGI FollowSymLinks INcludes </DIRECTORY> LogFormat Combined ServerAlias virtual.com *.virtual.com </VirtualHost> 首先,在这个虚拟域定义中有几点说明。<VirtualHost *〉可以改为下列任何一个。 # To make this virtual web listen on all interfaces and all ports <VirtualHost *> # If you have a separate IP # for virtual hosting <VirtualHost 192.168.0.2> # To listen only on port 80 on 192.168.0.2 <VirtualHost 192.168.0.2:80> # To listen only on port 80 on all interfaces <VirtualHost *:80> 这里只使用<VirtualHost *>,因为在机器上只有一个IP地址。记住,这的确破坏了你的根网站(/www/httpd)并使得第一个<VirtualHost>定义称为你的根网站。 在有人到达你的IP地址时,他们首先被第一个虚拟网站服务,而不是根网站。这是为什么机器要有两个IP地址并将根网站置于各自独立的IP地址的原因。或者你有整个C类地址,或一个子网,那么你可以将每一个网站赋予其自己的IP地址,这样会好些。 在虚拟主机中的<Directory>定义允许FrontPage用.htaccess文件改写权限。 好了,现在你已经把一个虚拟主机加到了httpd.conf中,名为"virtual.com",保存httpd.conf并运用FrontPage扩展。 cd /usr/local/frontpage/currentversion/bin ./fpsrvadm.exe -o install : 0 for apache (do not choose apache-fp) : /usr/local/httpd/conf/httpd.conf (patch to server config file. : www.virtual.com (the name of ServerName in <VirtualHost>) : apache (user owner of DocumentRoot (i.e. /www/httpd)) : web (group owner of DocumentRoot (i.e. /www/httpd)) : myuser (frontpage login) : mypass (frontpage password) 注意,对虚拟网站,为每一个网站在机器上创建一个用户。 本例中用户和组为: : virtual (virtual.com的用户) : web (所有网站的用户组) 用户和组必须在运行./fpsrvadm.exe安装FrontPage扩展前在/etc/passwd和/etc/group中是有效的。现在FrontPage扩展已经被复制到了你的新虚拟网站的DocumentRoot(如/www/virtual/public_html)。 你可以改变该目录并检验再次有一个_vti_文件夹。 现在尝试通过FrontPage连接新虚拟网站,Open Web -> http://www.virtual.com。 它应该询问登陆名和口令,如果没问题,你可以增加更多的虚拟主机到httpd.conf中,然后以同样的方式实现FrontPage扩展。 十. 测试文件 最后的步骤是测试PHP、CGI和SSI。你可以用下列文件或创建自己的。通过FTP上传文件到网站上,然后点击浏览器测试它们。 一、PHP测试文件:test.php ---------------------------------------- <html> <head> <title>PHP Test</title> </head> <body> <?php echo "Hello World<P>"; ?> </body></html> 二、CGI测试文件:test.cgi(确保至少chmod 755) ---------------------------------------- #!/usr/bin/perl print "Content-type: text/html\n\n"; print " <html> <head> <title>Perl Test</title> </head> <body> HEllo World </body></html> "; exit (0); ---------------------------------------- 三、SSI测试文件:test.shtml ---------------------------------------- <html> <head> <title>SSI Test</title> </head> <body> <!--#include virtual="test.txt"> </body></html> ---------------------------------------- File : test.txt (used in SSI parsing in test.shtml file above) ---------------------------------------- Hello World ---------------------------------------- |