1.1 apache簡介
apache當前全世界排名點擊這里
1.1.1 當前互聯網主流web服務說明
靜態服務
- apache --->中小型靜態web服務的主流,web服務器中的老大哥
- nginx --->大型新興網站靜態web服務主流,web服務器中的出生牛犢
- lighttpd --->靜態web服務不溫不火,逐漸被淘汰的意味,社區不活躍,靜態效率很高
動態服務
- IIS --->微軟的web服務器(asp,aspx)
- tomcat --->中小型企業動態web服務主流,互聯網java容器主流(jsp,do)
- resin --->大型動態web服務器主流,互聯網java容器主流(jsp,do)
- php(fcgi) --->大中小網站,php程序的解析容器
配合apache,php不是守護進程,而是mod_php5.so(module)
配合nginx,lighttpd,php守護進程模式,FCGI模式
1.1.2 apache介紹
- Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,是目前世界上使用最廣泛的一種web server,它以跨平台,高效和穩定而聞名,可以運行在幾乎所有廣泛使用的計算機平台上。Apache的特點是簡單、速度快、性能穩定,並可做代理服務器來使用。
- Apache是用C語言開發的基於模塊化設計的web應用,總體上看起來代碼的可讀性高於php代碼,它的核心代碼並不多,大多數的功能都被分割到各種模塊中,各個模塊在系統啟動時按需載入。
- 支持SSL技術,支持多個虛擬主機。Apache是以進程的Prefork模式(還有基於線程的Worker模式)為基礎的結構,進程要比線程消耗更多的系統開支,不太適合於多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節點而不是增加處理器
1.1.3 apahce的特點及應用場合
1.1.3.1 apahce的特點
功能強大,配置簡單,速度快,應用廣泛,性能穩定可靠,並可做代理服務器或負載均衡來使用
1.1.3.2 apache的應用場合
- 使用apache運行靜態html網頁,圖片(處理靜態小文件能力不及nginx)
- 使用apache結合php引擎運行php,perl等程序,LAMP被稱為經典組合
- 使用apache結合tomcat/redis運行jsp,java等程序,成為中小企業的首選
- 使用apache做代理,負載均衡,rewrite規則過濾等待
1.2 安裝apache
1.2.1 系統環境
[root@apache ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@apache ~]# uname -a
Linux apache 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@apache ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@apache ~]# getenforce
Disabled
[root@apache ~]# rpm -qa|grep httpd #檢查是否安裝apache
1.2.2 安裝apache
1.2.2.1 yum安裝
yum install httpd
systemctl enable httpd
systemctl start httpd
1.2.2.2 編譯安裝
安裝依賴
[root@apache ~]# yum -y install gcc gcc-c++ apr-devel apr-util-devel pcre pcre-devel openssl openssl-devel zlib-devel
[root@apache ~]# mkdir /server/tools -p
[root@apache ~]# cd /server/tools
[root@apache tools]# wget http://archive.apache.org/dist/httpd/httpd-2.4.6.tar.gz
[root@apache tools]# tar xf httpd-2.4.6.tar.gz
[root@apache tools]# cd httpd-2.4.6/
[root@apache httpd-2.4.6]#
./configure \
--prefix=/application/apache2.4.6 \ #安裝目錄
--enable-deflate \ #壓縮
--enable-expires \ #瀏覽器緩存
--enable-headers \ #http頭部
--enable-modules=most \ #激活大多數模塊
--enable-so \
--with-mpm=worker \ #進程模式,並發大一點
--enable-rewrite #偽靜態
[root@apache httpd-2.4.6]# make
[root@apache httpd-2.4.6]# make install
[root@apache httpd-2.4.6]# echo $?
0 返回值為0說明成功
[root@apache httpd-2.4.6]# ln -s /application/apache2.4.6/ /application/apache #創建軟連接
[root@apache httpd-2.4.6]# /application/apache/bin/apachectl start #啟動apache
[root@apache httpd-2.4.6]# netstat -lntup|grep 80 #查看端口是否啟動
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8930/httpd
瀏覽器訪問ip地址就行:
能夠看到It works!說明安裝完成!恭喜你,趕緊使用apache吧
1.3 apache目錄結構
命令 | 作用 |
---|---|
apache | 服務安裝成功后,主要的目錄結構如下 |
bin | 程序命令目錄[apache執行文件的目錄如apachectl,htpassed |
build | |
cgi-bin | 預設給一些CGI網頁程序存放的目錄 |
conf | 配置文件目錄 |
error | 默認錯誤應答目錄 |
htdocs | 編譯安裝時站點目錄,web根目錄 |
icons | 提供apache預設給予的圖標 |
include | |
lib | |
logs | 默認日志文件 |
man | 幫助手冊所在目錄 |
manua | |
modules | 動態加載模塊目錄。例如phpmemcache編譯后的模塊在這里面 |
左對齊 | 居中 | 右對齊 |
---|---|---|
col 3 is | some wordy text | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |