分享
 
 
 

apache+mysql+phpforlinux全攻略

王朝mysql·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

下载 MySQL, php, apache 套件

要架设这样的一个主机需要哪些套件呢?不就是: Apache、MySQL及 PHP 啰!

Apache:目前 Apache 已经出到了 2.0.X 版,但是最广泛使用的还是属于 1.3.X 版本,这一版本目前出到最新的 1.3.20 版,你可以上 Apache 主网页去看看相关的信息:

Apache 主页(英文):

Apache 套件(由主页下载):

PHP:目前最新的是 4.0.6 版(2001年6月才出来的喔),你可以上 php 的主网页去看看一些相关的咚咚喔!

PHP 主页(英文):

PHP 主页下载:

MySQL:目前最新的版本是 3.23.41,同样的,你也可以上 MySQL 官方网页去看看喔!

MySQL 主页(英文):

MySQL 主页下载:

也就是说,我们需要的档案有三个,分别是:

apache-1.3.20.tar.gz

php-4.0.6.tar.gz

mysql-3.23.41.tar.gz

安装 MySQL,php 与 apache

安装这三个套件比较需要小心,因为使用 RPM 升级的话,可能没有办法取得最新的套件版本,所以这里我们使用最原始的原始码升级方法。安装的方法如下:

去除旧版的咚咚与解压缩:

去除相关的旧版资料,如果你是 RedHat 6.1 的话,则下面的套件你可以先去除喔!

[root@tsai /root]# rpm -e mod_perl

[root@tsai /root]# rpm -e phpfi

[root@tsai /root]# rpm -e apache

当然啰,如果你之前安装了旧版的 Apache 、 PHP、或 MySQL,那你也可以移除。其实这是个人习惯,有的人喜欢保存两种版本在他们的系统中,若你也想安装两种版本在你的系统中,那你也不需要移除 rpm 的安装套件喔!不过,为了怕系统冲突,你必须要以 setup 的程序来取消 httpd, php 及 mysql 的服务喔!

解压缩:

假如你将 Apache, MySQL 及 PHP 三个档案放置在 /home/test 这个目录中,而要将资料解压缩到 /usr/local 当中,则可以这样下指令:

[root@tsai /root]# cd /usr/local

[root@tsai local]# tar -zxvf /home/test/apache_1.3.20.tar.gz

[root@tsai local]# tar -zxvf /home/test/mysql-3.23.41.tar.gz

[root@tsai local]# tar -zxvf /home/test/tar -zxvf /test/php-4.0.6.tar.gz

则在 /usr/local 中会多出三个目录,分别是:apache_1.3.20, mysql-3.23.41, php-4.0.6。

安装 MySQL 套件:

如果你英文够好的话,你可以到 /usr/local/mysql-3.23.41 这个目录中察看一下 INSTALL-SOURCE 这个档案,里面对于如何安装适合你的 MySQL 有很详尽的说明。如果你要照我的步骤作的话,请往下看吧!

[root@tsai /root]# cd /usr/local/mysql-3.23.41

[root@tsaimysql-3.23.41]#./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/var

上面这个步骤在检查你的系统,以设定适合你的系统的资料!

其中, --prefix 后面接你要安装的 MySQL 目录所在,而 --localstatedir

后面则是接你要将数据库放置的地方,通常我们都会设定在 var 里面。

[root@tsai mysql-3.23.41]# make

[root@tsai mysql-3.23.41]# make install

上面两个步骤在安装 mysql 到你刚刚设定的 /usr/local/mysql 路径中。

注意啰,上面的步骤按你的 CPU 而可以耗掉很长的时间!

[root@tsai mysql-3.23.41]# ./scripts/mysql_install_db

如果你之前已经安装过 MySQL 的话,这一步骤就不用安装了,

这个步骤在产生 grant tables 这个东西!也就是数据库啦!

这个步骤很是重要,如果没有此步骤,则你的 MySQL 是不会动作的!

[root@tsai mysql]# adduser mysql

[root@tsai mysql]# chown -R mysql:mysql /usr/local/mysql

上面这个步骤在产生 mysql 这个帐号及群组名称,另外,

将 /usr/local/mysql 这个刚安装完毕的咚咚指定为 mysql 的所有,

