編譯安裝httpd並配置伺服器
阿新 • • 發佈:2018-11-03
實驗需求
一.編譯安裝httpd
二.配置三種不同風格的虛擬主機
實驗步驟
一.編譯安裝httpd
①.安裝開發環境
[[email protected] ~]# yum -y groupinstall "Development Tools"
[[email protected] ~]# yum -y install openssl-devel pcre-devel expat-devel libtool
②.安裝apr,apr-utils
[[email protected] opt]# tar -xf apr-1.6.3.tar.bz2 apr-util-1.6.1.tar.bz2 httpd-2.4.34.tar.bz2
[ [email protected] opt]# ls
apr-1.6.3 apr-util-1.6.1 httpd-2.4.34
apr-1.6.3.tar.bz2 apr-util-1.6.1.tar.bz2 httpd-2.4.34.tar.bz2
[[email protected] opt]# cd apr-1.6.3/
[[email protected] apr-1.6.3]# vim configure
# $RM "$cfgfile"
[[email protected] apr-1.6.3]# ./configure --prefix=/usr/local/apr
[ [email protected] apr-1.6.3]# make && make install
[[email protected] opt]# cd apr-util-1.6.1/
[[email protected] apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[[email protected] apr-util-1.6.1]# make && make install
③.安裝httpd
[[email protected] apr-util-1.6.1]# cd /opt/httpd-2.4.34/
[[email protected] httpd-2.4.34]# ./configure --prefix=/usr/local/apache \
> --sysconfdir=/etc/httpd123 \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util/ \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork
[[email protected] httpd-2.4.34]# make && make install
二.配置三種不同風格的虛擬主機
1.相同ip,不同埠
①.修改配置檔案/etc/httpd123/httpd.conf,新增下面的內容
[[email protected] httpd-2.4.34]# vim /etc/httpd123/httpd.conf
Listen 8000
erverName www.example.com:80
<VirtualHost 172.16.11.13:80>
ServerName www.xixi.com
DocumentRoot "/usr/local/httpd/htdocs/xixi"
ErrorLog "/usr/local/httpd/logs/error1_log"
CustomLog "/usr/local/httpd/logs/access1_log" combined
<Directory /usr/local/httpd/htdocs/xixi>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 172.16.11.13:8000>
ServerName www.hehe.com
DocumentRoot "/usr/local/httpd/htdocs/hehe"
ErrorLog "/usr/local/httpd/logs/error2_log"
CustomLog "/usr/local/httpd/logs/access2_log" combined
<Directory /usr/local/httpd/htdocs/hehe>
Require all granted
</Directory>
</VirtualHost>
②.為了使用方便,將啟動命令apachectl路徑寫入PATH路徑
[[email protected] httpd-2.4.34]# vim /etc/profile.d/httpd.sh
export PATH=/usr/local/httpd/bin:$PATH
驗證結果
①.檢視有沒有語法錯誤,沒有就啟動服務
[[email protected] httpd-2.4.34]# httpd -t
Syntax OK
[[email protected] httpd-2.4.34]# apachectl restart
2.不同ip,相同埠
①.修改/etc/httpd123/http.conf配置檔案
[[email protected] httpd-2.4.34]# vim /etc/httpd123/httpd.conf
<VirtualHost 172.16.11.13:80>
ServerName www.xixi.com
DocumentRoot "/usr/local/httpd/htdocs/xixi"
ErrorLog "/usr/local/httpd/logs/error1_log"
CustomLog "/usr/local/httpd/logs/access1_log" combined
<Directory /usr/local/httpd/htdocs/xixi>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 172.16.11.14:80>
ServerName www.hehe.com
DocumentRoot "/usr/local/httpd/htdocs/hehe"
ErrorLog "/usr/local/httpd/logs/error2_log"
CustomLog "/usr/local/httpd/logs/access2_log" combined
<Directory /usr/local/httpd/htdocs/hehe>
Require all granted
</Directory>
</VirtualHost>
"/etc/httpd123/h
②.給網絡卡新增一個ip
[[email protected] httpd-2.4.34]# ip addr add 172.16.11.14/24 dev ens33
[[email protected] httpd-2.4.34]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:56:9d:42 brd ff:ff:ff:ff:ff:ff
inet 172.16.11.13/24 brd 172.16.11.255 scope global ens33
valid_lft forever preferred_lft forever
inet 172.16.11.14/24 scope global secondary ens33
valid_lft forever preferred_lft forever
inet6 fe80::462d:9cc2:ac18:98d0/64 scope link
valid_lft forever preferred_lft forever
結果驗證
3.相同ip相同埠,不同域名
①.修改配置檔案
[[email protected] httpd-2.4.34]# vim /etc/httpd123/httpd.conf
<VirtualHost 172.16.11.13:80>
ServerName www.xixi.com
DocumentRoot "/usr/local/httpd/htdocs/xixi"
ErrorLog "/usr/local/httpd/logs/error1_log"
CustomLog "/usr/local/httpd/logs/access1_log" combined
<Directory /usr/local/httpd/htdocs/xixi>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 172.16.11.13:80>
ServerName www.hehe.com
DocumentRoot "/usr/local/httpd/htdocs/hehe"
ErrorLog "/usr/local/httpd/logs/error2_log"
CustomLog "/usr/local/httpd/logs/access2_log" combined
<Directory /usr/local/httpd/htdocs/hehe>
Require all granted
</Directory>
</VirtualHost>
驗證結果
①.使用windows測試,修改C:/Windows/System3/drivers/etc/hosts檔案,需要用到工具notepad++,可以手動下載,新增以下兩條
172.16.11.13 www.xixi.com
172.16.11.13 www.hehe.com
報錯解決
一.編譯安裝httpd,make時候報錯
collect2: error: ld returned 1 exit status
make[2]: [htpasswd] 錯誤 1
make[2]: 離開目錄“/usr/local/src/httpd-2.4.33/support”
make[1]: [all-recursive] 錯誤 1
make[1]: 離開目錄“/usr/local/src/httpd-2.4.33/support”
make: [all-recursive] 錯誤 1
解決
將apr和apr-util解壓出來的包拷貝到httpd解壓出來的包下面的srclib目錄下面,需要新建arp和apr-util,拷貝到裡面,然後./configure最後加上-with-included-apr這一引數
cp -r apr-1.6.3 /usr/local/src/httpd-2.4.33/srclib/apr
cp -r apr-util-1.6.1 /usr/local/src/httpd-2.4.33/srclib/apr-util
./configure --prefix=/usr/local/apache \
> --sysconfdir=/etc/httpd123 \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util/ \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork
> --with-included-apr