zoukankan      html  css  js  c++  java
  • Ubuntu 16.04.4下安装apache服务

     Ubuntu 16.04.4下安装apache服务:

    一、首先,准备需要的预装环境

    需要c++,make,gcc,apr  apr-util  pcre。(如果后面报错缺少什么组件,可以百度搜方法。有报错就是是学习的开始。)

    插入一个小姿势:#echo $?   这个命令是检测报错的,返回值若是0,表明没有报错,否则就是报错。

    先安装c++编译相关组件:

    i、刚装好的Ubuntu系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,

        安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。

        安装所需要的软件包:

        sudo apt-get install build-essential

    ii、安装 Ubuntu Make

        $sudo apt-get update

        $sudo apt-get install ubuntu-make

    iii、apache同时依赖apr  apr-util  pcre。

          apr-util依赖apr。

          所以安装顺序是apr,apr-util,pcre(这个只要在apache之前装就好),apache。

    正戏开始:

    1、下载pcre正则库:https://ftp.pcre.org/pub/pcre/ 

    2、下载apr:http://apr.apache.org/download.cgi

    3、下载apr-util:http://apr.apache.org/download.cgi

    4、下好后在SSH端输入rz命令将压缩包文件放在工作需要的目录下,并解压至此,我的是/app。

     1 root@ubuntu:~# cd /app
     2 root@ubuntu:/app# rz
     3 
     4  
     5 
     6 root@ubuntu:/app# tar zxvf apr-1.6.3.tar.gz
     7 root@ubuntu:/app# tar zxvf apr-util-1.6.1.tar.gz
     8 root@ubuntu:/app# tar zxvf pcre-8.00.tar.gz
     9 
    10  
    11 
    12 root@ubuntu:/app# ls (检查一下)
    13 apr-1.6.3  apr-1.6.3.tar.gz  apr-util-1.6.1  apr-util-1.6.1.tar.gz  httpd-2.4.33  httpd-2.4.33.tar.gz  pcre-8.00  pcre-8.00.tar.gz 

    5、然后一个一个进行编译安装:

    PS: linux编译安装的步骤:配置(configure)、编译(make)、安装(make install)

    ①  cd到源码版压缩包解压后的目录。

          i、如果不是源码版压缩包解压后的目录,会出现-bash: ./configure: No such file or directory的报错,因为没有 ./configure的路径。

          ii、之前一直犯这个错误就是下的是二进制(可直接安装)的包,在这个包目录下./configure一直报错,就这个原因。

      运行此命令:./configure --prefix=/app/apr 

          i、./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包。

          ii、划重点:注意你下的包是不是源码包!!!

          iii、 ./configure --prefix=:指定安装路径。若不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。

    ③  运行:make && make install 命令 (Make:编译程序。最好分开执行。)

    eg:

    需要注意的是:

    ******配置apr-util的时候需要依赖前面的apr,所以是先装apr,再装apr-util,再装apache(apache同时依赖apr  apr-util  pcre)。

    ①  编译安装pcre:

    root@ubuntu:/app/pcre-8.00# ./configure --prefix=/opt/pcre
    root@ubuntu:/app/pcre-8.00# make 
    root@ubuntu:/app/pcre-8.00# make install

    ②  编译安装apr(其实不用安装,后面说明原因,但学的时候先了解apache依赖环境!)

    root@ubuntu:/app# cd apr-1.6.3

    root@ubuntu:/app/apr-1.6.3# ./configure --prefix=/opt/apr (--prefix=后面是接你要安装服务的目录,我们公司是/opt这个目录。apr对应apr-1.6.3。后面还有apr-util,pcre,apache目录)

    root@ubuntu:/app/apr-1.6.3# make
    root@ubuntu:/app/apr-1.6.3# make install

    ③  编译安装apr-util:(其实不用安装,后面说明原因,但学的时候先了解apache依赖环境!)

    root@ubuntu:/app/apr-util-1.6.1# ./configure --prefix=/opt/apr-util --wiht-apr=/opt/apr (注意,apr-util依赖apr

    root@ubuntu:/app/apr-util-1.6.1# make
    root@ubuntu:/app/apr-util-1.6.1# make install

      编译安装apache:(把下载下来到apr和apr-util解压到srclib目录下到apr和apr-util目录,注意目录名字要一致。不这样会报错,后面解释。

    root@ubuntu:/app/httpd-2.4.33# ./configure --prefix=/opt/apache --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-pcre/opt/pcre (注意:apache同时依赖apr  apr-util  pcre
    root@ubuntu:/app/httpd-2.4.33# make 
    root@ubuntu:/app/httpd-2.4.33# make install

    Notic: 解释为什么前面其实不需要安装apr和apr-util:

    到现在按照官方文档的说明应该就已经安装好了,但是我到make这步就报错了

    collect2: error: ld returned 1 exit status
    Makefile:48: recipe for target 'htpasswd' failed
    make[2]: *** [htpasswd] Error 1
    make[2]: Leaving directory '/etc/httpd-2.4.27/support'
    /etc/httpd-2.4.27/build/rules.mk:75: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/etc/httpd-2.4.27/support'
    /etc/httpd-2.4.27/build/rules.mk:75: recipe for target 'all-recursive' failed
    make: *** [all-recursive] Error 1

    这个错误是因为在httpd目录下的srclib目录里面没有apr和apr-util所导致的,但是./configure又不会报错,到make才会报错,

    所以把下载下来到apr和apr-util解压到srclib目录下到apr和apr-util目录,注意目录名字要一致。

    这就是之前说的不用安装apr和apr-util的原因,它会自动安装,手动安装后去指定安装路径是会报错的。重新生成make文件和make。

     sudo ./configure --with-prce=/opt/pcre --with-included-apr    #其他参数请参照官方

    sudo make
    sudo make install

     
     
     
     
     
     
     

     6、启动apache服务:

    i、到/opt/apache/bin目录下,执行命令./httpd,再用ps aus| grep httpd命令检测服务端口是否开启。

    ii、ubuntu下启动,重启,停止apache服务:

    1、启动aoache服务

         start apache 2 server

         sudo /etc/init.d/apache2 start

    2、重启apache服务

         restart apache 2 Server

         sudo /etc/init.d/apache2 restart

    3、停止apache服务

         stop apache 2 server

         sudo /etc/init.d/apache2 stop

     _______________________________

    注:a、这里的sudo可要可不要.

          b、假设系统中安装了nginx和apache服务器,访问127.0.0.1打开的服务器是nginx时,如果你不想用这个服务器,

                而是apache时,就应当先关闭nginx服务器:sudo /etc/init.d/nginx stop  再开启apache服务器: sudo /etc/init.d/apache2 start .

          c、当一个系统中安装了多个服务器时,这种命令写法只能生效一次,下次在启动系统时,还得重新运行上面的命令,如果想要永久性的只开启apache服务,则必须在文件中去设置。

    知识扩展:

    1、apache目录

     bin:二进制执行文件-->httpd

    conf:配置文件

    logs:日志文件

     2、本地ip:

    127.0.0.1 :只有本机可以访问(ip协议)。

    0.0.0.0  :局域网中访问ip也行。

    localhost:只有本机可以访问(多种协议)。

    3、命令扩展:

    ps命令:ps aux| grep httpd 查看httpd服务状态。

    pkill -9 进程名 :强制杀掉某进程。

    tcp端口:netstat命令:netstat -lntp| grep 80 监听80端口状态。(在apache-conf配置文件中severname后面会显示服务端口)。

    curl命令:

    curl ipinfo.io :查询公网出口ip:

    curl ip地址 :直接在curl命令后加上网址,就可以看到网页源码。

    4、apache修改根目录:

    修改/opt/apache/htdocs下的index.html文件。

    这是公司ubuntu上安装apache全过程!^_^

  • 相关阅读:
    Code Forces 650 C Table Compression(并查集)
    Code Forces 645B Mischievous Mess Makers
    POJ 3735 Training little cats(矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
    PAT 1026 Table Tennis (30)
    ZOJ 3609 Modular Inverse
    Java实现 LeetCode 746 使用最小花费爬楼梯(递推)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
  • 原文地址:https://www.cnblogs.com/sinsenliu/p/9318169.html
Copyright © 2011-2022 走看看