这是为了安全性的考量,因为 mysql 的帐号与你原本 linux 的帐号是不同的喔!

[root@tsai mysql]# cd /usr/local/mysql/share/mysql

[root@tsai mysql]# chmod 777 mysql.server

上面这个步骤再将你的 mysql.server 这个激活 mysql 的执行档,

设定成大家都可以使用的格式。

[root@tsai mysql]# /usr/local/mysql/bin/safe_mysqld --user=mysql &

上面这一行在以 mysql 这个人来激活 mysql 的服务喔!

[root@tsai mysql]# /usr/local/mysql/bin/mysqladmin -u root password abcde

上面这一行在设定 root 的 mysql 密码,其中 abcde 是密码,你可以自行设定喔!

上面这样就安装完毕了!完成安装后就要开始测试你的 MySQL 啰!

增加 PHP 模块:

基本上,PHP 可视为 Apache 的一个模块,由于是属于 apache 的一个模块,因此我们必须先针对 Apache 进行一次 configure 的设定侦测,这样才能将 php 增加至 apache 当中,详细步骤如下:

[root@tsai /root]# cd /usr/local/apache_1.3.20

[root@tsai apache_1.3.20]# ./configure --prefix=/usr/local/apache

上面的指令是要将 apache 安装在 /usr/local/apache 的意思,

请注意,要先针对 apache 设定侦测一次才行安装 php 喔!

[root@tsai apache_1.3.20]# cd /usr/local/php-4.0.6

[root@tsai php-4.0.6]# ./configure --with-apache=/usr/local/apache_1.3.20

> --with-mysql=/usr/local/mysql

> --enable-track-vars

请注意上面的指令,中间那三行后面都要接一个 的符号,这是指令继续的意思,

也就是说,其实上面最后四行视为同一行的指令!你也可以将上面的指令写成一长串

另外,要注意的是,apache 需要指向刚刚侦测过设定的目录,而 mysql 则指向

已经安装完毕的目录!千万不要搞错啰!

[root@tsai php-4.0.6]# make

[root@tsai php-4.0.6]# make install

开始安装啰!安装完毕之后,会在 /usr/local/apache_1.3.20/src/modules 中

多一个 php4 的子目录,里面就存在了 php4 的主要链接库啰!

[root@tsai php-4.0.6]# cp /usr/local/php-4.0.6/php.ini-dist /usr/local/lib/php.ini

将主要的 php 设定档 php.ini-dist 拷贝成 /usr/local/lib/php.ini 这个档案,

这是因为 apache 或其它程序执行 php 时需要到 usr/local/lib/ 中去使用这档案,

如果您对 php 熟悉的话,可以修改 /usr/local/lib/php.ini 这个档案,以符合你的设定。

上面这样就安装完 php 套件啰!

安装 Apache 套件:

再来就是重头戏啦,开始安装 apache 啰!由于已经安装了 php ,所以在 /usr/local/apache_1.3.20/src/modules 中就会存在 php4 的目录!

[root@tsai /root]# cd /usr/local/apache_1.3.20

[root@tsai apache_1.3.20]# ./configure --prefix=/usr/local/apache

>--activate-module=src/modules/php4/libphp4.a

上面这两行是同一行啦,要注意的是 --activate-module 这一行,这个得先

安装过 php 才能使用这一个模块!

[root@tsai apache_1.3.20]# make; make install

这样就安装完毕啦!开始来设定 WWW 与测试相关的模块啦!

简易设定 apache

要来激活 Apache 啰,在这一版(1.3.20)当中,已经只剩下一个参数设定档『httpd.conf』这个档案。如果你是使用 RedHat6.1 原本的 apache 则有三个档案,分别是:

httpd.conf

access.conf

srm.conf

以下将以 apache_1.3.20 版进行说明,如果你是以旧版的 apache 安装的话,请在其它两个档案中找寻相关的设定吧!

Apache 的主要目录型态:

这是蛮重要的一个地方,因为不同版本的 Redhat 及不同的安装方法,会产生蛮大差异的目录型态,以下以 Redhat6.1, RedHat7.0+CLE0.9, 及使用原始码安装 1.3.20 的目录型态:

