hellopasswd
安装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 install一起使用
修改于 171216