Linux,web服务器搭建 python搭建web服务器

注意:请先在"安全性及防火墙设置"打开对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.php

3. 设置中文显示


AddDefaultCharset:添加默认字符集,此项设置将覆盖网页本身的字符集设置,故建议将它注释掉。
LanguagePriority:语言优先级
Linux,web服务器搭建 python搭建web服务器
建议做如下修改:
#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 sv

4. 是否允许目录列表

<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
#htpasswdapass
test3
那么密码文件/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()
?>

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/271907.html

更多阅读

Linux搭建WEB服务器 linux搭建tomcat服务器

Linux搭建WEB服务器——简介如何在linux下搭建web服务器Linux搭建WEB服务器——工具/原料环境:Ubuntu12.04软件:LAMP(Linux,Apache,Mysql,PHP)Linux搭建WEB服务器——方法/步骤Linux搭建WEB服务器 1、1.安装Apache(1)在安装HTTPServer之

linux下DNS服务器的搭建 自己搭建dns服务器

本文出处http://cnsky.blog.51cto.com/2474423/433157一、概念介绍1、DNSDNS(domain name system)域名系统,DNS的主要功能就是将主机名称转换成IP地址。2、FQDNFQDN(fully qualified domainname)完全合格域名/全称域名,是指主机名加上全路

Web文本挖掘技术研究 文本挖掘技术及其应用

Web文本挖掘技术研究王继成 潘金贵 张福炎摘 要 作为从浩瀚的Web信息资源中发现潜在的、有价值知识的一种有效技术,Web挖掘正悄然兴起,倍受关注.目前,Web挖掘的研究正处于发展阶段,尚无统一的结论,需要国内外学者在理论上开展更多

单板机上的LINUX,从零开始四 从零开始异世界web四

上一篇介绍了单板机装载程序(Bootloader)U-Boot的生成。本文介绍一个小Linux内核的生成。使用的Linux内核源代码版本是3.14.12(最新是3.14.16了),是比较新的版本,而且3.14也是一个会长期维护的版本。由内核源代码到生成内核,需要首先进行

HTTP代理小常识 http代理服务器搭建

一、HTTP代理的匿名性This is a proxy that hides the original users‘ IP address and other details from the remote server. 这种代理,对远端服务器隐藏原始用户的IP地址以及其它细节(可能,但不必需)。HTTP代理匿名性是指不通过非

声明:《Linux,web服务器搭建 python搭建web服务器》为网友致命诱惑分享!如侵犯到您的合法权益请联系我们删除