Redhat 6.1:若使用原始的 apache 1.3.9 的话,则你的参数设定档会在 /etc/httpd/conf 当中,而主机的网页放置于 /home/httpd/html 中,至于 cgi 的咚咚则放在 /home/httpd/cgi-bin 当中;

RedHat7.0 + CLE 0.9:同样的,这个系统的预设 apache 的参数档,放置在 /etc/httpd/conf 中,不过主机网页移至 /var/www/html 当中,cgi-bin 则放置在 /var/www/cgi-bin 中;

原始码安装:若使用原始码安装,且将预设的路径设置在 /usr/local/apache 时,你的参数设定档会在 /usr/local/apache/conf 中,而更动较大的是主机网页的放置目录,更改成 /usr/local/apache/htdocs 这个目录中,至于 cgi 也是放置在 /usr/local/apache/cgi-bin 当中。

底下将以原始码安装的方法所产生的档案来介绍 apache 的设定。

基本设定:

1. 激活 apache 服务:基本上,只要你激活 apache 之后,应该就可以在客户端的浏览器程序上看到你的主机预设的网页了!激活的方式为:

[root @tsai /root]# /usr/local/apache/bin/apachectl start <=激活

同时, apachectl 还有其它的参数如下:

apachectl stop:停止 WWW 的服务;

apachectl restart:重新激活 WWW 的服务,这个指令比较常用在你修改了 apache 的参数后,重新激活用的。

apachectl status:侦测 WWW 的状态。

2. 更改中文首页:由于 WWW 的原始设定中,指定你的首页名称为 index.html 或者是 index.htm ,然而这一版的首页支持比较多的语言,因此你必须将首页文件名称修改一下:

[root @tsai /root]# cd /usr/local/apache/htdocs/

在设定你的首页 你可以先到win98用dreamweaver写好index.html再传到linux 上面那个目录里,现在你应该可以在其它的客户端机器上连进来了!你现在可以开启 IE 或其它浏览器,然后在你的网址上打入你的DNS名称(如果有的话),或者是你的 IP 号码,就可以看到你自己主机的首页啰!

3. 设定使用者权限:由于你是以 root 的身份安装 Apache 这个套件,所以如果无法连上你的主机首页,有可能是 WWW 的首页放置的地方可能会有权限上的问题,需要设定权限的地方在 /usr/local/apache/htdocs 及 /usr/local/apache/cgi-bin 这两个目录,你可以这样设定:

[root @tsai apache]# chmod 755 /usr/local/apache/cgi-bin

[root @tsai apache]# chmod 755 /usr/local/apache/htdocs

你也可以设定成 744 的权限喔!

4. 设定自动执行:另外,为了让你的 WWW 及 MySQL 服务可以一开机就执行,所以你可以将下面两行激活的 scripts 写在你的 /etc/rc.d/rc.local 的最后面:

[root @tsai /root]# vi /etc/rc.d/rc.local

/usr/local/apache/bin/apachectl start

/usr/local/mysql/share/mysql/mysql.server start

这样一来,每次你开机时, linux 就会自动去执行 apache 及 MySQL 啰!

开始设定 httpd.conf 档案:

说了一些拉拉杂杂的话后,终于要来实际设定 httpd.conf 这个档案啰,请以 vi 来编辑吧。

[root @tsai /root]# cd /usr/local/apache/conf

[root @tsai conf]# vi httpd.conf

1. 基础环境设定:以下这些在 httpd.conf 中的选项分别代表的意义为:

ServerType standalone

上面在设定激活 apache 的状态,如果是 standalone 表示开机即执行,

通常我们都是选择 standalone 这个(默认值),不过,若选择:

ServerType inetd :则表示使用网际网络的服务来联机时才激活!

ServerRoot "/usr/local/apache"

表示 apache 的目录所在地

Timeout 300

这是用来设定连接到你这部主机的客户端,当超过 300 秒客户端还没有

办法连上你的主机时,就予以断线处理!

MinSpareServers 5 <=若是小站或是一般小型个人网站,可以改成 3

MaxSpareServers 10 <=若是小站或是一般小型个人网站,可以改成 5

StartServers 5

MaxClients 150 <=若是小站或是一般小型个人网站,可以改成 100

上面两个是开启 httpd 服务数目的地方,当你执行 httpd 之后,

在 shell 下执行 ps -aux|grep httpd 就可以看到 httpd 的数目量,

通常这与你的 RAM 有关,如果是小站的话,可以设小一点,

例如最小设 3 最大设 5 即可!而 StartServers 则设与 Min 相同即可!

至于 MaxClients 则可以设小一点,因为设定太大很耗系统资源,

而太小则无法让很多人连上来!所以可以设成例如 100。

Port 80

这东西尽量不用动,因为 www 服务的预设通讯口(port)就是 80,

除非你要自己架一个别人连不进来的网站(内部网站),

User nobody

Group nobody

将 apache 预设为 nobody 这个人及群组!意即所有人皆可以使用

ServerAdmin frank@mail.uc88.domain

这个是设定你的机器的 httpd 管理员帐号!设成你的帐号吧!

ServerName http://www.uc88.domain/

这是你主机的名称,先将前面的批注符号拿掉吧!

请设定吧,如果你没有主机名称,就选 localhost 吧!

BindAddress *

这是用来允许你的 WWW 接受虚拟 IP 的机器的项目,例如你的虚拟网域为

192.168.1.0 ,则可以将 * 改成 192.168.1.0 喔!通常如果要接受虚拟 IP 的话,

直接打 * 就好了!

2. 路径设定:以下的参数在设定每一个网页或者是服务的路径所在!(旧版在 access.conf 中)

DocumentRoot "/usr/local/apache/htdocs"

上面这个在设定你的主机的主要首页所在,由于我们设定主机名称

为:http://www.uc88.domain/ ,则当别人在网址列上打入 http://www.uc88.domain/ 时,

系统将会把 /usr/local/apache/htdocs 这个路径下的首页档案传出去!

你也可以自行改变这个路径!

<Directory "/usr/local/apache/htdocs">

Options Indexes ExecCGI FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

上面显示在主机主网页放置的目录下 WWW 所可以进行的事情!

options 为网页可以进行的工作,可以复选,有以下的几个项目:

ExecCGI:表示可以在这个目录中执行 CGI 程序;

FollowSymLinks:表示可以连结至他处;

MultiViews:表示可以执行动画、音乐等项目

AllowOverride None 表示任何人都可以读取资料;

至于Allow from all 则表示你的主机接受任何位置来源的连接。

<IfModule mod_userdir.c>

UserDir public_html

</IfModule>

上面这个选项需要开启,那样你的用户帐号才可以有首页!

而你用户的首页放置在 /home/user/public_html 下,你可以将

public_html 改成 WWW ,则用户的首页就需要放在

/home/user/www,若以上面的设定,则以我为例,我的首页需要放在

/home/frank/public_html 底下才行!

<IfModule mod_dir.c>

DirectoryIndex index.html index.htm index.php

</IfModule>

这个是用来说明首页的文件名称,通常默认值是 index.html,但是有些

网页编辑器的附档名是 index.htm ,所以你可以加上后面的几个档名,

如此一来,你的首页就可以支持多种档名了!

基本上均使用默认值也就可以了!

3. 开启 PHP 与其它模块:由于我们需要可以支持 php 模块的 apache ,所以需要将这个模块开启喔!

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

将这两个模块的批注取消,请注意,这个是 php4 的模块,不要与 php3 模块搞混了!

因为我们是安装 php4 版的幽!

AddHandler cgi-script .cgi

上面这一行的批注也可以拿掉,这样客户端才能使用 CGI 程序!

4. 开启 Apache 状态列:我们可以透过 IE 等浏览器来观看主机的 apache 执行情况,若你需要这个服务,就要将下面的批注取消掉:

<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from .your_domain.com

</Location>

<Location /server-info>

SetHandler server-info

Order deny,allow

Deny from all

Allow from .your_domain.com

</Location>

将上面的 .your_domain.com 改成你的 DNS ,

例如我可以改成 .uc88.domain 喔!这样一来,

只有 uc88.domain 的机器可以看到你的 apache 的执行状态!

如何观看,以我为例,只要在网址列输入

http://www.uc88.doamin/server-status

