注意:请先在"安全性及防火墙设置"打开对www服务的访问
httpd的配置文件为/etc/httpd/conf/httpd.conf
试修改以下指令:1. Web站点的主目录
DocumentRoot:设置Web站点的主目录,如:
DocumentRoot "/wu" //该目录必须已经存在注:如果更改主目录后,在浏览器中访问是出现如下错误提示:
Forbidden You don't have permission to access / on thisserver.
Additionally, a 403 Forbidden error was encountered while tryingto use an ErrorDocument to handle the request.
那么很可能的原因是与SELinux有关,最简单的办法就是把SELinux关掉或删掉,实在不行去xwindow里找出SELinux程序,把安全级别调低一点就好。不过最好的办法还是改变一下文件夹的安全属性:
#chcon -R -t httpd_user_content_t $DocumentRoot/
2. 站点主页设置
Directorylndex:设置站点主页,如:
Directorylndex index.htm index.html lindex.php3. 设置中文显示
AddDefaultCharset:添加默认字符集,此项设置将覆盖网页本身的字符集设置,故建议将它注释掉。
LanguagePriority:语言优先级
建议做如下修改:
#AddDefaultCharset UTF-8
LanguagePriority zh-CN zh-TW en da nl et fr de el it ja ko no pl ptpt-br ltz ca es sv4. 是否允许目录列表
<Directory"......">
OptionsIndexesFollowSymLinks//删除Indexes即表示不允许目录列表
AllowOverride None
Order allow,deny
Allow from all
</Directory>5. 设置用户个人站点目录
在httpd.conf文件中,关于用户个人站点目录的设置修改如下:
#UserDir disable
UserDir public_html在httpd.conf文件中,有关于用户个人站点目录的指令块,取消其前面的注释:
<Directory"/home/*/public_html/">
...
</Directory>新建一个用户(假如叫tommy),如果该用户想拥有自己的个人站点,则该用户登录后,做以下操作:
$cd ~ //转到用户个人主目录
$mkdirpublic_html //建立个人站点目录
$chcon -R -t httpd_user_content_tpublic_html///更改目录的SElinux权限,或者在"安全性和防火墙"设置中禁止SElinux
$chmod 755public_html //更改目录权限
$echo "这是tommy的个人站点,欢迎光临" >index.htm //建立个人主页文件测试,在浏览器中输入:
http://.../~tommy
如果想在访问tommy的主面时时,去掉~号(即http://.../tommy的形式),则需在httpd.conf中加入以下内容:
Alias /tommy/"/home/tommy/public_html/"
6. 设定web目录的访问权限
假如tommy的个人站点下,有一目录super,不想让IP为192.168.6.23、域名为sam.net03.org的用户访问,则可以在httpd.conf文件中加入以下内容:
<Directory"/home/tommy/public_html/super">
order allow,deny
deny from 192.168.6.23
deny from sam.net03.org
allow from all
</Directory>7.Alias指令
说明 映射URL到文件系统的特定区域 语法 AliasURL-pathfile-path|directory-path
Alias指令使文档可以被存储在DocumentRoot以外的本地文件系统中。以(%已解码的)url-path路径开头的URL可以被映射到以directory-path开头的本地文件。
示例:
Alias /image /ftp/pub/image
效果就是对"http://..../image/foo.gif"的请求,服务器将返回"/ftp/pub/image/foo.gif"文件。
虚拟主机类型返回
基于名称的虚拟主机 在一个IP的基础上构建多个Web站点, Web站点域名解析后对应同一个IP地址
基于IP的虚拟主机 系统有多个IP(可能绑定在一个网卡上,也可能绑定在多块网卡上), Web站点域名解析后对应不同的IP地址
基于名称的虚拟主机返回
以下设置为基于名称的虚拟主机,即设置两个web站点www1.net03.org、www2.net03.org,这两个名称对应一个IP地址192.168.0.1
1.在DNS服务器上添加相应记录
设置好DNS服务器在服务器的DNS中设置两条DNS主机记录:www1.net03.org和www2.net03.org,注意它们都对应同一个IP地址(192.168.0.1)。
即在net03.org的DNS服务器ns.net03.org的正向解析区文件中添加以下记录:
tigerINA192.168.0.1www1INCNAMEtigerwww2INCNAMEtiger
2.为虚拟主机建立站点主目录,及主页文件
在/var/www/virhost为虚拟主机建立目录host1和host2如下:
#mkdir -p/wu1
#mkdir -p/wu2
设置虚拟主机目录权限为755,如下:
#chmod 755/wu1
#chmod 755/wu2
3.配置httpd.conf
在httpd.conf中加入以下内容:
_____________________________________________________________________________NameVirtualHost 192.168.0.1
<VirtualHost192.168.0.1:80>
ServerName www1.net03.org
DocumentRoot/wu1
</VirtualHost>
<VirtualHost192.168.0.1:80>
ServerName www2.net03.org
DocumentRoot/wu2
</VirtualHost>
以及设定目录权限:
<Directory/wu1>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory><Directory/wu2>
......
</Directory>
基于IP的虚拟主机返回
1.在DNS服务器上添加相应记录
设置好DNS服务器在服务器的DNS中添加两条DNS主机记录:news.net03.org,sports.net03.org,注意它们都对应不同的IP地址(192.168.0.2、192.168.0.3)。
即在net03.org的DNS服务器ns.net03.org的正向解析区文件中添加以下记录:
newsIN A192.168.0.2
sportsIN A 192.168.0.3
2.为虚拟主机建立站点主目录,及主页文件
略3.配置httpd.conf
在httpd.conf文件中添加如下内容:
____________________________________________________________________________<VirtualHostnews.net03.org>
DocumentRoot/wu3
ServerName news.net03.org
</VirtualHost>
<VirtualHostsports.net03.org>
DocumentRoot/wu4
ServerName sports.net03.org
</VirtualHost>
以及
<Directory/wu3>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory><Directory/wu4>
...
</Directory>
基于端口的虚拟主机返回
1.注意:考虑到Fedora中SElinux的设置,需首先在“安全级别及防火墙”中,禁用SElinux,或只禁用SElinux对httpd守护进程的保护;同时在防火墙中开启相关的端口,比如我们要用的5555、6666
2. 在httpd.conf文件中添加如下内容:
____________________________________________________________________________
Listen *:5555
Listen *:6666
<VirtualHost192.168.0.1:5555>
DocumentRoot/wu5
</VirtualHost>
<VirtualHost192.168.0.1:6666>
DocumentRoot/wu6
</VirtualHost>
以及
<Directory/wu5>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory/wu6>
...
</Directory>
web用户认证返回
用户身份认证 可以使某个目录成为保护目录 , 如客户端访问 http://192.168.0.1/protect/目录时需要验证用户的身份才能访问
1. 建立保护目录并在该目录中建立web文件
最简单的情况,保护目录就建立在Web主目录(即DocumentRoot所指的目录)下:
#mkdir-p/var/www/html/protect
#chmod 755/var/www/html/protect
#cd/var/www/html/protect
#echo "This is a protect page" >index.html
如果要保护的Web目录不在Web主目录下,则目录建立好之后,需要在httpd.conf文件中进行别名设置:
(1) #mkdir -p/var/akuna
(2) 打开httpd.conf文件,加入以下指令
Alias/protect/"/var/akuna/"
2. 制作密码文件
先建立文件夹 /var/www/htpass , 在该文件夹中用 “ #htpasswd[-c]密码文件名 用户名”的格式制作密码文件如:
#htpasswd -capasstest2
#htpasswdapasstest3
那么密码文件/var/www/htpass/apass中有两个账号test2 与 test3了
3. 在配置文件中设置认证选项 打开配置文件 httpd.conf 在其最后加入以下 :
________________________________________________________________________________________________
<Directory "/var/www/html/protect">
AuthName "Protected Directory" //认证领域名称,就是显示在登录窗口上面的提示字符
AuthType Basic // 设置认证的类型,选择 Basic ,即使用基本认证
AuthUserFile /var/www/htpass/apass //密码文件所在目录及文件名
require valid-user //允许的访问者, valid-user表示任何一个在认证文件当中的用户都是合法用户
#require user test2 //若将 # 移除,则表示只有 test2 才是可以登入的账号
</Directory>
4. 重新启动 Apache
#service httpd restart
5. 测试
在客户端浏览器地址栏中输入 http://192.168.0.1/protect/,如果弹出用户认证窗口,输入合法用户名及密码,可以浏览相关网页,否则不能浏览,表示配置成功.
SSL与数字证书返回
启用SSL
1. 安装软件包
mod_ssl
2. 重启Apache服务
service httpd restart
3. 使用https来访问原有站点
https://www.net03.org
使用数字证书
1. 建立加密的私有密钥和公开密钥
#mkdir/etc/httpd/conf/ssl.key
#/usr/bin/openssl genrsa 1024> /etc/httpd/conf/ssl.key/server.key
#chmod 600/etc/httpd/conf/ssl.key/server.key
2. 利用公开密钥建立证书请求
#mkdir/etc/httpd/conf/ssl.csr
#/usr/bin/openssl req -new-key /etc/httpd/conf/ssl.key/server.key -out/etc/httpd/conf/ssl.csr/server.csr
......
3. 将建立的证书请求传送到CA
如果CA的证书是通过在线申请的,在浏览器地址中输入:
http://服务器名称或IP地址/certsrv
4. 如果通过CA的审核,则CA会寄发数字证书
5. 安装数字证书
webmin返回
webmin官方站点:www.webmin.com
安装webmin的RPM包,webmin-1.330-1.noarch(2).rpm
在浏览器地址栏中输入
http://服务器名称或IP:10000
来使用webmin
任务,使用webmin来配置多种虚拟主机:
1. 在"网络-->网络配置"中添加新的网络接口,在同一张网卡上绑定多个IP
2. 在"服务器-->BINDDNS服务器"中配置在虚拟主机中要用的基于同一个IP的主机名,及基于不同IP的主机名
3.在"服务器-->Apache服务器"中添加基于名称的虚拟主机,添加基于IP的虚拟主机,添加基于端口的虚拟主机
Web维护与日志分析返回
1. apachectl
apachectl 是Apache HTTP服务器的前端程序。其设计意图是帮助管理员控制Apache httpd后台守护进程的功能。
apachectl 脚本有两种操作模式。首先,作为简单的 httpd 的前端程序,设置所有必要的环境变量,然后启动 httpd,并传递所有的命令行参数。其次,作为SysV初始化脚本,接受简单的一个单词的参数,如: start , restart , stop,并把他们翻译为适当的信号发送给 httpd 。
如果你的Apache安装在非标准的路径中,你将需要修改 apachectl 脚本使其中的路径正确地指向 httpd程序。此外,还可以指定任何必要的 httpd 命令行参数。细节可以参见脚本中的注解。
apachectl 脚本如果执行成功,则返回0 ;如果出错,则其返回值>0。更多细节可以参见脚本中的注解。
在扮演传递角色时,apachectl 可以接受对 httpd 程序有效的所有参数。apachectl [ httpd-argument ]
语法: apachectlcommand
#apachectlconfigtest//执行一次配置文件语法检查。它解析配置文件,并报告Syntax Ok 或者是特定的语法错误详细信息。它等价于apachectl-t。
#apachectl start//启动Apachehttpd 后台守护进程。如果已经启动,则产生一个错误。它等价于 apachectl -k start 。
#apachectl stop//停止Apachehttpd 后台守护进程。它等价于 apachectl -k stop 。
#apachectlrestart//重新启动Apache httpd后台守护进程。如果守护进程尚未运行,则启动它。在重新启动守护进程之前,此命令会使用 configtest自动检查配置文件,以确保Apache不会死掉。它等价于 apachectl -k restart 。
#apachectl fullstatus//显示由mod_status 提供的完整的状态报告。要使用这个功能,需要启用服务器上的 mod_status模块,并且系统中有一个基于文本的浏览器,如 lynx 。修改脚本中的 STATUSURL 变量,可以修改访问状态报告的URL。
#apachectlstatus显示一个简要的状态报告。它类似于 fullstatus选项,但是省略了正在处理的请求的列表。
#apachectlgraceful优雅地重新启动Apache httpd 后台守护进程。如果守护进程尚未启动,则启动它。它和标准重新启动的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。这意味着,如果在日志滚动脚本使用它,则在处理日志之前必须加入一个实实在在的延迟,以确保老的日志文件在被处理前已经关闭。在重新启动守护进程之前,此命令会使用configtest 自动检查配置文件,以确保Apache不会死掉。它等价于 apachectl -k graceful 。
#apachectlgraceful-stop优雅地停止Apache httpd后台守护进程。它和标准停止的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。它等价于 apachectl -kgraceful-stop 。
2. Webalizer
用webalizer分析web日志
介绍:webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析。Webalizer具有以下一些特性:
1.因为是用C写的程序,所以具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。
2. webalizer支持标准的一般日志文件格式(Common LogfileFormat);除此之外,也支持几种组合日志格式(Combined LogfileFormat)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在webalizer已经可以支持wu-ftpdxferlog日志格式以及squid日志文件格式了。
3. 支持命令行配置以及配置文件。
4. 可以支持多种语言,也可以自己进行本地化工作。
5. 支持多种平台,比如UNIX、linux、NT, OS/2 和 MacOS等。
安装:
1.从webalizer的官方站点http://www.mrunix.net/webalizer/下载webalizer。
2.首先解开源代码包: tar xvzfwebalizer-2.01-06-src.tgz
3.在生成的目录中有个lang目录,该目录中保存了各种语言文件,但是只有繁体中文版本,可以自己转换成简体,或者自己重新翻译一下。
4.然后进入生成的目录,编译、连接、安装:
#./configure
#make
#makeinstall
5.编译成功后,会产生一个webalizer可执行文件
配置:
上面说过,可以通过命令行配置webalizer,也可以通过配置文件(/etc/webalizer.conf)进行配置,在本文中我们将介绍使用命令行参数进行配置,需要了解配置文件使用方法的朋友可以参考README文件,里面有很详细的介绍。 可以执行webalizer –h得到所有命令行参数:
Usage: webalizer [options] [log file]
-h = 打印帮助信息
-v -V = 打印版本信息
-d = 打印附加调试信息
-F type = 日志格式类型. type= (clf | ftp | squid)
-i = 忽略历史文件
-p = 保留状态 (递增模式)
-q = 忽略消息信息
-Q = 忽略所有信息
-Y = 忽略国家图形
-G = 忽略小时统计图形
-H = 忽略小时统计信息
-L = 忽略彩色图例
-l num = 在图形中使用数字背景线
-m num = 访问超时 (seconds)
-T = 打印时间信息
-c file = 指定配置文件
-n name = 使用的主机名
-o dir = 结果输出目录
-t name = 指定报告题目上的主机名
-a name = 隐藏用户代理名称
-r name = 隐藏访问链接
-s name = 隐藏客户
-u name = 隐藏URL
-x name = 使用文件扩展名
-P name = 页面类型扩展名
-I name = index别名
-A num = 显示前几名客户类型
-C num = 显示前几名国家
-R num = 显示前几名链接
-S num = 显示前几名客户
-U num = 显示前几名URLs
-e num = 显示前几名访问页面
-E num = 显示前几名不存在的页面
-X = 隐藏个别用户
-D name = 使用dns缓存文件
-N num = DNS 进程数 (0=禁用dns)
例:假设,web服务器主机名为ns.net03.org,访问日志为/var/log/httpd/access_log,我们将webalizer分析结果输出到/var/www/html/log下面。则我们可以执行以下命令,或建立启动脚本/etc/rc.d/webalizer使之自动运行:
________________________________________________________________________________________________
#webalizer -F clf -p -t 'ns.net03.org' -o/var/www/html/log /var/log/httpd/access_log
___________________________________________________________________________________________
#vi/etc/rc.d/webalizer
#!/bin/sh
run=/usr/sbin/webalizer
$run -F clf -p -t 'ns.net03.org' -o /var/www/html/log/var/log/httpd/access_log
______________________________________________________________________________________________
说明:
-F clf: 指明我们的web日志格式为标准的一般日志文件格式(Common LogfileFormat)
-p指定使用递增模式,这就是说每作一次分析后,webalizer会生产一个历史文件,这样下一次分析时就可以不分析已经处理过的部分。这样我们就可以在短时间内转换我们的日志文件,而不用担心访问量太大时日志文件无限增大了。
-n " ": 指定服务器主机名为空,这样输出结果会美观一些。
-t "www.test.com" 指定输出结果标题。
-o 指定报告的输出位置
/var/log/httpd/access_log:指定日志文件
如果要使同样的日志分析任务周期性执行,则需在/etc/crontab中加入下面一行:
#vi /etc/crontab
...
01 1 * * * root /etc/rc.d/webalizer
...
表示,每天凌晨1点01分执行该脚本。 然后运行/etc/rc.d/init.d/crond reload重载入crond服务。
3.使用logrotate管理日志
对于Linux 的系统安全来说,日志文件是极其重要的工具。
系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate还可以用来备份日志文件,本篇将通过以下几部分来介绍
日志文件的管理:
1、logrotate 配置
2、缺省配置 logrotate
3、使用include 选项读取其他配置文件
4、使用include 选项覆盖缺省配置
5、为指定的文件配置转储参数
一、logrotate 配置
logrotate程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过cron 程序来执行。
logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。
logrotate 的配置文件是 /etc/logrotate.conf。主要参数如下表:
参数 功能
compress 通过gzip 压缩转储以后的日志
nocompress 不需要压缩时,用这个参数
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件但是不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty 如果是空文件的话,不转储
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig,.rpmsave, v, 和 ~
size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB(sizem).
二、缺省配置 logrotate
logrotate 缺省的配置文件是/etc/logrotate.conf。
Red Hat Linux 缺省安装的文件内容是:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# send errors to root
errors root
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
1
# RPM packages drop log rotation information into thisdirectory
include /etc/logrotate.d
# no packages own lastlog or wtmp --we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
/var/log/lastlog {
monthly
rotate 1
}
# system-specific logs may be configured here
缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。在本例中就是前面12行。
第三行weekly 指定所有的日志文件每周转储一次。
第五行 rotate 4 指定转储文件的保留 4份。
第七行 errors root 指定错误信息发送给root。
第九行create 指定 logrotate 自动建立新的日志文件,新的日志文件具有和
原来的文件一样的权限。
第11行 #compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。
三、使用include 选项读取其他配置文件
include 选项允许系统管理员把分散到几个文件的转储信息,集中到一个
主要的配置文件。当 logrotate 从logrotate.conf 读到include选项时,会从指定文件读入配置信息,就好像他们已经在/etc/logrotate.conf 中一样。
第13行 include /etc/logrotate.d 告诉 logrotate 读入存放在/etc/logrotate.d目录中的日志转储参数,当系统中安装了RPM 软件包时,使用include 选项十分有用。RPM软件包的日志转储参数一般存放在/etc/logrotate.d 目录。
include 选项十分重要,一些应用把日志转储参数存放在 /etc/logrotate.d 。
典型的应用有:apache, linuxconf, samba, cron 以及syslog。
这样,系统管理员只要管理一个 /etc/logrotate.conf 文件就可以了。
四、使用include 选项覆盖缺省配置
当 /etc/logrotate.conf 读入文件时,include 指定的文件中的转储参数将覆盖缺省的参数,如下例:
# linuxconf 的参数
/var/log/htmlaccess.log
{ errors jim
notifempty
nocompress
weekly
prerotate
/usr/bin/chattr -a /var/log/htmlaccess.log
endscript
postrotate
/usr/bin/chattr +a /var/log/htmlaccess.log
endscript
}
/var/log/netconf.log
{ nocompress
monthly
}
在这个例子中,当 /etc/logrotate.d/linuxconf文件被读入时,下面的参数将覆盖/etc/logrotate.conf中缺省的参数。
Notifempty
errors jim
五、为指定的文件配置转储参数
经常需要为指定文件配置参数,一个常见的例子就是每月转储/var/log/wtmp。为特定文件而使用的参数格式是:
# 注释
/full/path/to/file
{
option(s)
}
下面的例子就是每月转储 /var/log/wtmp 一次:
#Use logrotate to rotate wtmp
/var/log/wtmp
{
monthly
rotate 1
}
六、其他需要注意的问题
1、尽管花括号的开头可以和其他文本放在同一行上,但是结尾的花括号必须单独成行。
2、使用 prerotate 和 postrotate 选项
下面的例子是典型的脚本 /etc/logrotate.d/syslog,这个脚本只是对
/var/log/messages 有效。
/var/log/messages
{
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
postrotate
/usr/bin/kill -HUP syslogd
/usr/bin/chattr +a /var/log/messages
endscript
}
第一行指定脚本对 /var/log messages 有效
prerotate 命令指定转储以前的动作/usr/bin/chattr -a去掉/var/log/messages文件的“只追加”属性 endscript 结束 prerotate部分的脚本postrotate 指定转储后的动作
/usr/bin/killall -HUP syslogd
用来重新初始化系统日志守护程序 syslogd
/usr/bin/chattr +a /var/log/messages
重新为 /var/log/messages 文件指定“只追加”属性,这样防治程序员或用户覆盖此文件。
最后的 endscript 用于结束 postrotate 部分的脚本
3、logrotate 的运行分为三步:
判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码是 Red Hat Linux缺省的crontab 来每天运行logrotate。
#/etc/cron.daily/logrotate
#! /bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
4、/var/log/messages 不能产生的原因:
这种情况很少见,但是如果你把/etc/services 中的 514/UDP 端口关掉的话,这个文件就不能产生了。
LAMP配置与应用返回
LAMP(Linux+Apache+Mysql+Php)配置:
1. Fedora 5已默认安装了php,可以使用rmp -q php查看其版本号
2. 安装mysql客户端mysql(与perl-DBI包有依赖关系,要先安装)
3. 安装mysql服务端mysql-server(与perl-DBD包有依赖关系,要先安装)
4. 安装php支持mysql的模块php-mysql(与php-pdo包有依赖关系,要先安装)
Mysql的web管理工具phpMyAdmin
1.安装
phpbb应用
注:以下头3步有关mysql的操作也可以在webmin中完成.
1.mysql的账号管理
1) 要设置root用户的密码为123456,则在系统提示符下执行下面的命令:#mysqladmin-u root -p password "123456"
2) 要在mysql命令行客户端,设置root用户的密码为123456,则需执行以下命令:mysql>usemysql;
mysql>update user setPassword=password('123456') whereUser='root';
mysql>flushprivileges;
3) 如果要新增用户u1,给他授予对数据库bb中所有表(*)的所有权限(all),密码设为888888,则在mysql提示符下:
mysql>grant all on bb.* to 'u1'@'localhost'identified by '888888';
2.如果root用户有密码,则进入mysql客户端需用下面的命令:#mysql -uroot -p
3.新建phpbb论坛所要用到的数据库:mysql>createdatabaseXXX;
4.为phpbb所在目录新建虚拟主机
5.在浏览器中访问该虚拟主机,以安装phpbb
6.注意:在安装结尾,选择下载配置文件,自行上传.然后删除install,contrib两个目录
定制phpbb
实训作业返回
1.使用Apache配置基本的web站点,使客户端浏览简体中文网页能正常显示、新增支持的主页文件index.htm index.phpdefault.htm default.html。最后要能在其它计算机上通过域名访问,比如www.yyy.net03.org。
2.在web站点下实现虚拟目录,即web站点的子目录,该子目录与主目录不一定是上下目录关系.同时,允许该目录有目录列表功能(即在没有找到主文件件的时候,显示当前目录下的列表).
3.实现Linux用户个人站点.
4.配置多个基于名称的虚拟主机,比如www1.yyy.net03.org,www2.yyy.net03.org。最后要能在其它计算机上通过域名访问。
5.配置多个基于IP的虚拟主机,比如lit.yyy.net03.org,mil.yyy.net03.org。最后要能在其它计算机上通过域名访问。
6.配置LAMP环境
7.配置phpbb论坛,并使该论坛可以通过形如bbs.yyy.net03.org的形式访问。
(*)8. 删除系统原有Apache、php、Mysql项目,使用源文件安装最新版本的Apache、php、Mysql
利用源代码安装LAMP返回
首先要在相关网站获取Apache、Mysql、Php的源码包,一般扩展名为xxx.tar.gz.
删除系统原有Apache、php、Mysql项目,可能要用到下面的命令
# rpm -exxx
# rpm -exxxnodeps#不考虑依赖关系而删除xxx包
# rpm -exxx yyy zzz#删除xxx,yyy,zzz包
如果无法删除一个RPM包,可以使用以下两步:
#rpm -f /var/lib/rpm
#rpm --rebuilddb
或:
#rpm -ivh --justdbxxx
#rpm -exxx
1. 安装Apache(httpd-2.2.8)
# ./configure --enable-so
# make
# make install
# /usr/local/apache2/bin/apachectl start
2. 安装Mysql(Mysql-5.0.22)
1) 建立用户及组,如果在/etc/passwd中已有该用户,则下列操作可以省略
shell> groupadd mysql
shell> useradd -g mysql mysql
2) 解压、配置编译安装
shell> gunzip < mysql-VERSION.tar.gz| tar -xvf -
shell> cd mysql-VERSION
shell> ./configure--prefix=/usr/local/mysql#配置(指定mysql安装路径)
shell>make#编译
shell> makeinstall#安装
3) 配置mysql
shell> cp support-files/my-medium.cnf/etc/my.cnf#建立mysql配置文件
shell> cp support-files/mysql.server/etc/init.d/#建立mysql控制脚本
shell> cd /usr/local/mysql
shell> bin/mysql_install_db--user=mysql#建立mysql系统数据库
shell> chown -R root.#更改当前目录及子目录所有者
shell> chown -R mysqlvar#更改var目录及子目录所有者
shell> chgrp -R mysql.#更改当前目录及子目录所属组
4) 启动mysql
shell> bin/mysqld_safe --user=mysql&#以后台模式运行mysqld服务
shell> chkconfig --list |less#查看服务列表
shell> chkconfig --addmysql.server#将mysql.server添加到服务列表
shell> chkconfig --list |less#查看服务列表
shell> service mysql.serverrestart
shell> / usr/local/mysql/bin/mysqladmin -u root -ppassword'888888'#更改mysql管理用户root的密码
3. 安装php(php5 on Apache 2 Shared Module Version)
1) tar -zxvf php-NN.tar
2) cd php-NN
3) ./configure --with-apxs2=/usr/local/apache2/bin/apxs--with-mysql=/usr/local/mysql
4) make
5) make install
6) 建立php配置文件php.ini
# cp php.ini-dist /usr/local/lib/php.ini
7) 编辑http配置文件 httpd.conf 使之加载PHP模块
对于 PHP 4,添加下句:
LoadModulephp4_module modules/libphp4.so
对于 PHP 5,添加下句:
LoadModulephp5_module modules/libphp5.so
8) 编辑http配置文件 httpd.conf,使之能解析扩展名为php的文件
AddTypeapplication/x-httpd-php .php .phtml
9) 编辑http配置文件 httpd.conf,修改主页文件
DirectoryIndex index.php index.htm index.html
10) 重启httpd服务
# /usr/local/apache2/bin/apachectl start
或
# /usr/local/apache/bin/apachectl -k start
11)编辑index.php文件,并在浏览器中访问该站点,如果出现关于php的当前配置信息(其中有mysql的配置项),表示LAMP安装成功。
$vi index.php
<?php
phpinfo()
?>