Linux--apache

安装apache前需要安装gcc,gcc-c++,这里apache2.2.26需要安装Apr与Apr-util.这里使用源码安装
apache安装路径:/usr/local/apache2

apache是模块化软件
安装前可以根据自己的需求制定参数安装
这里我们配置几个常用的参数
1、制定安装位置
2、制定配置文件安装
3、制定zlib库文件的位置        
**zlib库是通用的压缩库,提供inin-memory压缩和解压函数,并能检测解压出来的完整性(integrity),zlib也支持读写gzip(.gz)格式的文件
4、禁用请求的映像到用户特定目录?
5、以动态共享对象(DSO)编辑
6、基于规则的URL操作

apache安装过程
下载apache
#wget  http://www.apache.org/dist/httpd/httpd-2.2.26.tar.gz

解压apache
#tar gz httpd-2.2.26.tar.gz

#cd http-2.2.26/srclib/apr

#./configure --prefix=/usr/local/apr && make && make install

#cd ../apr-util

#./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util && make && make install

#cd httpd-2.2.26
#./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --prefix=/usr/local/apache2 \    //指定apache安装路径
>--sysconfdir=/etc/httpd \    //指定配置文件存放路径
>--with-z=/usr/local/zlib \     //指定zlib库路径,前提是要安装zlib
>--disable-userdir \              //禁用请求的映像到用户特定目录,如果需要开通个人主页功能,改参数不填,
>--enable-so \                     //以动态共享对象编译
>--enable-deflate=shared \  //缩小传输码支持
>--enable-expires=shared \  //期满头控制
>--enable-rewrite=shared \  //基于规则URL操控
>--enable-static-support      //建立一个静态链接版本的支持

#make && make install

Apache目录结构

#tree /usr/local/apache

bin              #执行文件目录。如apachetl、htpasswd

cgi-bin        #预设给一些CGI网页程序存放的路径。

error           #默认错误应答目录。

htdocs        #默认web文档根目录

icons          #提供apache预设给予一些小图标

logs          #apache日志文件存放目录

man           #apache配置文件帮助手册目录

modules     #apache动态加载模块的目录

*mod_deflate.so        #服务器输出内容前先将内容压缩后输出

*mod_rewrite.so        #服务器基于一定的规则重新URL请求

*mod_expire.so         #服务器允许通过配置文件控制http协议过期时间、缓存

#查看apache加载的静态模块

#/usr/local/apache2/bin/apachectl -l

/etc/http/                     #apache主配置目录conf.conf

*mine.type                    #类型gif、png、text等

/etc/httpd/extra           #多个辅助配置文件*.conf

httpd-autoindex.conf     #配置目录列表

httpd-languages.conf    #配置语言支持

httpd-info.conf             #配置服务器状态与信息显示

httpd-mpm.conf           #配置控制多路处理模块

httpd-ssl                     #配置SSL模块

httpd-userdir.conf        #配置用户主目录,高版本不支持

httpd-vhosts.conf         #设置虚拟主机

httpd-multilang-errordoc.conf #配置多语言错误应答

httpd-dav.conf             #配置dav配置模块

httpd-default.conf        #配置与apache自身相关,优化作用

httpd-manual.conf        #配置文档访问辅助配置文件

apache配置文件中语法
1、#     注释
2、文件每一行包含一个指令
3、\      表示续行 与下行间不能有其他任何字符
4、指令名 参数        如:Listen 80
5、配置文件组的指令名是不区分大小写
6、指令的参数是区分大小写
7、空白行或指令前的空白都被忽略(调整格式用)
8、目录分隔符用 "/"

检查配置是否错误
#/usr/local/apache2/bin/apachectl configtest
#/usr/local/apache2/bin/apachectl -t /etc/httpd/httpd.conf
//以上两种都可以检查配置文件是否错误.

启动apache脚本
#/usr/local/apache2/bin/apachectl [-k start|restart|graceful|stop]    #开始|重启|温和重启|停止,
如果网站正在运行可以使用"apachectl -k graceful"重启httpd后台

