2013-10-17 13:24:01
来 源
ITJS.CN
Linux Apache配置
这里分享一下Linux系统中Apache服务器的配置,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。

1.apache2.conf 是主配置文件,httpd.conf 用户配置文件

在/etc/apache2/httpd.conf加入一行:ServerName 127.0.0.1

2.虚拟目录在 httpd.conf 中

DocumentRoot "路径"

ServerName 名称

allow from all Options +Indexes

3.根设置(默认主目录)在 /etc/apache2/sites-available/default

4.重启命令

sudo /etc/init.d/apache2 restart或者

cd /etc/init.d

sudo apache2 -k restart

stop 停止;start 启动

5.日志文件在 /var/log/apache2/激活/禁用 sites-available/mods-available 的 site 和 mod 都不用 ln 這麼麻煩的,我們有:)a2ensite

a2enmod

a2dissite

a2dismod

本文是站长学习Ubuntu的使用手册,此手册会不定期更新。

1、安装

只设置网络部分,其它部分全不安装,系统进入后自行安装。

2、系统设置篇

Ubuntu默认root是没有密码的,那么进入到init 1时自动进入到shell,

#sudo passwd root改变root's password

3、C/C++编译环境安装配置

#apt 命令默认从cdrom安装

注释掉/etc/apt/sources.list中的deb cdrom项, apt会从互联网上安装安装gcc,make

安装gcc,make

sudo apt-get install gcc g++ libgcc1 libg++ make gdb automake

测试环境配置

编写cpp文件 $ echo '

#include <stdio.h>

#include <iostream>

using namespace std;

int main() {

printf("Hello

");

cout<<"World!!

";

} ' > helloworld.cpp

编写makefile $ echo -e '

all:helloworld

helloworld:helloworld.cpp

g++ -g -o $@ helloworld.cpp

' > makefile

}

编译执行

$ make all

$ helloworld

如果屏幕输出

Hello

World!!

则安装成功

4、远程ssh安装

#sudo apt-get install ssh

5、Apache安装

#sudo apt-get install apache2

#sudo vi /etc/apache2/apache2.conf

增加内容

ServerName 192.168.2.1(服务器IP地址)

#sudo ./apache2 restart

增加安全模块,以保障Apache服务的正常运行,现在我们安装mod-security。(可选)

#sudo apt-get install libapache2-mod-security

sudo apt-get install libapache2-mod-security

该模块默认是没激活的,我们可以在/etc/apache2/mods-available目录下看到有mod-security.load文件,但在/etc/apache2/mods-enabled目录却没有它的软链接。我们现在激活它:

$sudo ln -s /etc/apache2/mods-available/mod-security.load /etc/apache2/mods-enabled/mod-security.load

$sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf

$sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig

#sudo vi /etc/ports.conf

Listen 80

Listen 443

#Listen 8080(如果配置JSP虚拟主机的话,请关闭此处端口)

NameVirtualHost 220.201.35.7

#NameVirtualHost *:443

$sudo vi /etc/apache2/mods-available/mod-security.conf

==== mod-security.conf 文件内容开始====

# 检测内容长度以避免堆溢出攻击

SecFilterForceByteRange 32 254 =>SecFilterForceByteRange 32 126

# debug设置

SecFilterDebugLevel 9 =>SecFilterDebugLevel 0

# 设置缺省的动作

SecFilterDefaultAction "deny,log,status:499" =>SecFilterDefaultAction "deny,log,status:404"

# 把设置传递给子目录

SecFilterInheritance Off

# Redirect user on filter match

# 当匹配sh的时候,重新定向到一个特殊的警告页面,该页面是自行编写的,写些警告的话让攻击者知难而退,该段先不要生效,等到相关配置配好之后再失效不迟。记住在配好之后要使之生效。

#SecFilter sh redirect:http://localhost/hack/warning.htm

# Prevent OS specific keywords

#过滤一些敏感的东西,我们使用*是为了攻击者使用/etc/./passwd来绕开检测

SecFilter /etc/passwd =>SecFilter /etc/*passwd

SecFilter /bin/*sh

# Very crude filters to prevent SQL injection attacks

# 防止SQL插入(SQL Injection)攻击

SecFilter "delete[[:space:]]+from"

SecFilter "insert[[:space:]]+into"

SecFilter "select.+from"

SecFilter "select[[:space:]]+from"

SecFilter "union[[:space:]]+from"

==== mod-security.conf 文件内容结束====

sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf

重启Apache2服务即可。

虚拟主机设置

Ubuntu 的 /etc/apache2/ 目录下有个 Apache2 的主配置文件 apache2.conf。在该文件中我们可以看到有这么一行内容:

Include /etc/apache2/sites-enabled/[^.#]*

这行的意思表明该文件包含了 /etc/apache2/sites-enabled/ 目录中文件名不含 "." 或 "#" 这两个字符的所有文件。而当我们列出该目录的文件时,发现只有一个 000-default 的软链接文件,实际连接的是 /etc/apache2/sites-available 目录中的 default 文件,不难看出该文件的文件名中并不包含 "." 或 "#"。所以这个文件当然是要被配置文件 apache2.conf 所包含的了。打开该文件,发现它其实是一个虚拟主机的配置文件,不过由于该文件中的虚拟主机为 *,所以它实际上是一个通用配置文件。如果我们要建立虚拟主机的话,那么就要把该文件改成如下所示:

#NameVirtualHost 220.201.35.7

<VirtualHost 220.201.35.7>

ServerName ubuntu.91ds.com

ServerAlias www.ubuntu.91ds.com

ServerAdmin [email protected]

DocumentRoot /var/www/ubuntu

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

<Directory /var/www/ubuntu>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

# This directive allows us to have apache2's default start page

# in /apache2-default/, but still have / go to the right place

# Commented out for Ubuntu

#RedirectMatch ^/$ /apache2-default/

</Directory>

</VirtualHost>

# ScriptAlias /cgi-bin/ /var/www/ubuntu/cgi-bin/

# <Directory "/var/www/ubunut/cgi-bin">

# AllowOverride None

# Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

# Order allow,deny

# Allow from all

# </Directory>

<VirtualHost 220.201.35.7>

ServerName linux.91ds.com

ServerAdmin [email protected]

DocumentRoot /var/www/linux

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

<Directory /var/www/linux>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

# This directive allows us to have apache2's default start page

# in /apache2-default/, but stillhave / go to the right place

# Commented out for Ubuntu

#RedirectMatch ^/$ /apache2-default/

</Directory>

# ScriptAlias /cgi-bin/ /var/www/ubuntu/cgi-bin/

# <Directory "/var/www/ubunut/cgi-bin">

# AllowOverride None

# Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

#

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。