apche

时间:2024-11-14 01:48:48编辑:流行君

如何在Linux下搭建apache服务器

1 删除Linux系统本身自带有apache服务器。2 查看系统是否已安装GCC(只有装有gcc才能使用)3 解压apache软件,并进入到解压之后的文件夹4 安装apache指令 configure:./configure --prefix=/usr/local/apache --enable-so5 make指令:6 make install7 配置和开启apache,访问测试8 打开浏览器测试

如何开启Apache2 Rewrite功能

在Windows上开启Apache非常简单,因为apache的用户配置都是放在http.conf文件中,要开启Rewrite功能,只需要把该文件中“LoadModule rewrite_module modules/mod_rewrite.so”前面的注视去掉,然后重启apache即可。
但Linux上有所不同,默认Apache包配置是分散的,比如/etc/apache2目录可能包含conf.d、mods-available、mods-enabled、sites-available、sites-enabled文件夹,apache2.conf、envvars、httpd.conf(用户配置文件)、magic、ports.conf(APACHE端口配置)配置文件。系统不同、版本不同可能还会有细微差异。
一、Ubuntu默认未开启Rewrite支持
apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便。下面看一下如何开启Rewrite模块,当用户需使用301重定向、伪静态等Rewrite功能时,一般都习惯于使用.htaccess文件配置,比如下面的301重定向:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [L,R=301]


配置完成后,使用/etc/init.d/apache2 reload命令加载生效,这时,如果未开启Rewrite功能,则会出现500错误(浏览器显示),查看LOG错误如下:
[Sun Jan 30 02:41:29 2011] [alert] [client 12.34.56.78] /srv/www/abc.com/public_html/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
说明需要开启Rewrite模块加载,加载开启过程如下。
二、手动开启加载Rewrite
1、使用终端工具连接服务器,输入管理员帐号和密码
2、执行加载Rewrite模块:
a2enmod rewrite
执行后,会提示OK和重启Apache命令(/etc/init.d/apache2 restart)。
3、参照上文的目录配置,做个启动链接(下次启动自动加载):
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
执行后会在mods-available目录下创建一个快捷方式,连接到mods-enabled下rewrite模块。
4、重启apache:
/etc/init.d/apache2 restart
注意:如果使用的是apache默认网站目录(一般是类似于/var/www文件夹),没有创建单独的自己配置文件,可能还需要修改/etc/apache2/sites-available/default这个文件,把其中的AllowOverride None修改为AllowOverride All,因为default配置里还默认关闭.htaccess重载,打开后.htaccess才会生效。
三、如何判断Rewrite已经开启
1、检查确认Rewrite模块加载
本文测试是在CentOS 6系统上,路径为:/etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
如果前面有注释就去掉即可,重启APACHE。
2、检查确认目录Rewrite打开
Rewrite库加载不代表我们的.htaccess文件就能生效,还需要专门打开指定目录的AllowOveride开关,脚本如下:

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

其中AllowOverride只能定义在Directory这个Section里,具体用法可参考apache官方说明(下文链接),以上脚本一般放在httpd.conf或/etc/httpd/conf.d/vhost.conf下面,尽量更网站配置的:
....
定义在一起,方便维护。
3、测试Rewrite功能
以下为.htaccess测试实例:
# BEGIN

RewriteEngine on
RewriteBase /
RewriteRule .*$ http://www.metsky.com

#END

测试方法,拷贝保存为.htaccess,上传到网站根目录下,访问网站任何路径页面,均会跳转到本博客,说明Rewrite已生效。
提醒:正常修改.htaccess一般都是即时生效,如果修改的是apache conf配置文件,一般需要重启apache一次。


如何在linux上安装apache

由于它们使用的套件管理方式不同(如Debian的pkg和Redhat的rpm)所以Apache在不同系统的安装方法不尽相同,但由于RPM文件在Linux系统中的安装最为简便,Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本都使用rpm包管理方式,在这里就说一下Redhat中Apache的安装方法:
1.首先使用下面的命令检查系统是否已经安装了Apache或查看已经安装了何种版本:rpm -q httpd
2.要安装Apache,应将Red Hat安装盘中有Apache RPM安装包的那张放入光驱,加载光驱(别忘了)后在光盘Server目录下找到Apache的RPM安装包文件httpd-2.2.3-6.el5.i386.rpm,可使用下面命令安装Apache: rpm -ivh /mnt/Server/httpd-2.2.3-6.el5.i386.rpm
3.然后测试Apache服务器执行“/etc/init.d/httpd start”命令,确认Web服务已经启动后,在客户端使用的Web浏览器中输入Linux服务器的IP地址进行访问,如果出现一个Red Hat的测试页面则安装成功
下面来配置服务器:
httpd.conf(在/etc/httpd/conf目录下)配置文件主要由全局环境(Section 1: Global Environment)、主服务器配(Section 2: 'Main' server configuration)和虚拟主机(Section 3: Virtual Hosts)3个部分组成。部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称 参数值”的形式,配置语句可以放在文件中的任何地方,但为了增强文件的可读性,最好将配置语句放在相应的部分。httpd.conf中每行包含一条语句,行末使用反斜杠“\”可以换行,但是反斜杠与下一行中间不能有任何其他字符(包括空白)。httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号表示注释。
1.设置主目录的路径DocumentRoot "/var/www/html“
2.设置默认文档DirectoryIndex index.html index.html.var
3.设置Apache监听的IP地址和端口号Listen 80
4.设置相对根目录的路径ServerRoot "/etc/httpd“
5.设置日志文件
(1)错误日志ErrorLog logs/error_log
(2)访问日志CustomLog logs/access_log combined
6.设置网络管理员的E-mail地址ServerAdmin lindenstar@163.com
7.设置服务器主机名称ServerName 192.168.16.177:80
8.设置默认字符集AddDefaultCharset UTF-8,由于西欧(UTF-8)是Apache的默认字符集,因此当客户端访问服务器的中文网页时会出现乱码的现象 ,解决的办法是将语句“AddDefaultCharset UTF-8”改为“AddDefaultCharset GB2312”,然后重新启动Apache服务,中文网页就能正常显示了 。
9.使用Alias选项可以创建虚拟目录。 如创建名为/down的虚拟目录,它对应的物理路径是“/software/download”命令为Alias /down "/software /download"
10.可以使用和这对语句为主目录或虚拟目录设置权限,这些语句仅对被设置目录及其子目录起作用,目录的特性选项在下面的图中会出现。如

Options Indexes MultiViews
AllowOverride NoneOrder allow,deny


上一篇:麦兜语录

下一篇:没有了