1. 程式人生 > >【CentOS 7LAMP架構3】,Apache安裝與配置#

【CentOS 7LAMP架構3】,Apache安裝與配置#

shallow丿ove


安裝Apache

  • Apache是一個基金會的名字,httpd才是我們要安裝的軟體包,早期它的名字就叫apache
  • Apache官網www.apache.org
  • wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
  • wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
  • wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
  • apr和apr-util是一個通用的函式庫,它讓httpd可以不關心底層的作業系統平臺,可以很方便地移植(從linux移植到Windows)
  • tar zxvf httpd-2.4.29.tar.gz
  • tar zxvf apr-1.6.3.tar.gz
  • tar zxvf apr-util-1.6.1.tar.bz2
  • cd /usr/local/src/apr-1.6.3
  • ./configure --prefix=/usr/local/apr
  • make && make install
  • cd /usr/local/src/apr-util-1.6.1
  • ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  • make && make install
  • cd /usr/local/src/httpd-2.4.29
  • ./configure \ #這裡的反斜槓是脫義字元,加上它我們可以把一行命令寫成多行 --prefix=/usr/local/apache2.4
    --with-apr=/usr/local/apr
    --with-apr-util=/usr/local/apr-util
    --enable-so
    --enable-mods-shared=most
  • make && make install
  • ls /usr/local/apache2.4/modules
  • /usr/local/apache2.4/bin/httpd -M #檢視載入的模組

下載

[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
--2017-12-16 05:48:11--  http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
Resolving mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.177, 2402:f000:1:416:101:6:6:177
Connecting to mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.177|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8638793 (8.2M) [application/octet-stream]
Saving to: ‘httpd-2.4.29.tar.gz’

100%[=====================================================>] 8,638,793   78.8KB/s   in 65s    

2017-12-16 05:49:18 (129 KB/s) - ‘httpd-2.4.29.tar.gz’ saved [8638793/8638793]

[root@localhost src]# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
--2017-12-16 05:49:21--  http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
Resolving mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.177, 2402:f000:1:416:101:6:6:177
Connecting to mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.177|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1072661 (1.0M) [application/octet-stream]
Saving to: ‘apr-1.6.3.tar.gz’

100%[=====================================================>] 1,072,661   98.1KB/s   in 12s    

2017-12-16 05:49:34 (85.3 KB/s) - ‘apr-1.6.3.tar.gz’ saved [1072661/1072661]

[root@localhost src]# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
--2017-12-16 05:49:37--  http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
Resolving mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.177, 2402:f000:1:416:101:6:6:177
Connecting to mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.177|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 428595 (419K) [application/octet-stream]
Saving to: ‘apr-util-1.6.1.tar.bz2’

100%[=====================================================>] 428,595      218KB/s   in 1.9s   

2017-12-16 05:49:39 (218 KB/s) - ‘apr-util-1.6.1.tar.bz2’ saved [428595/428595]

[root@localhost src]# tar zxvf httpd-2.4.29.tar.gz
	拆包解壓過程
	.
	.
	.
[root@localhost src]# tar zxvf apr-1.6.3.tar.gz
	拆包解壓過程
	.
	.
	.
[root@localhost src]# bzip2 -d apr-util-1.6.1.tar.bz2
[root@localhost src]# tar xvf apr-util-1.6.1.tar
	拆包過程
	.
	.
	.

首先編譯和安裝apr

[root@localhost src]# cd apr-1.6.3/
[root@localhost apr-1.6.3]# ./configure --prefix=/usr/local/apr
	編譯過程
	.
	.
	.
[root@localhost apr-1.6.3]# echo $?
0
[root@localhost apr-1.6.3]# make && make install
	編譯過程
	.
	.
	.

再編譯和安裝apr-util

[root@localhost apr-1.6.3]# ls /usr/local/apr
bin  build-1  include  lib
[root@localhost apr-util-1.6.1]# cd ../apr-util-1.6.1/
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
	#編譯過程
	.
	.
	.
[root@localhost apr-1.6.3]# make && make install
	#編譯過程
	.
	.
	.

出現的問題

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory 解決的方法:yum install -y expat-devel

[root@localhost ~]# yum install expat-devel
Loaded plugins: fastestmirror
base                                                                    | 3.6 kB  00:00:00     
epel/x86_64/metalink                                                    | 7.2 kB  00:00:00     
epel                                                                    | 4.7 kB  00:00:00     
extras                                                                  | 3.4 kB  00:00:00     
updates                                                                 | 3.4 kB  00:00:00     
(1/3): extras/7/x86_64/primary_db                                       | 145 kB  00:00:01     
epel/x86_64/primary_db         FAILED                                          B  00:00:44 ETA 
http://mirror2.totbb.net/epel/7/x86_64/repodata/c7883ea243ee401d46c76adddb9d4b46d4cbe7d0f4fbb7f2f71d24ecaececa4a-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
(2/3): epel/x86_64/updateinfo                                           | 857 kB  00:00:02     
(3/3): epel/x86_64/primary_db                                           | 6.1 MB  00:00:14     
Loading mirror speeds from cached hostfile
 * epel: mirror01.idc.hinet.net
Resolving Dependencies
--> Running transaction check
---> Package expat-devel.x86_64 0:2.1.0-10.el7_3 will be installed
--> Processing Dependency: expat = 2.1.0-10.el7_3 for package: expat-devel-2.1.0-10.el7_3.x86_64
--> Running transaction check
---> Package expat.x86_64 0:2.1.0-8.el7 will be updated
---> Package expat.x86_64 0:2.1.0-10.el7_3 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
 Package                 Arch               Version                     Repository        Size
===============================================================================================
Installing:
 expat-devel             x86_64             2.1.0-10.el7_3              base              57 k
Updating for dependencies:
 expat                   x86_64             2.1.0-10.el7_3              base              81 k

Transaction Summary
===============================================================================================
Install  1 Package
Upgrade             ( 1 Dependent package)

Total download size: 137 k
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): expat-devel-2.1.0-10.el7_3.x86_64.rpm                            |  57 kB  00:00:00     
(2/2): expat-2.1.0-10.el7_3.x86_64.rpm                                  |  81 kB  00:00:00     
-----------------------------------------------------------------------------------------------
Total                                                          208 kB/s | 137 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : expat-2.1.0-10.el7_3.x86_64                                                 1/3 
  Installing : expat-devel-2.1.0-10.el7_3.x86_64                                           2/3 
  Cleanup    : expat-2.1.0-8.el7.x86_64                                                    3/3 
  Verifying  : expat-devel-2.1.0-10.el7_3.x86_64                                           1/3 
  Verifying  : expat-2.1.0-10.el7_3.x86_64                                                 2/3 
  Verifying  : expat-2.1.0-8.el7.x86_64                                                    3/3 

