CentOS7.0源码安装Apache

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: CentOS7.0源码安装Apache

apache

  1. 安装前的准备

    yum install \
    vim \
    gcc \
    gcc-c++ \
    wget \
    make \
    libtool \
    automake \
    autoconf \
    expat-devel \
    -y \
  2. 安装apr、apr-util

    cd /root
    wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.3.tar.gz
    tar -zxvf apr-1.6.3.tar.gz
    cd apr-1.6.3
    ./configure
    make
    make install
    
    cd /root
    wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
    tar -zxvf apr-util-1.6.1.tar.gz
    cd apr-util-1.6.1
    ./configure --with-apr=../apr-1.6.3
    make
    make install
  3. 安装PCRE库

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

    cd /root
    wget http://zlib.net/zlib-1.2.11.tar.gz
    tar -zxvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure
    make
    make install
  5. 安装openssl

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

    cd /root
    wget http://mirrors.shuosc.org/apache//httpd/httpd-2.4.29.tar.gz
    tar -zxvf httpd-2.4.29.tar.gz
    cd httpd-2.4.29
    # 注意:
        # with-apr和with-apr-util要指定安装路径
        # with-z with-ssl with-pcre如安装时指定了路径,这里也要指定路径
    ./configure \
    --prefix=/usr/local/apache \
    --sysconfdir=/etc/httpd \
    --with-mpm=event \
    --with-apr=../apr-1.6.3/ \
    --with-apr-util=../apr-util-1.6.1 \
    --with-z \
    --with-ssl \
    --with-pcre \
    --enable-so \
    --enable-cgi \
    --enable-ssl \
    --enable-rewrite \
    --enable-modules=most \
    --enable-mpms-shared=all \
    make
    make install
  7. 修改配置

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

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

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

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

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

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

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

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

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

    # apache安装目录
    ServerRoot "/usr/local/apache"
    # 默认监听端口
    #Listen 0.0.0.0:80
    Listen 80
    # 加载模块
    LoadModule mpm_event_module modules/mod_mpm_event.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authn_core_module modules/mod_authn_core.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule authz_core_module modules/mod_authz_core.so
    LoadModule access_compat_module modules/mod_access_compat.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule reqtimeout_module modules/mod_reqtimeout.so
    LoadModule filter_module modules/mod_filter.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule env_module modules/mod_env.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule version_module modules/mod_version.so
    LoadModule unixd_module modules/mod_unixd.so
    LoadModule status_module modules/mod_status.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule php7_module modules/libphp7.so
    #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    #LoadModule mpm_worker_module modules/mod_mpm_worker.so
    #LoadModule authn_dbm_module modules/mod_authn_dbm.so
    #LoadModule authn_anon_module modules/mod_authn_anon.so
    #LoadModule authn_dbd_module modules/mod_authn_dbd.so
    #LoadModule authn_socache_module modules/mod_authn_socache.so
    #LoadModule authz_dbm_module modules/mod_authz_dbm.so
    #LoadModule authz_owner_module modules/mod_authz_owner.so
    #LoadModule authz_dbd_module modules/mod_authz_dbd.so
    #LoadModule auth_form_module modules/mod_auth_form.so
    #LoadModule auth_digest_module modules/mod_auth_digest.so
    #LoadModule allowmethods_module modules/mod_allowmethods.so
    #LoadModule file_cache_module modules/mod_file_cache.so
    #LoadModule cache_module modules/mod_cache.so
    #LoadModule cache_disk_module modules/mod_cache_disk.so
    #LoadModule cache_socache_module modules/mod_cache_socache.so
    #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    #LoadModule socache_dbm_module modules/mod_socache_dbm.so
    #LoadModule socache_memcache_module modules/mod_socache_memcache.so
    #LoadModule watchdog_module modules/mod_watchdog.so
    #LoadModule macro_module modules/mod_macro.so
    #LoadModule dbd_module modules/mod_dbd.so
    #LoadModule dumpio_module modules/mod_dumpio.so
    #LoadModule buffer_module modules/mod_buffer.so
    #LoadModule ratelimit_module modules/mod_ratelimit.so
    #LoadModule ext_filter_module modules/mod_ext_filter.so
    #LoadModule request_module modules/mod_request.so
    #LoadModule include_module modules/mod_include.so
    #LoadModule substitute_module modules/mod_substitute.so
    #LoadModule sed_module modules/mod_sed.so
    #LoadModule deflate_module modules/mod_deflate.so
    #LoadModule log_debug_module modules/mod_log_debug.so
    #LoadModule logio_module modules/mod_logio.so
    #LoadModule expires_module modules/mod_expires.so
    #LoadModule unique_id_module modules/mod_unique_id.so
    #LoadModule remoteip_module modules/mod_remoteip.so
    #LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_connect_module modules/mod_proxy_connect.so
    #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    #LoadModule proxy_http_module modules/mod_proxy_http.so
    #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
    #LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
    #LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
    #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    #LoadModule proxy_express_module modules/mod_proxy_express.so
    #LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
    #LoadModule session_module modules/mod_session.so
    #LoadModule session_cookie_module modules/mod_session_cookie.so
    #LoadModule session_dbd_module modules/mod_session_dbd.so
    #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    #LoadModule ssl_module modules/mod_ssl.so
    #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
    #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
    #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
    #LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
    #LoadModule dav_module modules/mod_dav.so
    #LoadModule info_module modules/mod_info.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule vhost_alias_module modules/mod_vhost_alias.so
    #LoadModule negotiation_module modules/mod_negotiation.so
    #LoadModule actions_module modules/mod_actions.so
    #LoadModule speling_module modules/mod_speling.so
    #LoadModule userdir_module modules/mod_userdir.so
    #LoadModule rewrite_module modules/mod_rewrite.so
    # 有些配置在指定模块被成功加载后才能添加
    <IfModule !mpm_prefork_module>
        #LoadModule cgid_module modules/mod_cgid.so
    </IfModule>
    <IfModule mpm_prefork_module>
        #LoadModule cgi_module modules/mod_cgi.so
    </IfModule>
    <IfModule unixd_module>
    # 子进程用户
    User www
    Group www
    </IfModule>
    # 主服务配置
    ServerAdmin test@test.com
    ServerName localhost:80
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    # 这里是全局目录默认规则
    <Directory />
        AllowOverride none
        Require all denied
    </Directory>
    # web目录默认位置
    DocumentRoot "/www"
    <Directory "/www">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    # 不指定文件名时默认访问路径下的文件
    <IfModule dir_module>
        DirectoryIndex index.php index.html index.htm
    </IfModule>
    # 防止 .ht* 文件被从Web上访问
    <Files ".ht*">
        Require all denied
    </Files>
    # 错误日志位置
    ErrorLog "logs/error_log"
    # 错误日志级别: 警告
    LogLevel warn
    # 日志格式
    <IfModule log_config_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
        <IfModule logio_module>
            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
        </IfModule>
        CustomLog "logs/access_log" common
        #CustomLog "logs/access_log" combined
    </IfModule>
    # alias_module
    <IfModule alias_module>
        ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
    </IfModule>
    # cgid_module
    <IfModule cgid_module>
        #Scriptsock cgisock
    </IfModule>
    # cgi-bin目录
    <Directory "/usr/local/apache/cgi-bin">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
    # 请求头
    <IfModule headers_module>
        RequestHeader unset Proxy early
    </IfModule>
    # mime类型对照
    <IfModule mime_module>
        TypesConfig /etc/mime.types
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        #AddEncoding x-compress .Z
        #AddEncoding x-gzip .gz .tgz
        #AddType application/x-gzip .tgz
        #AddType text/html .shtml
        #AddHandler cgi-script .cgi
        #AddHandler type-map var
        #AddOutputFilter INCLUDES .shtml
    </IfModule>
    #MIMEMagicFile /etc/magic
    #ErrorDocument 500 "The server made a boo boo."
    #ErrorDocument 404 /missing.html
    #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    #ErrorDocument 402 http://www.example.com/subscription_info.html
    #MaxRanges unlimited
    #EnableMMAP off
    #EnableSendfile on
    
    # Server-pool management (MPM specific)
    #Include /etc/extra/httpd-mpm.conf
    
    # Multi-language error messages
    #Include /etc/extra/httpd-multilang-errordoc.conf
    
    # Fancy directory listings
    #Include /etc/extra/httpd-autoindex.conf
    
    # Language settings
    #Include /etc/extra/httpd-languages.conf
    
    # User home directories
    #Include /etc/extra/httpd-userdir.conf
    
    # Real-time info on requests and configuration
    #Include /etc/extra/httpd-info.conf
    
    # Virtual hosts
    #Include /etc/extra/httpd-vhosts.conf
    
    # Local access to the Apache HTTP Server Manual
    #Include /etc/extra/httpd-manual.conf
    
    # Distributed authoring and versioning (WebDAV)
    #Include /etc/extra/httpd-dav.conf
    
    # Various default settings
    #Include /etc/extra/httpd-default.conf
    
    # proxy_html_module
    <IfModule proxy_html_module>
    Include /etc/extra/proxy-html.conf
    </IfModule>
    
    # https相关配置
    # Secure (SSL/TLS) connections
    #Include /etc/extra/httpd-ssl.conf
    <IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    </IfModule>
  17. 虚拟主机(Virtual hosts)配置httpd-vhosts.conf

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

    扫码领支付宝红包

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
29天前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
185 1
|
3月前
|
安全 Linux 网络安全
如何在 CentOS 7 上为 Apache 创建 SSL 证书
如何在 CentOS 7 上为 Apache 创建 SSL 证书
54 0
|
1天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
11 3
|
2天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
8 2
|
4天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
29 2
|
20天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
172 2
|
22天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
41 3
|
26天前
|
安全 Linux 编译器
Centos 7.9如何使用源码编译安装curl最新版本
通过上述步骤,您就能在CentOS 7.9上成功地从源代码编译并安装curl的最新版本。这种方法不仅提供了灵活性,允许您定制编译选项,还确保了软件的最新功能和安全更新得到应用。
34 1
|
29天前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
45 1
|
3月前
|
应用服务中间件 Linux 网络安全
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
这篇文章提供了在CentOS 7系统上通过源码安装Nginx的详细步骤,包括从官网下载Nginx源码包、上传至虚拟机、解压、删除压缩包、编译安装前的配置、安装PCRE库(因为Nginx使用PCRE库解析正则表达式)、安装zlib和OpenSSL库(用于支持HTTPS协议)、重新编译Nginx、安装后启动Nginx服务、关闭服务、修改默认端口、以及重启服务测试等步骤。文章还提供了相关命令和操作截图,帮助用户更好地理解和执行安装过程。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)