apache安裝

源碼安裝

> tar zxf httpd-2.2.27.tar.gz
> cd httpd-2.2.27

less INSTALL 或 less README 查看幫助

./configure --prefix=/application/apache2.2.27 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite
1. make&&make install
2. yum install zlib zlib-devel -y
3. ln -s /application/apache2.2.27/ /application/apache
> /application/apache/apachectl -t #檢測語法
> /application/apache/apachectl  start #啟動服務
> /application/apache/bin/apachectl graceful #平滑啟動
> lsof -i :80 #檢查端口
或者
> ps -ef | grep httpd #檢查進程

瀏覽器訪問服務器ip地址出現(xiàn)apache頁面表示正常。

/usr/sbin/apachectl -l #查看編譯模塊
/usr/sbin/apachectl -M  #查看編譯模塊

rpm -qa httpd
rpm -ql httpd  #查看安裝目錄

DocumentRoot "/usr/local/ads"   #主站根目錄
優(yōu)化: 
Options -Indexes FollowSymLinks  #Indexes前加-號,防止暴露根目錄文件
添加站點:
<Directory "/var/html/">
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

指定訪問的首頁文件:
<IfModule dir_module>
    DirectoryIndex  index.php  index.html
</IfModule>
FQDN問題:
#ServerName www.example.com:80
ServerName 192.168.177.4:80

虛擬機主機:
部署多個站點,每個站點,希望用不同的域名和站點目錄,或者是不同的端口,不同的IP。需要虛擬主機功能。一句話,一個http服務要配置多個站點,就需要虛擬主機。

虛擬機分類:
a.基于域名*****
b.基于端口
c.基于ip

所謂的基于XX,就是靠XX來區(qū)分不同的站點。支持各種混合,N多個虛擬主機。

虛擬主機配置:
域名            站點目錄
www.sinjon.org  /var/html/www
blog.sinjon.org /var/html/blog
bbs.sinjon.org  /var/html/bbs

1. 打開/usr/local/apache2/conf/httpd.conf把下面語句前的#號去掉和添加如下內容
#Include conf/extra/httpd-vhosts.conf
<Directory "/var/html/">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

2. /usr/local/apache2/conf/extra/httpd-vhosts.conf 添加如下內容:
<VirtualHost *:80>
    ServerAdmin 630527184@qq.com
    DocumentRoot "/var/html/www"
    ServerName www.baidu.com
    ServerAlias baidu.com    #別名
    ErrorLog "logs/www-error.log"
    CustomLog "logs/www-access_log" common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin 630527184@qq.com
    DocumentRoot "/var/html/blog"
    ServerName blog.baidu.com
    ErrorLog "logs/blog-error.log"
    CustomLog "logs/blog-access_log" common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin 630527184@qq.com
    DocumentRoot "/var/html/bbs"
    ServerName bbs.baidu.com
    ErrorLog "logs/bbs-error.log"
    CustomLog "logs/bbs-access_log" common
</VirtualHost>


基于端口:
/usr/local/apache2/conf/httpd.conf 
Listen 80
Listen 8000
Listen 9000
/usr/local/apache2/conf/extra/httpd-vhosts.conf 
NameVirtualHost *:80
NameVirtualHost *:8000
NameVirtualHost *:9000
<VirtualHost *:80>
.。。。。
</VirtualHost>
<VirtualHost *:8000>
</VirtualHost>
<VirtualHost *:9000>
</VirtualHost>
apache性能調優(yōu):
1、打開/usr/local/apache2/conf/httpd.conf把下面語句前的#號去掉
#Include conf/extra/httpd-mpm.conf

2、查看apache使用的什么工作模式,下面為prefork.c模式
cd  /usr/local/apache2/bin
[root@ADSHttp2 bin]# ./apachectl -l
prefork.c

3、修改/usr/local/apache2/conf/extra/httpd-mpm.conf文件,找到preforkmodule修改
<IfModule mpm_prefork_module>
    ServerLimit  20000
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          2500
    MaxRequestsPerChild   0
</IfModule>
serverLimit最大為20000,需改大時要編譯安裝時指定,MaxClients 為最大連接進程數(shù)(客戶端連接數(shù))
配置文件 /usr/local/apache2/conf/httpd.conf 
ServerRoot "/usr/local/apache2"   #程序服務的路徑
Listen 80
ServerAdmin you@example.com   #支持人員郵箱
ServerName 172.23.2.31:80  #域名
DocumentRoot "/usr/local/ads"    #站點根目錄
<Directory "/usr/local/ads">
    Options Indexes FollowSymLinks   #Indexes 前加上-表示不列出站點文件
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html  #指定首頁文件,添加多個用空格
</IfModule>
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y%m%d_error.log 86400"
LogLevel warn   #日志級別
<IfModule log_config_module>
    LogFormat "2],[%A],[%h],[%{%Y-%m-%d %H:%M:%S}t],[http://%A%U],[%>s],[%b" common
    LogFormat "%A],[%h],[%{%Y-%m-%d %H:%M:%S}t],[http://%A%U]" referer
    LogFormat "%A],[%h],[%{%Y-%m-%d %H:%M:%S}t],[http://%A%U]" agent
    <IfModule logio_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
   <FilesMatch "\.(zip|apk)">
                    SetEnv IFILE 1
                  </FilesMatch>
    <FilesMatch "\.(zip|apk|xml|crl|cer|ico)">
                     SetEnv http_IFILE 1
                   </FilesMatch>
    <FilesMatch "\.(xml)">
                    SetEnv xml_IFILE 1
                  </FilesMatch>
    CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/ads_logs/DownloadLog/AppDownloadInfo_172.23.2.31_%Y%m%d_%H.log 3600 480" common env=IFILE
    CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/ads_logs/HttpConnectInfo/HttpConnectInfo_172.23.2.31_%Y%m%d_%H.log 3600 480" referer env=http_IFILE
    CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/ads_logs/AutoDownloadListLog/AutoDownloadListinfo_172.23.2.31_%Y%m%d_%H.log 3600 480" agent env=xml_IFILE
</IfModule>
DefaultType text/plain
Include conf/extra/httpd-mpm.conf 
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容