Installed:
  expat-devel.x86_64 0:2.1.0-10.el7_3                                                          

Dependency Updated:
  expat.x86_64 0:2.1.0-10.el7_3                                                                

Complete!

[root@localhost apr-util-1.6.1]# ls /usr/local/apr-util/
bin  include  lib

編譯和安裝apache2.4

[root@localhost apr-util-1.6.1]# cd ../httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
	#編譯過程
	.
	.
	.
[root@localhost httpd-2.4.29]# make && make install
	#編譯過程
	.
	.
	.
[root@localhost httpd-2.4.29]# echo $?
0

--enable-so動態擴充套件 --enable-mods-shared=most支援的模組

若出現configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/類似的報錯 可以嘗試使用模糊搜尋

[root@localhost httpd-2.4.29]# yum install -y pcre-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirror01.idc.hinet.net
Resolving Dependencies
--> Running transaction check
---> Package pcre-devel.x86_64 0:8.32-17.el7 will be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================
 Package                 Arch                Version                     Repository         Size
=================================================================================================
Reinstalling:
 pcre-devel              x86_64              8.32-17.el7                 base              480 k

Transaction Summary
=================================================================================================
Reinstall  1 Package

Total download size: 480 k
Installed size: 1.4 M
Downloading packages:
pcre-devel-8.32-17.el7.x86_64.rpm                                         | 480 kB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pcre-devel-8.32-17.el7.x86_64                                                 1/1 
  Verifying  : pcre-devel-8.32-17.el7.x86_64                                                 1/1 

Installed:
  pcre-devel.x86_64 0:8.32-17.el7                                                                

Complete!

pcre為正則表達的依賴庫

apache檔案介紹

[root@localhost httpd-2.4.29]# cd /usr/local/apache2.4/
[root@localhost apache2.4]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules

可執行檔案目錄

[root@localhost apache2.4]# ls bin/
ab         apxs      dbmmanage  envvars-std  htcacheclean  htdigest  httpd      logresolve
apachectl  checkgid  envvars    fcgistarter  htdbm         htpasswd  httxt2dbm  rotatelogs
[root@localhost apache2.4]# ls -l bin/httpd 
-rwxr-xr-x 1 root root 2334331 Dec 16 07:58 bin/httpd
[root@localhost apache2.4]# du -sh !$
du -sh bin/httpd
2.3M	bin/httpd

配置檔案目錄

[root@localhost apache2.4]# ls conf/
extra  httpd.conf  magic  mime.types  original
[root@localhost apache2.4]# vi conf/httpd.conf

訪問頁存放目錄

[root@localhost apache2.4]# ls htdocs/
index.html

日誌存放目錄

[root@localhost apache2.4]# ls logs/

幫助文件

[root@localhost apache2.4]# ls man
man1  man8

擴充套件模組