apache服务器的参数设置
1、主配置文件
#cat /etc/httpd/conf/httpd.conf
ServerRoot "/usr/local/apache2"            //指定apache安装的根目录,服务器基础目录
Listen 80                                              //apache监听端
语法:Listen [端口|IP地址:端口] [协议]
如:Listen 192.168.1.1:80
     Listen 192.168.1.1:8080
     Listen 192.168.0.1:80 https

Listen [1992:db8:00a:220f:fe99:fea7]:80

LoadModule php5_module        modules/libphp5.so       //加载模块。
语法:LoadModule 模块名称 模块文件路径全名

如:加载mod_rewrite.so模块

LoadModule rewrite_module modules/mod_rewrite.so

#apache默认将已经编译的DSO

#(Dynamic Shared Object)模块存放于apache安装目录子目录modules中

User daemon

Group daemon               //apache进程执行者和执行者所属的用户组,如果要用UID或者GID,必须在前加#
语法:User [用户名/#UID]

Group [用户组/#GID]

#最好单独建立一个访问apache的用户,不要使用root用户或者nobody,nobody

#root权限表达、其它服务也会使用nobody用户

ServerAdmin [email protected]        //指定web管理员的邮箱地址,这个地址会出现在系统连接出错的时候,可以便于访问者能够及时通知web管理员

ServerName www.example.com:80      //设置了服务器用于辨识自己的主机名和端口号。就是说它后面的值是机器自己的主机名,可以带端口号。这主要用于创建重定向URL。比如,一个放置web服务器的主机名为simple.example.com ,但同时有一个DNS别名www.example.com 。而您希望web服务器更显著一点,您可以使用如下的指令:[ServerName www.example.com:80]

DocumentRoot "/usr/local/apache2/htdocs"           //文档存放的位置,在未配置虚拟主机或虚拟目录或者别名的情况下,用户通过http访问w#eb服务器,所有的输出资料文件都存放在这里。

语法:DocumentRoot [目录绝对路径]

ErrorLog "logs/error_log"                                        //指定记录apache运行过程中所产生的错误信息的日志文件位置。

语法:ErrorLog [文件的绝对路径或者相对路径]

LogLevel warn                                                        //指定Errorlog文件中记录的错误信息级别

语法 LogLevel [debug/info/notice/warm/error/crit/alert/emerg]        //参数debug最详细,emerg最简单,建议warm

DirectoryIndex index.html index.php                         //默认的访问的索引,如果/usr/local/apache2/htdocs下什么目录也没有也可以指定其他目录下

如:DirectoryIndex index.html index.php /php-bin/index.php

2、辅助配置文件

httpd-default.conf                //配置与apache自身相关,优化作用。

Timeout 300                       //默认超时时间300s

KeepAlive On                       //开启建立持久链接多次请求。

MaxKeepAliveRequests 100   //启用持久链接时,对某个请求连接数。

KeepAliveTimeout 5             //启用持久链接时,对某个请求超时秒数。

httpd-mpm.conf                   //多路处理模块配置,不同的操作系统用不同的模块,这里是linux使用多路模块,这功能必须在配置的时候进行编译。

StartServers    5                  //设置apache启动时默认的进程数

MinSpareServers    5           //默认子进程用完后,最少的空闲子进程

MaxSpareServers    10        //空闲子进程最大数

MaxClients    150                //最大客户端,同一时间服务器允许连接数

MaxRequestsPerChild    0    //子进程在生成期内,最大请求。0表示永不

apache服务器配置段(容器)

配置段(容器)

<>     //开始
</>    //结束

常见例子:

开通个人主页(编译时需要把--disable-userdir选项去掉)
#vi /etc/httpd/httpd.conf
#UserDir disable                                                            //注释掉这行,如果没有则不管
UserDir public_html                                                       //设置用户个人主页目录为public_html

<Directory /home/*/public_html>

AllowOverride FileInfo AuthConfig Limit Indexes

Options MultiViews -Indexes SymLinksIfOwnerMatch IncludesNoExec

<Limit GET POST OPTIONS PROPFIND>

Order allow,deny

Allow from all

</Limit>

<LimitExcept GET POST OPTIONS PROPFIND>

Order deny,allow

Deny from all

</LimitExcept>

</Directory>
#useradd test
#mkdir /home/test/public_html
#echo "This is test homepage!" > /home/test/public_html/index.html
#chmod o+x /home/*
**假设web服务器地址为192.168.1.254,则输入http://192.168.1.254/~test即可访问个人主页

配置虚拟目录

a、设置虚拟目录,并启用认证功能

Alias /test "/web/test"

<Directory>

AuthType Basic

AuthUserFile /web/test/passwd

AuthName "welcome my homepage"

Require valid-user

AllowOverride None

Order allow,deny

Allow from all

</Directory>

**保存重启后使用一下命令
#/usr/local/apache/bin/htpasswd /web/test/passwd zhuxy            
**设置zhuxy访问密码后,才可以使用认证登陆

b、设置虚拟目录,并只允许某个IP访问

Alias /test1 /web/test1

<Direcotry /web/test1>

Options Indexes Multiviews

Order allow,deny

Allow from 192.168.1.50

</Directory>
**只允许IP为192.168.1.50访问

配置虚拟主机
建立基于IP地址虚拟主机192.168.1.2、192.168.1.3目录分别为/var/www/ip2和/var/www/ip3

<VirtualHost 192.168.1.2>

DocumentRoot /var/www/ip2

ServerName 192.168.1.2:80

</VirtualHost>

<VirtualHost 192.168.1.3>

DocumentRoot /var/www/ip3

ServerName 192.168.1.3

</VirtualHost>

假设http服务器ip是192.168.1.254端口是80 ,建立基于域名的虚拟主机

NameVirtual 192.168.1.254:80

<VirtualHost 192.168.1.254:80>

ServerName www.mlx.com

DocumentRoot "/var/www/test1"

</VirtualHost>

<VirtualHost 192.168.1.254:80>

ServerName www.njit.edu.cn

DocumentRoot "/var/www/test2"

</VirtualHost>

复杂点的配置虚拟主机
a、基于IP地址的虚拟主机

需在同一台主机上绑定多个IP,在每个IP上建立一个虚拟机。由于IP缺乏,不常用.

例题:

ServerAdmin [email protected]

DocumentRoot "/home/zhuxyid"

ServerName www.zhuxyid.com

ServerAlias zhuxyid.com

ErrorLog "logs/zhuxyid_error"

CustomLog "logs/zhuxyid-access_log" common

ServerAdmin [email protected]

DocumentRoot "/home/zhu"

ServerName www.zhu.com

ServerAlias zhu.com

ErrorLog "logs/zhu_error"

CustomLog "logs/zhu-access_log" common

ServerAdmin [email protected]

DocumentRoot "/home/nihao"

ServerName www.nihao.com

ServerAlias nihao.com

ErrorLog "logs/nihao_error"

CustomLog "logs/nihao-access_log" common

Options Indexes FollowSymLinks

AllowOverride None

Ordel allow,deny

Allow from all

使用ip区分网站

b、基于主机名的虚拟主机

所有虚拟主机都使用同一个IP,通过不同的域名来表示不同虚拟主机

例题:

NameVirtualHost *:80

DocumentRoot "/usr/local/apache2/htdocs"

ServerName *

ServerAdmin [email protected]

DocumentRoot "/home/zhuxyid"

ServerName www.zhuxyid.com

ServerAlias zhuxyid.com

ErrorLog "logs/zhuxyid_error"

CustomLog "logs/zhuxyid-access_log" common

ServerAdmin [email protected]

DocumentRoot "/home/zhu"

ServerName www.zhu.com

ServerAlias zhu.com

ErrorLog "logs/zhu_error"

CustomLog "logs/zhu-access_log" common

ServerAdmin [email protected]

DocumentRoot "/home/nihao"

ServerName www.nihao.com

ServerAlias nihao.com

ErrorLog "logs/nihao_error"

CustomLog "logs/nihao-access_log" common

Options Indexes FollowSymLinks

AllowOverride None

Ordel allow,deny

Allow from all

使用域名区分网站

Linux--apache,布布扣,bubuko.com

时间: 2024-10-01 05:24:51

Linux--apache的相关文章

How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu

About LAMP LAMP stack is a group of open source software used to get web servers up and running. The acronym stands for Linux, Apache, MySQL, and PHP. Since the virtual private server is already running Ubuntu, the linux part is taken care of. Here i

Ubuntu下(Linux+Apache+MYSQL+PHP, LAMP)环境搭建

最近开始玩PHP,于是试着搭建一下开发环境并做个记录,以备日后再使用起来方便可查. 第一步 确保软件包是最新的 <span style="font-size: 18px;">sudo apt-get update</span> 第二步 安装Apache2 <span style="font-size: 18px;">sudo apt-get install apache2</span> 安装之后测试:在浏览器中打开 h

Lamp(linux+apache+mysql+php)环境搭建

Lamp(linux+apache+mysql+php)环境搭建 1.安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sudo/etc/init.d/apache2 restart,在浏览器中输入http://localhost或者http://127.0.0.1,会看到"It works!"说明apache成功安装. 2.安装php:sudoapt-get install libapache2-mod-ph

Linux Apache error 日志 提示[warn] child process 7751 still did not exit, sending a SIGTERM

Apache吃空内存,频繁宕机 在部署一套内网测试环境时,频繁宕机,开机后不断的吃内存,重启apache之后内存占用会不停的上涨,直到swap用完,直到死机,由于是内网环境,服务器并发和压力都很小. 查看apache错误日志,报大量类似错误: [Tue Feb 14 14:49:28 2012] [warn] child process 7751 still did not exit, sending a SIGTERM [Tue Feb 14 14:49:30 2012] [error] ch

linux apache 自动监护脚本

1 首先安装curl yum install curl 2 编写shell vi restart_apache.sh 写入一下内容 #!/bin/bashURL="http://127.0.0.1/"curlit(){curl --connect-timeout 35 --max-time 40 --head --silent "$URL" | grep '200'} doit(){if ! curlit; thensleep 20top -n 1 -b >&

Ubuntu下的LAMP(Linux+Apache+MySQL+PHP) 开发环境架设

LAMP在业界是一个非常流行的词语,这4个字母分别代表Linux,Apache,MySQL和PHP.LAMP以其高效.灵活的特性已经成为中小企业的首选. 以前介绍一种迅速搭建LAMP的方式. 1 在Ubuntu上打开终端,输入 sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server 一口气就可以下载(apache2,php5,mysql)三个工具 2 安装MySQL的时候,会让你设定一个Root管理员的密码

Linux + apache + php + mysql

linux + apache 2.4.4 + php配置 参考文章 参考文章 参考文章

CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境

CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境一. 系统环境:Linux系统版本: CentOS release 6.5Apache版本: httpd-2.2.24PHP 版本: php-5.6.11 二.安装前准备: 1.查看是否安装GCC ,GCC-C++编译器,如果没有则进行安装: 查看是否安装的命令: #gcc –v 若未安装在服务器联网情况下可以使用下列命令安装: #yum install gcc #yum install gcc-c++2.

LAMP环境(linux+apache+mysql+php)配置

1.理论部分 LAMP 是Linux Apache MySQL PHP的简写,其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行php的脚本语言. 本文是测试Apache与PHP结合和创,搭建方法采用非常标准手法(开启SELinux),初学者可以直接使用. 2.实验部分 2.1.实验环境 lampSer: hostname=lamp ipaddress=10.168.0.170 client: hostnmae=client ipaddress=10.168

Linux apache开启虚拟主机伪静态.htaccess

打开apache配置文件 /etc/httpd/conf/httpd.conf 查找"#LoadModule rewrite_module modules/mod_rewrite.so" 去掉前面的#号,如果没有的话就添加这句话,记得不要带#号. 允许在任何目录中使用".htaccess"文件,将httpd.conf配置文件内这句"AllowOverride"改成"All"(默认为"None"): Allo