美文网首页
2019-08-02 Centos7 源码安装 apache

2019-08-02 Centos7 源码安装 apache

作者: 帅气的雷哥 | 来源:发表于2019-08-15 15:34 被阅读0次

    1.安装所有 apache 需要用的到的软件

    #安装 apache 需要的依赖到的软件
    yum install -y wget gcc make apr-devel apr-util-devel pcre-devel
    

    2.去网上下载 apache 源码安装压缩包文件到本地

    #定位目录到最上层的根目录
    -> cd /
    #在更目录下创建一个 download 文件夹  mkdir 命令是用来创建文件夹的
    -> mkdir download
    #定位目录到 根目录的 download 文件夹下
    -> cd /download
    #运行 wget 加 要下载文件的网址, 下载文件到当前目录 , 如果下载带https://下载不了的话可以加 --no-check-certificate 参数
    -> wget http://apache.mirror.cdnetworks.com//httpd/httpd-2.4.39.tar.gz
    

    具体的 apache 源码安装压缩包文件地址请去官网获取 http://httpd.apache.org/download.cgi#apache24

    image.png

    3.把文件从压缩包中解压出来

    # -z :  有gzip属性的
    # -x :  解压
    # -v :  显示所有过程
    # -f  : 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
    # tar 的详细请看 [https://www.cnblogs.com/manong--/p/8012324.html]
    ->tar -zxvf httpd-2.4.39.tar.gz
    

    4. 定位目录到解压出来的 httpd-2.4.39 文件夹下

    ->cd httpd-2.4.39
    

    5.再构建 apache 程序之前,要先来做一下 apache 的编译配置

    #--prefix=/usr/local/apache2 构建安装程序的时候把这个程序安装在 /usr/local/apache2 目录下
    #--enable-mods-shared=most 动态编译 most (大多数, all 是最大化支持) 模块 , 意思是对于大多数apache模块来说, 以后启用模块, 要先loadmoule来加载,然后再<ifmodule></ifmodule>配置
    #--enable-so 保留以后的扩展DSO能力 [动态编译(DSO)]
    #更加详细的配置介绍请看这个文章 [https://www.cnblogs.com/52php/p/5668845.html 和 http://httpd.apache.org/docs/2.4/programs/configure.html]
    ->./configure --prefix=/usr/local/apache2  --enable-mods-shared=most  --enable-so
    

    6.编译安装

    #如果 ./configure 没有报错的话,执行下面的语句就要开始安装 apache 了
    ->make && make install
    #如果没报错 就大功告成了
    

    7.更改一下 apache 的运行配置文件,要不启动服务会报错

    ->vi /usr/local/apache2/conf/httpd.conf
    找到 '#ServerName xxxxxxxxx:80' 改成 'ServerName localhost:80' 记住要把前面的 '#' 号去掉
    然后保存退出
    

    8.添加开机启动

    #  创建一个叫 http.service 的文件, 这个文件就是用来开机启动的,必须创建在 /usr/lib/systemd/system/ 目录下
    ->vi /usr/lib/systemd/system/httpd.service
    
    
    ---------------------------------------------------------------------------
    
    [Unit]
    # 描述文件这个创建的服务是用来干什么用的
    Description=apache service
    # 这个服务要在 network.target 网络创建后才开启
    After=network.target
    
    [Service]
    #  forking 的意思是,ExecStart字段以fork()方式启动,此时父进程将退出,子进程将成为主进程(后台运行)。一般都设置为forking
    Type=forking
    #  开启 必须是绝对路径才行 /usr/local/apache2/bin/ 就是你上面 apache 安装的路径
    ExecStart=/usr/local/apache2/bin/apachectl start
    #  重载
    ExecReload=/usr/local/apache2/bin/apachectl restart
    #  停止
    ExecStop=/usr/local/apache2/bin/apachectl stop
    
    [Install]
    # 这个比较重要 , 表示多用户命令行状态 (也代表启动的顺序 在 multi-user.target 的阶段启动这个服务), 还有一个用的多的是 graphical.target: 表示图形用户状体,它依赖于multi-user.target
    WantedBy=multi-user.target
    
    
    
    ---------------------------------------------------------------------------
    
    
    
    # vi 编辑完成后,保存退出 (vi 编辑不会的请百度一下) 然后执行 systemctl deamon-reload 用来让 systemctl 重新载入一下配置, 把你创建的 service 也载入进去
    ->systemctl deamon-reload
    # 最后执行 systemctl start httpd.service  或者 systemctl start httpd 都行, 来开启 apache 服务
    ->systemctl start httpd
     # 如果不报错说明你已经成功了, 最后一步把 这个创建的 httpd.service 服务添加到开机启动里面
    ->systemctl enable httpd
    # end 完事了 大功告成 下面是一些 systemctl 基本命令
    # systemctl daemon-reload                 重载系统服务
    # systemctl enable *.service              设置某服务开机启动      
    # systemctl disable cups.service          停止开机启动
    # systemctl start *.service               启动某服务  
    # systemctl stop *.service                停止某服务 
    # systemctl reload *.service              重启某服务
    # systemctl status *.service              查看服务状态
    # 更多 systemctl 请查看 [https://www.jianshu.com/p/fa7e7b93eeb4]
    
    
    

    9.验证一下 apache 是否能正常运行了

    ->curl localhost
    #返回    '<html><body><h1>It works!</h1></body></html>'   说明正常
    

    ps:

    用虚拟机的小伙伴 : 用windows 共享目录给 linux, 会有磁盘格式不一致的问题 , 会报 : ln: failed to create symbolic link ‘xxxxx’ 问题
    解决方法:把 httpd-2.4.39.tar.gz 文件解压到 linux 的其他目录下, 不要用共享目录
    

    相关文章

      网友评论

          本文标题:2019-08-02 Centos7 源码安装 apache

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