1爪膊、APR
APR(Apache portable Run-time libraries,Apache可移植運(yùn)行庫(kù))主要為上層的應(yīng)用程序提供一個(gè)可以跨越多操作系統(tǒng)平臺(tái)使用的底層支持接口庫(kù)。也就是apache軟件如果基于APR接口開發(fā),就能滿足不同操作系統(tǒng)的要求,可以安裝在不同的操作系統(tǒng)上磁携,比如linux、windows等良风,這樣就不用每個(gè)操作系統(tǒng)都開發(fā)一個(gè)apache軟件谊迄,只要這個(gè)軟件滿足ARP接口就可以。這個(gè)和ABI和API接口很類似烟央。
ABI接口是應(yīng)用程序和不同操作系統(tǒng)之間的底層接口统诺,只要應(yīng)用程序基于ABI接口開發(fā),就可以在不同的操作系統(tǒng)上安裝使用疑俭。
API是源代碼和庫(kù)之間的接口粮呢,只要源代碼滿足API接口,就可以在支持API接口的操作系統(tǒng)上編譯安裝。
所以編譯安裝httpd-2.4時(shí)要安裝apr才可以在linux操作系統(tǒng)中使用啄寡。
2豪硅、centos7中源碼編譯安裝httpd-2.4
1、創(chuàng)建apache賬號(hào)
useradd -r -d /app/website1/ -s /sbin/nologin apache -d是指定存放數(shù)據(jù)的目錄挺物,也就是web網(wǎng)站的主目錄
如果有就不用創(chuàng)建了
2懒浮、安裝apr
rpm -q apr ---查看一下是否安裝了,并查看版本是否滿足1.4以上识藤,因?yàn)榘惭bhttpd-2.4砚著,apr必須滿足1.4以上版本,如果不滿足要編譯安裝apr
yum install apr
3痴昧、解包和安裝開發(fā)包組
tar -xvf httpd-2.4.27.tar.bz2
yum groupinstall " Development Tools"
4稽穆、執(zhí)行configure腳本,并指定存放目錄和啟用的特性
cd /app/httpd-2.4.27/
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
在執(zhí)行的過程中會(huì)報(bào)錯(cuò)必須安裝apr-devel赶撰、apr-util-devel舌镶、pcre-devel、openssl-devel包才可以豪娜,安裝好后重新執(zhí)行configure腳本
5乎折、安裝
make -j 4 &&make install
6、vim /etc/profile.d/env.sh
export PATH=/app/httpd24/bin:$PATH --這里export可以不寫侵歇,因?yàn)镻ATH變量之前已經(jīng)被聲明過是環(huán)境變量了
可以通過如下命令查看是否之前被聲明為環(huán)境變量
export |grep "PATH"或者env |grep "PATH"
7、ps aux|grep "httpd" ---發(fā)現(xiàn)httpd程序的用戶不是apache吓蘑,可以修改一下配置文件
vim /app/httpd24/conf/httpd.conf
User apache
Group apache
不改也可以惕虑,只不過httpd程序的用戶習(xí)慣上用apache
8、vim /app/httpd24/conf/httpd.conf
DocumentRoot "/app/httpd24/htdocs" ---發(fā)現(xiàn)默認(rèn)的主目錄是這個(gè)
ll /app/httpd24/htdocs/ -d ----發(fā)現(xiàn)默認(rèn)所有人對(duì)這個(gè)目錄都有讀和執(zhí)行權(quán)限磨镶,這樣不安全
chmod o-rx htdocs/
setfacl -m apache:rx htdocs/ ---修改一下這個(gè)目錄的權(quán)限溃蔫,讓只有apache用戶才能對(duì)這個(gè)目錄具有讀和執(zhí)行權(quán)限,因?yàn)檫@個(gè)程序運(yùn)行的時(shí)候用戶是apache琳猫,當(dāng)你去訪問一個(gè)頁(yè)面的時(shí)候伟叛,是apache用戶在訪問這個(gè)目錄下index.html文件
9、vim /etc/rc.d/rc.local ---此文件是系統(tǒng)開啟時(shí)運(yùn)行的最后一個(gè)腳本文件脐嫂,可以把開機(jī)啟動(dòng)的命令放到這個(gè)文件里统刮,這樣就不用寫服務(wù)腳本了,但centos7中默認(rèn)這個(gè)文件時(shí)沒有執(zhí)行權(quán)限的账千,要加上執(zhí)行權(quán)限才可以
/app/httpd24/bin/apachectl start ---這樣這個(gè)服務(wù)就會(huì)開機(jī)啟動(dòng)
chmod a+x /etc/rc.d/rc.local
10侥蒙、啟動(dòng)服務(wù)
apachectl start
11、創(chuàng)建一個(gè)虛擬主機(jī)
mkdir /app/website1
echo /app/website1 > /app/website1/index.html
vim /app/httpd24/conf/httpd.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf ---發(fā)現(xiàn)主配置文件中并不是像rpm安裝的時(shí)候一樣Include conf.d/*.conf匀奏,而是分開寫的鞭衩,所以在主配置文件中也要定義一個(gè).conf文件用于創(chuàng)建虛擬主機(jī)的配置文件,當(dāng)然在這個(gè)主配置文件中直接創(chuàng)建也可以,只是將來(lái)不好管理论衍,如果每個(gè)人都在主配置文件里修改會(huì)很亂
Include conf/extra/vhost.conf ---在主配置文件最后增加一行
vim /app/httpd24/conf/extra/vhost.conf
<virtualhost *:80>
documentroot "/app/website1"
servername www.1.com
<directory "/app/website1">
require all granted
</directory>
</virtualhost *:80>
3瑞佩、在cenots6中編譯安裝httpd-2.4
方法一
1、 下載安裝包坯台,并解壓縮
cd /app
tar xvf apr-1.6.2.tar.gz
tar -xvf apr-util-1.6.0.tar.gz
tar -xvf httpd-2.4.27.tar.bz2
2炬丸、 yum groupinstall "development tools"
3、 安裝apr捂人,必須為1.4版本以上
cd apr-1.6.2/
./configure --prefix=/app/apr
make -j 4 &&make install
4御雕、 安裝apr-util,必須為1.4版本以上
cd apr-util-1.6.0/
./configure --prefix=/app/apr-util --with-apr=/app/apr ---期間要安裝expat-devel包
make -j 4 &&makeinstall
5滥搭、 安裝httpd
useradd -r -d /user/website1/ -s /sbin/nologin apache ---如果有就不用創(chuàng)建了
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/app/apr/ --with-apr-util=/app/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork ---期間要安裝pcre-devel酸纲、openssl-deve包
make -j 4 && make install
6、 進(jìn)入配置文件修改主目錄和用戶及組
vim /app/httpd24/conf /httpd.conf
DocumentRoot "/app/website1”
</directory “/app/website1”>
Require all granted
</directory>
User apache
Group apache
7瑟匆、 修改PATH變量
vim /etc/profile.d/env.sh
export PATH=/app/httpd24/bin:$PATH
8闽坡、 創(chuàng)建服務(wù)腳本,可以把別的機(jī)器的拷貝過來(lái)修改一下
vim /etc/rc.d/init.d/httpd
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
chkconfig --add httpd
chkconfig --list httpd
9愁溜、 創(chuàng)建網(wǎng)頁(yè)文件疾嗅,測(cè)試就可以了
Echo /app/website1 > /app/website1/index,html
方法二
cp -av apr-1.6.2 httpd-2.4.27/srclib/apr
cp -av apr-util-1.6.0 httpd-2.4.27/srclib/apr-util
cd /app/httpd-2.4.27/
./configure --prefix=/usr/local/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make -j 4 && make install