Home  >  Article  >  Database  >  apache+mysql+php for linux全攻略_MySQL

apache+mysql+php for linux全攻略_MySQL

WBOY
WBOYOriginal
2016-06-01 13:54:05699browse

Apache

 

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


Apache:目前 Apache 已经出到了 2.0.X 版,但是最广泛使用的还是属于 1.3.X 版本,这一版本目前出到最新的 1.3.20 版,你可以上 Apache 主网页去看看相关的信息:
Apache 主页(英文):
Apache 套件(由主页下载):
PHP:你可以上 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 MaxSpareServers 10 StartServers 5
MaxClients 150 上面两个是开启 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 这个路径下的首页档案传出去!
你也可以自行改变这个路径!

Options Indexes ExecCGI FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

上面显示在主机主网页放置的目录下 WWW 所可以进行的事情!
options 为网页可以进行的工作,可以复选,有以下的几个项目:
ExecCGI:表示可以在这个目录中执行 CGI 程序;
FollowSymLinks:表示可以连结至他处;
MultiViews:表示可以执行动画、音乐等项目
AllowOverride None 表示任何人都可以读取资料;
至于Allow from all 则表示你的主机接受任何位置来源的连接。

UserDir public_html

上面这个选项需要开启,那样你的用户帐号才可以有首页!
而你用户的首页放置在 /home/user/public_html 下,你可以将
public_html 改成 WWW ,则用户的首页就需要放在
/home/user/www,若以上面的设定,则以我为例,我的首页需要放在
/home/frank/public_html 底下才行!

DirectoryIndex index.html index.htm index.php

这个是用来说明首页的文件名称,通常默认值是 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 执行情况,若你需要这个服务,就要将下面的批注取消掉:


SetHandler server-status
Order deny,allow
Deny from all
Allow from .your_domain.com


SetHandler server-info
Order deny,allow
Deny from all
Allow from .your_domain.com

将上面的 .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



$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 {
$arr[$i]=mysql_fetch_array($result);
};
?>












};?>


然后同样的执行 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

Host User Password
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn