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。

 root@ubuntu:~# cd /app
root@ubuntu:/app# rz root@ubuntu:/app# tar zxvf apr-1.6..tar.gz
root@ubuntu:/app# tar zxvf apr-util-1.6..tar.gz
root@ubuntu:/app# tar zxvf pcre-8.00.tar.gz root@ubuntu:/app# ls (检查一下)
apr-1.6. apr-1.6..tar.gz apr-util-1.6. apr-util-1.6..tar.gz httpd-2.4. httpd-2.4..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全过程!^_^

Ubuntu 16.04.4下安装apache服务的更多相关文章

  1. Ubuntu 16.04系统下安装Discuz出现“HTTP ERROR 500”目前无法处理此请求

    问题:当我们在Ubuntu 16.04系统下安装Disucz X3时,修改好文件的权限,浏览器输入地址安装时出现如下图所示问题: 问题查询: 在终端输入: tail -f /var/log/apach ...

  2. Ubuntu 16.04系统下安装PHP5.6*

    Ubuntu 16.04系统默认php7,并没有php5*的包,所以需要自己安装: 方法: 1.删除所有的php包列出安装的php包,dpkg -l | grep php| awk '{print $ ...

  3. Ubuntu 16.04 LTS 下安装MATLAB2015b 以及Matlab system error解决办法

    下载MATLAB2015b破解版 操作系统:Ubuntu 16.o4 LTS 程序文件:Matlab2015b-glnxa64破解版 解压提取文件:在ubuntu系统下可以直接提取压缩文件,得到三个文 ...

  4. Ubuntu 16.04系统下安装RapidSVN版本控制器及配置diff,editor,merge和exploer工具

    在Window下我们使用TortoiseSVN(小乌龟),可以很方便地进行查看.比较.更新.提交.回滚等SVN版本控制操作. 在Linux下我们可以使用RapidSVN.RapidSVN是一款轻量级的 ...

  5. Ubuntu 16.04 LTS 下安装 ibus-rime 输入法

    搜 Linux 下粤拼输入法的时候发现了 Rime,由于 fcitx 下的拼音输入体验实在不太好(搜狗是在我的电脑上完全坏掉了,调不出来,配置文件的问题一直没解决:谷歌是好过没有),于是安装 ibus ...

  6. ubuntu 16.04 docker下安装klee环境

    手动构建docker映象: 从github上获取klee源码 git clone https://github.com/klee/klee.git cd klee 使用存储库根目录中dockerfil ...

  7. 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1

    目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...

  8. Ubuntu 16.04非编译安装Zabbix 3.2----服务端和客户端win的配置

    控服务器 - 什么是Zabbix Zabbix是企业级开源分布式监控服务器解决方案. 该软件监控网络的不同参数和服务器的完整性,还允许为任何事件配置基于电子邮件的警报. Zabbix根据存储在数据库( ...

  9. Ubuntu 16.04 LTS 降级安装GCC 4.8

    转载自https://www.linuxidc.com/Linux/2017-03/142299.htm Ubuntu 16.04 LTS 降级安装GCC 4.8 [日期:2017-03-28] 来源 ...

随机推荐

  1. @ResponseBody是如何起作用的

    前言 最近参与的项目中,接口中返回的日期格式不对,发现项目中配置了fastjson作为spring的数据转换器,于是使用了fastjson的字段格式化转换注解 发现不起作用.这让我很疑惑,然后在fas ...

  2. ZkApi的方法跨域访问ZkResource的静态资源文件出现的问题

    问题:ZkApi的方法跨域访问ZkResource的静态资源文件出现下面的情况 解决方法: cd /usr/local/apache/conf/vhost vim .conf 将上面的文件php_ad ...

  3. 「快学springboot」SpringBoot整合freeMark模板引擎

    前言 虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的.比如:需要考虑到SEO优化等问题的时候,FreeMark其实还是很有作用的.本人的博客本来是用React开发的,但是后来 ...

  4. ethtool命令使用

    [root@localhost ~]# ethtool -s eth0 speed 100 duplex full #设置网口的speed和duplex # ethtool eth0Settings ...

  5. 夯实Java基础(二十二)——Java8新特性之Lambda表达式

    1.前言 Java 8于14年发布到现在已经有5年时间了,经过时间的磨练,毫无疑问,Java 8是继Java 5(发布于2004年)之后的又一个非常最重要的版本.因为Java 8里面出现了非常多新的特 ...

  6. System.arraycopy方法解释

    数组拷贝 public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int lengt ...

  7. day19-Python运维开发基础(类的魔术方法)

    1. __new__魔术方法 # ### __new__ 魔术方法 ''' 触发时机:实例化类生成对象的时候触发(触发时机在__init__之前) 功能:控制对象的创建过程 参数:至少一个cls接受当 ...

  8. Android SDCard文件、目录操作【转】

    一.权限问题 参考:http://www.cnblogs.com/sky-zhang/p/3403393.html Android框架是基于Linux内核构建,所以Android安全系统也是基于Lin ...

  9. MyEclipse JSP页面中文字符不能保存

      问题: 就是写HTML+JSP代码时有些中文,保存时提示sava could not be completed. Reason: some characters cannot be mapped ...

  10. Java 理论与实践: 哈希

    有效和正确定义hashCode()和equals() 每个Java对象都有 hashCode() 和 equals() 方法.许多类 Override 这些方法的缺省实施,以在对象实例之间提供更深层次 ...