http://www.uc88.domain/server-info

则来自 uc88.domain 的用户即可看到我的主机状态!

5. 重新激活:只要下达 /usr/local/apache/bin/apachectl restart 即可执行 httpd 啰!到这里就设定完毕了,执行你的 IE 连上你的网络看看吧!(如果有问题的话,请重新激活 linux 吧!)

测试 MySQL 及 PHP 套件

要测试这两个套件前请先确定 MySQL 及 Apache 已经被激活了!OK,来做测试吧!

php 测试:

你可以编辑一个档案,文件名称可以为 test.php ,然后将这个档案放置在 /usr/local/apache/htdocs 当中(就是你的主机的网页所在地喔!)

[root @tsai /root]# vi /usr/local/apache/htdocs/test.php

<?

phpinfo( );

?>

然后连上你的主机,以我为例,我就要输入 http://www.uc88.domain/test.php 这样就可以看到你的 php 状态啰!也就是你的 php 就可以执行了!

MySQL 测试:

同样的, MySQL 也是编辑一个档案,执行看看可不可以即可:

[root @tsai /root]# vi /usr/local/apache/htdocs/mysqltest.html

<html>

<body>

<?

$link=mysql_connect('localhost','root');

mysql_select_db('mysql');

$str="select * from user;";

$result=mysql_query($str,$link);

$show=mysql_num_rows($result);

mysql_close($link);

for ($i=0;$i < $show;$i++)

{

$arr[$i]=mysql_fetch_array($result);

};

?>

<table align=center border=1>

<tr align=center>

<td>Host</td>

<td>User</td>

<td>Password</td>

</tr>

<?for ($i=0;$i<$show;$i++){?>

<tr>

<td><?echo $arr[$i][Host]?></td>

<td><?echo $arr[$i][User]?></td>

<td><?echo $arr[$i][Password]?></td>

</tr>

<?};?>

</body>

</html>

然后同样的执行 http://www.uc88.domain/mysqltest.html 即可知道你的 mysql 是否可以执行!

写入第一个个人首页

如果你的网站支持给用户放置个人网页的话,那你的个人网页在哪里呢?刚刚我们有提到在 httpd.conf 的设定中,有一项关于个人首页的设定,通常如果你不设定 httpd.conf 档案的话,他的默认值都是 public_html ,好了,那要如何设定个人网页呢?假设以 frank 这个帐号为例,我们可以这样进行:

[frank @frank frank]$ mkdir public_html

[frank @frank frank]$ chmod 755 public_html

[frank @frank frank]$ chmod 755 /home/frank

在你的客户端家目录中建立了一个 public_html 的目录,

并将此目录的权限改成可以让其它人观看,注意喔, apache

预设是 public_html ,但是如果你在 httpd.conf 这个档案中

改变了目录名称,则必须作适当的修正喔!

然后在你的目录中,亦即 /home/frank/public_html 当中,建立一个档名为 index.html 的 HTML 档案,例如我们刚刚测试的 php 的档案,然后在 IE 的网址列打入 http://你的网站名称/~frank/ 则 apache 会自动将 IE 的讯息传到 /home/frank/public_html 这个目录中,并搜寻文件名为 index.html 或 index.htm 或 index.php 的檔名!所以说, index.html 是 apache 第一个找寻的档名喔!这就是你的首页啦!

然后你就可以经由 php 写你的网页资料,并将之放置在 public_html 这个目录下,就好了!不过用这个方法写网页时,需要注意的是,附檔名是 php3 的档案将不会被执行,所以你要将 php3 改成 php 比较妥当!

就是这个

[root@tsai /root]# cd /usr/local

[root@tsai local]# tar -zxvf /home/test/apache_1.3.20.tar.gz

[root@tsai local]# tar -zxvf /home/test/mysql-3.23.41.tar.gz

[root@tsai local]# tar -zxvf /home/test/tar -zxvf /test/php-4.0.6.tar.gz(这个看到了没有?)

则在 /usr/local 中会多出三个目录,分别是:apache_1.3.20, mysql-3.23.41, php-4.0.6。

应该是这样

[root@tsai local]# tar -zxvf /home/test/php-4.0.6.tar.gz

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有