美文网首页程序员我爱编程
ubuntu LTS 16.04 编译安装配置Apache

ubuntu LTS 16.04 编译安装配置Apache

作者: 彬哲 | 来源:发表于2017-10-11 22:51 被阅读467次

    操作系统:ubuntu LTS 16.04
    apache版本:2.4.27

    PRE准备工作

    Apache编译安装指南中给出了编译安装的详细过程,以下是注意事项:

    安装C编译器

    安装C语言编译器gcc-5

    sudo apt-get install gcc-5
    

    gcc符号链接到gcc-5,使gcc命令等同于gcc-5

    sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc
    

    安装C++编译器

    安装C语言编译器g++-5

    sudo apt-get install g++-5
    

    g++符号链接到g++-5,使gcc命令等同于g++-5

    sudo ln -s /usr/bin/g++-5 /usr/bin/g++
    

    安装make

    --fix-missing是修复选项

    sudo apt-get install make --fix-missing
    

    安装依赖包

    sudo apt-get install libexpat1-dev
    

    编译安装详细过程

    将下载的源码文件都放在/usr/local/src目录下

    切换到/usr/local/src目录

    cd /usr/local/src
    

    安装APR

    下载安装APR-1.6.2

    APR官网下载对应版本的tar.gz源码压缩包,放到/usr/local/src目录下,并解压

    # 解压命令
    sudo tar zxvpf apr-1.6.2.tar.gz
    

    进到apr-1.6.2源码目录下

    cd apr-1.6.2
    

    编译安装

    # 设置输出目录
    ./configure --prefix=/usr/local/apache2/apr-1.6.2
    
    # 根据自己电脑核数×2来设定并行编译参数,提高编译速度
    make -j1 
    
    sudo make install
    

    下载安装APR-util-1.6.0

    APR官网下载对应版本的tar.gz源码压缩包,放到/usr/local/src目录下,并解压

    # 解压命令
    sudo tar jxvpf apr-util-1.6.0.tar.bz2
    

    进到apr-1.6.2源码目录下

    cd apr-util-1.6.0
    

    编译安装,注意apr路径参数要与之前apr安装路径参数相同

    ./configure --prefix=/usr/local/apache2/apr-util-1.6.0 --with-apr=/usr/local/apache2/apr-1.6.2
    
    make -j1
    
    make install
    

    下载安装PCRE

    PCRE官网下载pcre-8.41源码压缩包,放到/usr/local/src`目录下,并解压

    # 解压命令
    sudo tar zxvpf pcre-8.41.tar.gz
    

    进到pcre-8.41源码目录下

    cd pcre-8.41
    

    编译安装

    ./configure --prefix=/usr/local/pcre-8.41
    
    make -j1
    
    make install
    

    下载安装apache2.4.27

    Apache官网下载apache2.4.27源码压缩包,放到/usr/local/src目录下,并解压

    # 解压命令
    sudo tar zxvpf httpd-2.4.27.tar.gz
    

    进到httpd-2.4.27.tar.gz目录下

    cd httpd-2.4.27
    

    编译安装

    sudo ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apache2/apr-1.6.2 --with-apr-util=/usr/local/apache2/apr-util-1.6.0/ --with-pcre=/usr/local/pcre-8.41 --with-expat=builtin --enable-so --enable-rewrite --enable-ssl
    
    sudo make -j1
    
    sudo make install
    
    • --prefix : 目标路径
    • --with: 依赖的库文件的路径
    • enable-ssl : 支持SSL加密
    • enable-so : 支持动态加载模块

    添加启动脚本apache2service

    sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2
    

    添加apache2到环境变量

    # 输出启动脚本至 /home/phdchorus/apache2.sh
    sudo echo 'export PATH=$PATH:/usr/local/apache2/bin' > /home/phdchorus/apache2.sh
    
    cd /home/phdchorus
    
    # 修改启动脚本的读写权限
    sudo chmod a+x apache2.sh
    
    # 拷贝脚本至目录
    sudo cp apache2.sh /etc/profile.d
    
    # 更新脚本状态
    source /etc/profile.d/apache2.sh
    

    添加apache2到开机启动项

    sudo vim /etc/rc.local
    

    /etc/profile.d/httpd.sh添加到exit 0之前

    /etc/profile.d/apache2.sh
    
    exit 0
    

    启动apache2

    sudo service apache2 start
    

    Apache配置

    转到apache目录下,可以看到以下目录结构

    phdchorus@phdchorus:/usr/local/apache2$ ls
    bin  conf  error  htdocs  logs  modules
    
    • bin是apache启动目录
    • conf是apache配置文件目录
    • htdocs是默认的DocumentRoot
    • logs是默认的日志目录
    • modules是apache的扩展链接(PHP扩展、SSL扩展...)所在的目录

    转到conf目录下,可以看到以下目录结构

    phdchorus@phdchorus:/usr/local/apache2/conf$ ls
    extra  httpd.conf  magic  mime.types  original
    
    • httpd.confapache的主配置文件
    • extra中存放了httpd.conf之外的配置文件

    安装配置Apache中记录了通过apt-get安装Apache后,对apache的各种配置。apt-get安装apache后,apache配置按照种类分散到多个目录文件下面,主配置文件import这些配置文件,从而实现了配置模块化的效果。而编译安装的apache将几乎所有的配置都放到了主配置文件中,是非常不利于维护的。接下来我们先配置Apache,再按照模块化配置的思路,重构apache的主配置文件。

    配置Apache

    基本配置

    因为装机时,我们的计划是将网络服务资源放在/var下,所以要修改DocumentRootDocumentRoot对应的Directory

    找到DocumentRoot "/usr/local/apache2/htdocs"
    修改为DocumentRoot "/var/www/html" --该目录为自己创建的目录
     
    找到:<Directory "/usr/local/apache2/htdocs"> 
    修改为:<Directory "/var/www/html">
    

    配置Apache解析PHP

    在主配置文件中写入

    LoadModule php7_module modules/libphp7.so
    
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    

    修复安全漏洞

    在主配置文件中写入

    TraceEnable off
    ServerSignature off
    

    重构主配置文件

    相关文章

      网友评论

        本文标题:ubuntu LTS 16.04 编译安装配置Apache

        本文链接:https://www.haomeiwen.com/subject/btbgyxtx.html