[root@localhost apache2.4]# ls modules/
httpd.exp               mod_dbd.so                  mod_proxy_hcheck.so
mod_access_compat.so    mod_deflate.so              mod_proxy_http.so
mod_actions.so          mod_dir.so                  mod_proxy_scgi.so
mod_alias.so            mod_dumpio.so               mod_proxy.so
mod_allowmethods.so     mod_env.so                  mod_proxy_wstunnel.so
mod_auth_basic.so       mod_expires.so              mod_ratelimit.so
mod_auth_digest.so      mod_ext_filter.so           mod_remoteip.so
mod_auth_form.so        mod_file_cache.so           mod_reqtimeout.so
mod_authn_anon.so       mod_filter.so               mod_request.so
mod_authn_core.so       mod_headers.so              mod_rewrite.so
mod_authn_dbd.so        mod_include.so              mod_sed.so
mod_authn_dbm.so        mod_info.so                 mod_session_cookie.so
mod_authn_file.so       mod_lbmethod_bybusyness.so  mod_session_dbd.so
mod_authn_socache.so    mod_lbmethod_byrequests.so  mod_session.so
mod_authz_core.so       mod_lbmethod_bytraffic.so   mod_setenvif.so
mod_authz_dbd.so        mod_lbmethod_heartbeat.so   mod_slotmem_shm.so
mod_authz_dbm.so        mod_log_config.so           mod_socache_dbm.so
mod_authz_groupfile.so  mod_log_debug.so            mod_socache_memcache.so
mod_authz_host.so       mod_logio.so                mod_socache_shmcb.so
mod_authz_owner.so      mod_macro.so                mod_speling.so
mod_authz_user.so       mod_mime.so                 mod_ssl.so
mod_autoindex.so        mod_negotiation.so          mod_status.so
mod_buffer.so           mod_proxy_ajp.so            mod_substitute.so
mod_cache_disk.so       mod_proxy_balancer.so       mod_unique_id.so
mod_cache.so            mod_proxy_connect.so        mod_unixd.so
mod_cache_socache.so    mod_proxy_express.so        mod_userdir.so
mod_cgid.so             mod_proxy_fcgi.so           mod_version.so
mod_dav_fs.so           mod_proxy_fdpass.so         mod_vhost_alias.so
mod_dav.so              mod_proxy_ftp.so            mod_watchdog.so
[root@localhost apache2.4]# du -sh !$
du -sh modules/
7.3M	modules/

檢視已載入的模組

[root@localhost apache2.4]# /usr/local/apache2.4/bin/httpd -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 mpm_event_module (static)
 authn_file_module (shared)
 authn_core_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_user_module (shared)
 authz_core_module (shared)
 access_compat_module (shared)
 auth_basic_module (shared)
 reqtimeout_module (shared)
 filter_module (shared)
 mime_module (shared)
 log_config_module (shared)
 env_module (shared)
 headers_module (shared)
 setenvif_module (shared)
 version_module (shared)
 unixd_module (shared)
 status_module (shared)
 autoindex_module (shared)
 dir_module (shared)
 alias_module (shared)
[root@localhost apache2.4]# /usr/local/apache2.4/bin/apachectl -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 mpm_event_module (static)
 authn_file_module (shared)
 authn_core_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_user_module (shared)
 authz_core_module (shared)
 access_compat_module (shared)
 auth_basic_module (shared)
 reqtimeout_module (shared)
 filter_module (shared)
 mime_module (shared)
 log_config_module (shared)
 env_module (shared)
 headers_module (shared)
 setenvif_module (shared)
 version_module (shared)
 unixd_module (shared)
 status_module (shared)
 autoindex_module (shared)
 dir_module (shared)
 alias_module (shared)

啟動apache

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

若不想提示,可以修改配置檔案

[root@localhost ~]# ps aux | grep httpd
root      66672  0.0  0.1  70904  2216 ?        Ss   08:24   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon    66673  0.0  0.2 359868  4264 ?        Sl   08:24   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon    66674  0.0  0.2 359868  4260 ?        Sl   08:24   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon    66675  0.0  0.2 359868  4264 ?        Sl   08:24   0:00 /usr/local/apache2.4/bin/httpd -k start
root      66758  0.0  0.0 112660   976 pts/3    S+   08:26   0:00 grep --color=auto httpd
[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2627/master         
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:59237           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      1884/rpc.mountd     
tcp        0      0 0.0.0.0:47251           0.0.0.0:*               LISTEN      1566/rpc.statd      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1404/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2627/master         
tcp6       0      0 :::54207                :::*                    LISTEN      1566/rpc.statd      
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN      3192/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::80                   :::*                    LISTEN      66672/httpd         
tcp6       0      0 :::20048                :::*                    LISTEN      1884/rpc.mountd     
tcp6       0      0 :::51574                :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      1404/sshd 

預設監聽80埠

總結: 在編譯的過程,出現的一些問題要學會利用搜索引擎找到解決方案 個人問題./configure和make && make insta