当前位置:   article > 正文

CentOS7.0源码安装Apache

CentOS7.0源码安装Apache

apache

  1. 安装前的准备

    1. yum install \
    2. vim \
    3. gcc \
    4. gcc-c++ \
    5. wget \
    6. make \
    7. libtool \
    8. automake \
    9. autoconf \
    10. expat-devel \
    11. -y \
  2. 安装apr、apr-util

    1. cd /root
    2. wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.3.tar.gz
    3. tar -zxvf apr-1.6.3.tar.gz
    4. cd apr-1.6.3
    5. ./configure
    6. make
    7. make install
    8. cd /root
    9. wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
    10. tar -zxvf apr-util-1.6.1.tar.gz
    11. cd apr-util-1.6.1
    12. ./configure --with-apr=../apr-1.6.3
    13. make
    14. make install
  3. 安装PCRE库

    1. cd /root
    2. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
    3. 或者(第三方):wget https://fossies.org/linux/misc/pcre-8.39.tar.gz
    4. tar -zxvf pcre-8.39.tar.gz
    5. cd pcre-8.39
    6. ./configure
    7. make
    8. make install
  4. 安装zlib库

    1. cd /root
    2. wget http://zlib.net/zlib-1.2.11.tar.gz
    3. tar -zxvf zlib-1.2.11.tar.gz
    4. cd zlib-1.2.11
    5. ./configure
    6. make
    7. make install
  5. 安装openssl

    1. # openssl从1.0.2开始支持http2
    2. cd /root
    3. wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
    4. tar -zxvf openssl-1.0.2l.tar.gz
  6. 获取源码并安装

    1. cd /root
    2. wget http://mirrors.shuosc.org/apache//httpd/httpd-2.4.29.tar.gz
    3. tar -zxvf httpd-2.4.29.tar.gz
    4. cd httpd-2.4.29
    5. # 注意:
    6. # with-apr和with-apr-util要指定安装路径
    7. # with-z with-ssl with-pcre如安装时指定了路径,这里也要指定路径
    8. ./configure \
    9. --prefix=/usr/local/apache \
    10. --sysconfdir=/etc/httpd \
    11. --with-mpm=event \
    12. --with-apr=../apr-1.6.3/ \
    13. --with-apr-util=../apr-util-1.6.1 \
    14. --with-z \
    15. --with-ssl \
    16. --with-pcre \
    17. --enable-so \
    18. --enable-cgi \
    19. --enable-ssl \
    20. --enable-rewrite \
    21. --enable-modules=most \
    22. --enable-mpms-shared=all \
    23. make
    24. make install
  7. 修改配置

    1. # 注意,这里不要使用和其它web服务冲突的端口号
    2. vim /etc/httpd/httpd.conf
    3. ServerName localhost:80
    4. User www
    5. Group www
    6. ESC
    7. :wq
  8. 修改目录所属用户(也可不修改)

    1. useradd www
    2. chown -R www:www /usr/local/apache
  9. 启动与关闭测试

    1. # 启动
    2. /usr/local/apache/bin/apachectl start
    3. # 重启
    4. /usr/local/apache/bin/apachectl restart
    5. # 关闭
    6. /usr/local/apache/bin/apachectl stop
  10. 创建软连接,编辑启动脚本

    1. ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
    2. vim /etc/rc.d/init.d/httpd
    3. #chkconfig: 2345 10 90
    4. #description: Apache Web Server
    5. ESC
    6. :wq
  11. Apache加入系统服务

    1. chkconfig --add httpd
    2. chkconfig --list httpd
  12. 设置开机启动并启动

    1. systemctl start httpd
    2. systemctl enable httpd
  13. 查看应用状态

    ps aux|grep httpd
  14. 开启防火墙指定端口

    1. yum install firewalld
    2. systemctl enable firewalld
    3. systemctl start firewalld
    4. firewall-cmd --zone=public --add-port=80/tcp --permanent
    5. firewall-cmd --zone=public --add-port=443/tcp --permanent
    6. firewall-cmd --reload
  15. 访问Web服务查看是否正常运行

    1. # 访问http://xxx.xxx.xxx.xxx
    2. # 显示: It works! 表示一切正常
  16. apache-2.4.x主配置文件httpd.conf(干货)

    1. # apache安装目录
    2. ServerRoot "/usr/local/apache"
    3. # 默认监听端口
    4. #Listen 0.0.0.0:80
    5. Listen 80
    6. # 加载模块
    7. LoadModule mpm_event_module modules/mod_mpm_event.so
    8. LoadModule authn_file_module modules/mod_authn_file.so
    9. LoadModule authn_core_module modules/mod_authn_core.so
    10. LoadModule authz_host_module modules/mod_authz_host.so
    11. LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    12. LoadModule authz_user_module modules/mod_authz_user.so
    13. LoadModule authz_core_module modules/mod_authz_core.so
    14. LoadModule access_compat_module modules/mod_access_compat.so
    15. LoadModule auth_basic_module modules/mod_auth_basic.so
    16. LoadModule reqtimeout_module modules/mod_reqtimeout.so
    17. LoadModule filter_module modules/mod_filter.so
    18. LoadModule mime_module modules/mod_mime.so
    19. LoadModule log_config_module modules/mod_log_config.so
    20. LoadModule env_module modules/mod_env.so
    21. LoadModule headers_module modules/mod_headers.so
    22. LoadModule setenvif_module modules/mod_setenvif.so
    23. LoadModule version_module modules/mod_version.so
    24. LoadModule unixd_module modules/mod_unixd.so
    25. LoadModule status_module modules/mod_status.so
    26. LoadModule autoindex_module modules/mod_autoindex.so
    27. LoadModule dir_module modules/mod_dir.so
    28. LoadModule alias_module modules/mod_alias.so
    29. LoadModule php7_module modules/libphp7.so
    30. #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    31. #LoadModule mpm_worker_module modules/mod_mpm_worker.so
    32. #LoadModule authn_dbm_module modules/mod_authn_dbm.so
    33. #LoadModule authn_anon_module modules/mod_authn_anon.so
    34. #LoadModule authn_dbd_module modules/mod_authn_dbd.so
    35. #LoadModule authn_socache_module modules/mod_authn_socache.so
    36. #LoadModule authz_dbm_module modules/mod_authz_dbm.so
    37. #LoadModule authz_owner_module modules/mod_authz_owner.so
    38. #LoadModule authz_dbd_module modules/mod_authz_dbd.so
    39. #LoadModule auth_form_module modules/mod_auth_form.so
    40. #LoadModule auth_digest_module modules/mod_auth_digest.so
    41. #LoadModule allowmethods_module modules/mod_allowmethods.so
    42. #LoadModule file_cache_module modules/mod_file_cache.so
    43. #LoadModule cache_module modules/mod_cache.so
    44. #LoadModule cache_disk_module modules/mod_cache_disk.so
    45. #LoadModule cache_socache_module modules/mod_cache_socache.so
    46. #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    47. #LoadModule socache_dbm_module modules/mod_socache_dbm.so
    48. #LoadModule socache_memcache_module modules/mod_socache_memcache.so
    49. #LoadModule watchdog_module modules/mod_watchdog.so
    50. #LoadModule macro_module modules/mod_macro.so
    51. #LoadModule dbd_module modules/mod_dbd.so
    52. #LoadModule dumpio_module modules/mod_dumpio.so
    53. #LoadModule buffer_module modules/mod_buffer.so
    54. #LoadModule ratelimit_module modules/mod_ratelimit.so
    55. #LoadModule ext_filter_module modules/mod_ext_filter.so
    56. #LoadModule request_module modules/mod_request.so
    57. #LoadModule include_module modules/mod_include.so
    58. #LoadModule substitute_module modules/mod_substitute.so
    59. #LoadModule sed_module modules/mod_sed.so
    60. #LoadModule deflate_module modules/mod_deflate.so
    61. #LoadModule log_debug_module modules/mod_log_debug.so
    62. #LoadModule logio_module modules/mod_logio.so
    63. #LoadModule expires_module modules/mod_expires.so
    64. #LoadModule unique_id_module modules/mod_unique_id.so
    65. #LoadModule remoteip_module modules/mod_remoteip.so
    66. #LoadModule proxy_module modules/mod_proxy.so
    67. #LoadModule proxy_connect_module modules/mod_proxy_connect.so
    68. #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    69. #LoadModule proxy_http_module modules/mod_proxy_http.so
    70. #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    71. #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
    72. #LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
    73. #LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
    74. #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    75. #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    76. #LoadModule proxy_express_module modules/mod_proxy_express.so
    77. #LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
    78. #LoadModule session_module modules/mod_session.so
    79. #LoadModule session_cookie_module modules/mod_session_cookie.so
    80. #LoadModule session_dbd_module modules/mod_session_dbd.so
    81. #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    82. #LoadModule ssl_module modules/mod_ssl.so
    83. #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
    84. #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
    85. #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
    86. #LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
    87. #LoadModule dav_module modules/mod_dav.so
    88. #LoadModule info_module modules/mod_info.so
    89. #LoadModule dav_fs_module modules/mod_dav_fs.so
    90. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
    91. #LoadModule negotiation_module modules/mod_negotiation.so
    92. #LoadModule actions_module modules/mod_actions.so
    93. #LoadModule speling_module modules/mod_speling.so
    94. #LoadModule userdir_module modules/mod_userdir.so
    95. #LoadModule rewrite_module modules/mod_rewrite.so
    96. # 有些配置在指定模块被成功加载后才能添加
    97. <IfModule !mpm_prefork_module>
    98. #LoadModule cgid_module modules/mod_cgid.so
    99. </IfModule>
    100. <IfModule mpm_prefork_module>
    101. #LoadModule cgi_module modules/mod_cgi.so
    102. </IfModule>
    103. <IfModule unixd_module>
    104. # 子进程用户
    105. User www
    106. Group www
    107. </IfModule>
    108. # 主服务配置
    109. ServerAdmin test@test.com
    110. ServerName localhost:80
    111. <FilesMatch \.php$>
    112. SetHandler application/x-httpd-php
    113. </FilesMatch>
    114. # 这里是全局目录默认规则
    115. <Directory />
    116. AllowOverride none
    117. Require all denied
    118. </Directory>
    119. # web目录默认位置
    120. DocumentRoot "/www"
    121. <Directory "/www">
    122. Options Indexes FollowSymLinks
    123. AllowOverride None
    124. Require all granted
    125. </Directory>
    126. # 不指定文件名时默认访问路径下的文件
    127. <IfModule dir_module>
    128. DirectoryIndex index.php index.html index.htm
    129. </IfModule>
    130. # 防止 .ht* 文件被从Web上访问
    131. <Files ".ht*">
    132. Require all denied
    133. </Files>
    134. # 错误日志位置
    135. ErrorLog "logs/error_log"
    136. # 错误日志级别: 警告
    137. LogLevel warn
    138. # 日志格式
    139. <IfModule log_config_module>
    140. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    141. LogFormat "%h %l %u %t \"%r\" %>s %b" common
    142. <IfModule logio_module>
    143. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    144. </IfModule>
    145. CustomLog "logs/access_log" common
    146. #CustomLog "logs/access_log" combined
    147. </IfModule>
    148. # alias_module
    149. <IfModule alias_module>
    150. ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
    151. </IfModule>
    152. # cgid_module
    153. <IfModule cgid_module>
    154. #Scriptsock cgisock
    155. </IfModule>
    156. # cgi-bin目录
    157. <Directory "/usr/local/apache/cgi-bin">
    158. AllowOverride None
    159. Options None
    160. Require all granted
    161. </Directory>
    162. # 请求头
    163. <IfModule headers_module>
    164. RequestHeader unset Proxy early
    165. </IfModule>
    166. # mime类型对照
    167. <IfModule mime_module>
    168. TypesConfig /etc/mime.types
    169. AddType application/x-compress .Z
    170. AddType application/x-gzip .gz .tgz
    171. #AddEncoding x-compress .Z
    172. #AddEncoding x-gzip .gz .tgz
    173. #AddType application/x-gzip .tgz
    174. #AddType text/html .shtml
    175. #AddHandler cgi-script .cgi
    176. #AddHandler type-map var
    177. #AddOutputFilter INCLUDES .shtml
    178. </IfModule>
    179. #MIMEMagicFile /etc/magic
    180. #ErrorDocument 500 "The server made a boo boo."
    181. #ErrorDocument 404 /missing.html
    182. #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    183. #ErrorDocument 402 http://www.example.com/subscription_info.html
    184. #MaxRanges unlimited
    185. #EnableMMAP off
    186. #EnableSendfile on
    187. # Server-pool management (MPM specific)
    188. #Include /etc/extra/httpd-mpm.conf
    189. # Multi-language error messages
    190. #Include /etc/extra/httpd-multilang-errordoc.conf
    191. # Fancy directory listings
    192. #Include /etc/extra/httpd-autoindex.conf
    193. # Language settings
    194. #Include /etc/extra/httpd-languages.conf
    195. # User home directories
    196. #Include /etc/extra/httpd-userdir.conf
    197. # Real-time info on requests and configuration
    198. #Include /etc/extra/httpd-info.conf
    199. # Virtual hosts
    200. #Include /etc/extra/httpd-vhosts.conf
    201. # Local access to the Apache HTTP Server Manual
    202. #Include /etc/extra/httpd-manual.conf
    203. # Distributed authoring and versioning (WebDAV)
    204. #Include /etc/extra/httpd-dav.conf
    205. # Various default settings
    206. #Include /etc/extra/httpd-default.conf
    207. # proxy_html_module
    208. <IfModule proxy_html_module>
    209. Include /etc/extra/proxy-html.conf
    210. </IfModule>
    211. # https相关配置
    212. # Secure (SSL/TLS) connections
    213. #Include /etc/extra/httpd-ssl.conf
    214. <IfModule ssl_module>
    215. SSLRandomSeed startup builtin
    216. SSLRandomSeed connect builtin
    217. </IfModule>
  17. 虚拟主机(Virtual hosts)配置httpd-vhosts.conf

    1. # 打开'#Include /xxx/httpd-vhosts.conf'的注释才能生效
    2. # 监听80端口
    3. <VirtualHost *:80>
    4. # 异常时向test@test.com发送邮件
    5. ServerAdmin test@test.com
    6. # web真实目录
    7. DocumentRoot "/www/test"
    8. # 服务域名
    9. ServerName www.test.com
    10. # 服务别名(可以没有)
    11. ServerAlias alias.test.com
    12. # 错误日志位置(mod_log_config)
    13. ErrorLog "logs/error_log"
    14. # 访问日志位置以及日志级别(mod_log_config)
    15. CustomLog "logs/access_log" common
    16. </VirtualHost>
  18. 领支付宝红包支持作者

    扫码领支付宝红包

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/936534
推荐阅读
相关标签
  

闽ICP备14008679号