一、我们使用源码安装

官网:https://httpd.apache.org/
文档:https://httpd.apache.org/docs/2.4/

下载源码包 httpd-2.4.20.tar.gz
http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.20.tar.gz
下载依赖包 apr apr-util pcre
https://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
https://archive.apache.org/dist/apr/apr-util-1.3.12.tar.bz2
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.zip

分别解压源码包,然后安装,先安装被依赖的,最后安装apache,按照下面顺序安装。
注意要指定安装路径,方便后面安装apache使用。
下面执行 make install的时候需要root权限。

安装 apr
./configure --prefix=/opt/apr
make && make install

安装 apr-util
./configure --prefix=/opt/apr-util --with-apr=/opt/apr/bin/apt-1-config
make && make install

安装 pcre
./configure --prefix=/opt/pcre
make && make install

安装最主要的 apache
./configure --prefix=/opt/apache --with-apr=/opt/apt --with-apr=/opt/apt-util --with-pcre=/opt/pcre
make && makeinstall

修改配置文件 /opt/apache/conf/httpd.conf

启动与关闭

启动  apachectl -k start
立刻停止  apachectl -k stop
立刻重启  apachectl -k restart
安全停止  apachectl -k graceful-stop
安全重启  apachectl -k graceful

说明:
    cpache的进程名为 httpd
    vi修改后提权保存文件的方法:
        :w !sudo tee %
    用源码安装的整个软件全部在指定目录下。
        
需要修改http.conf中的:
    ListenPort
    ServerName 这两个地方端口写成一样的
系统权限问题:
    普通用户不能在apache主目录下写日志,会启动失败。
    普通用户不允许使用80端口,会启动失败。
    所以我们要用root来启动 httpd 服务。
    (如果非要普通用户启动,可以把日志写在别处或者给日志目录赋予权限,并且使用其他端口)
    
        
二、从软件仓库安装,直接一句话搞定:
sudo apt-get install apache2   
可以使用service开启动关闭,不过apachectl更好。
安装位置一般在 /usr/share下。
查看软件包安装了哪些文件(查看安装位置的方法):
dpkg -L apache2
安装的文件位置不集中,而是按照系统约定分散在各处。

Linux部署apache的更多相关文章

  1. Linux部署Apache ActiveMQ 5.14.1

    简单记一下,下载地址 http://activemq.apache.org/download.html 一.安装JDK7以上,官方说明:http://activemq.apache.org/versi ...

  2. Linux部署Apache Solr5.5.2+Apache Zookeeper3.4.6

    一.官网下载所需包. solr-5.5.2.tgz 下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/5.5.2/ zookee ...

  3. AWS EC2中部署Apache服务器(LAMP)

    关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...

  4. Linux下Apache服务部署静态网站------网站服务程序

    文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序

  5. Linux下部署Apache+PHP

    Linux下部署Apache+PHP 编辑于2021-02-19 本文中Apache配置文件目录为/etc/httpd/conf/httpd.conf,PHP安装目录为/usr/local/php 一 ...

  6. linux部署MantisBT(一)部署apache

    一.部署apache 1.下载apache安装包及依赖包 http://httpd.apache.org/download.cgi#apache24(apache2)http://apr.apache ...

  7. Linux下apache+phppgadmin+postgresql安装配置

    Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...

  8. Linux部署与基本指令

    把以前写的linux发布一下下吧,写的真的好差劲... Linux部署   chmod:改变一个文件的权限 改变abc的权限为777 常用的权限: 777-644-755 ************** ...

  9. CentOS 7.4搭建LAMP,LAMP:Linux、Apache、MySQL、PHP

    CentOS 7.4搭建LAMP,LAMP:Linux.Apache.MySQL.PHP. 目录: 第一部分 准备工作 第二部分 安装Apache服务 第三部分 安装MySQL服务 第四部分 搭建PH ...

随机推荐

  1. Django views 中 View decorators

    decorators(装饰器) 1. require_http_methods 在django.views.decorators.http中,可以用来限制请求的权限. require_http_met ...

  2. Python从题目中学习:List comprehension

    九九乘法表作业其实有更简单的做法,就是用列表推导式. ------------------------------------------------------------------------- ...

  3. JS中插入节点的方法appendChild和insertBefore的应用

    1.appendChild() 方法:可以向节点的子节点列表的末尾添加新的子节点.比如:appendChild(newchild)括号里可以是创建的标签var newchild = document. ...

  4. dedecms代码研究五

    上一次留几个疑问: 1)DedeTagParse类LoadTemplet方法. 2)MakeOneTag到底在搞什么. 从DedeTagParse开始前面,我们一直在dedecms的外围,被各种全局变 ...

  5. ArrayList、HashTable、List、Dictionary的演化及如何选择使用

    在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...

  6. PHP指定字段的多维数组排序方法

    PHP数组排序可以用array_multisort方法实现,但是如果是多维数组,并且我们要指定数组中的某个字段进行排序,那么这就需要我们自己写方法实现了. function sortArrByFiel ...

  7. Maven实战(四)生命周期

    1. 三套生命周期     Maven拥有三套相互独立的生命周期,它们分别为clean,default和site. 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和 ...

  8. Spring3 url匹配规则

    Spring3 url匹配规则 Wildcard Description ? 匹配任何单字符 * 匹配0或者任意数量的字符 ** 匹配0或者更多的目录 宝贝网址:

  9. Android菜鸟成长记5-ADB和sqllite

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

  10. Spring 定时执行任务重复执行多次

    使用spring的定时任务组件的时候,代码如下. @Scheduled(cron="0 5/5 * * * ?") public void sendWeatherSMS() { S ...