1. 程式人生 > >編譯安裝httpd並配置伺服器

編譯安裝httpd並配置伺服器

實驗需求
一.編譯安裝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