# 安装Apache
## Linux
**包安装**
```bash
# CentOS
# yum源安装
yum install httpd httpd-devel
rpm -qa | grep httpd #查询apache是否安装
systemctl start httpd #启动apache服务
systemctl enable httpd #开机自启动apache服务
rpm -e --nodeps httpd #卸载apache
# Ubuntu
# apt源安装
apt install apache2
systemctl start apache2 #启动apache服务
systemctl enable apache2 #开机自启动apache服务
# Apache的默认文档路径的位置是在/var/www/html
# CentOS配置文件的路径是/etc/httpd/conf/httpd.conf
# Ubuntu配置文件的路径是/etc/apache2/httpd.conf
```
**源码安装**
1、复制 apr 和 apr-util 库
我们必须手工复制 apr、apr-util 和 pcre 这三个库,才可以正确安装 Apache 2.4。
```bash
cp -r /usr/local/src/apr-1.4.6 /usr/local/src/httpd-2.4.7/srclib/apr
cp -r /usr/local/src/apr-util-1.4.1 /usr/local/src/httpd-2.4.7/srclib/apr-util
```
#这两个包先要解压缩,然后改名复制到指定位置
2、安装 pcre 源码包
pcre 是一个用 C 语言编写的正则表达式函数库,Apache 和 PHP 默认使用的就是 pcre 正则表达式规则。
```bash
cd /usr/local/src/pcre-8.34
#进入解压缩目录
./configure
#编译前配置
make
#编译
make install
#编译安装
```
3、进入 Apache 解压缩目录
```bash
cd /usr/local/src/ httpd-2.4.7
```
4、编译前配置
```bash
./configure \ #编译前配置
--prefix=/usr/local/apache2/ \ #指定Apache安装目录
--sysconfdir=/usr/local/apache2/etc/ \ #指定Apache配置文件保存目录
--with-included-apr \ #使用捆绑APR/APR-Util 的副本
--enable-so \ #以动态共享对象(DSO)方式编译
--enable-deflate=shared \ #启用编小传输编玛支持的模块
--enable-expires=shared \ #根据用户的特别设定来生成失效和隐藏控制的HTTP头信息
--enable-rewrite-shared #启动重写功能的模块
```
这里的 Apache 是使用动态方式编译的,那么是否有静态方式编译呢?当然有,静态方式编译就是直接将 Apache 的模块放入 Apache 中,如果 Apache 需要调用这个模块,则直接调用即可。这种方法安装的 Apache 性能更好、速度更快,但是如果需要加载新的模块,则是需要重新编译和安装 Apache 的。
如果采用动态的方式编译,则并没有直接把模块放入 Apache,而是把模块的所在位置放入了 Apache。如果 Apache 需要调用模块,则需要到指定位置自己查找,性能比静态方式稍差。但是如果需要加载新的模块,则不用重新安装 Apache,可以动态地加载新模块。更常用的编译方式是动态方式编译,所以在安装过程中我们采用动态方式编译。
5、编译和编译安装
```bash
make
make install
```
6、 启动Apache,并进行测试
```bash
[root@localhost httpd-2.4.7]# /usr/local/apache2/bin/apachectl start
\#启动Apache
[root@localhost httpd-2.4.7]# netstat -tlun | grep 80
```
## Windows
1、下载并解压到安装目录
https://httpd.apache.org/
https://httpd.apache.org/docs/current/platform/windows.html#down
2、配置
修改D:\Program Files\Apache24\conf\https.conf文件内容
```bash
Define SRVROOT "D:/Program Files/Apache24" #当前安装目录
ServerRoot "${SRVROOT}"
```
如果不想用80端口,修改监听的端口号
```bash
#Listen 12.34.56.78:80
# Listen 80
Listen 8080
```
3、使用Web服务
不用将Apache的安装目录添加系统环境变量,而是在安装目录下运行相关命令。
- 命令行启动
- 利用Windows的托管服务命令net启动
- 安装目录下的ApacheMonitor.exe窗口程序启动
```bash
httpd -t # 测试配置文件是否正确
https.exe # 启动Web服务
httpd -k install -n Apache
# 该命令的意思是,安装Windows可托管的Apache服务,其中 "-n" 后面参数是自定义Windows服务名称,之后可使用Windows管理服务的命令来管理apache服务,如 "net start/stop apache"(启动/停止服务),在计算机管理页面可以看到Apache的服务项,若不用该方案,也可以采用命令启动服务。
```
常用命令
```bash
httpd # 启动Web服务
httpd -k start # 启动Web服务
httpd -k start -n apache # 启动名称为apache的Web服务
httpd -k restart -n apache # 重启
net start apache # 利用Windows的托管服务命令
```
4、Apache服务的卸载
若Apache服务器软件不想用了,想要卸载,一定要先卸载apache服务,然后删除安装文件(切记,若直接删除安装路径的文件夹,会有残余文件在电脑,可能会造成不必要的麻烦),在cmd命令窗口,输入如下(建议先停止服务再删除)。
```bash
httpd -k stop # 关闭Web服务
httpd -k uninstall # 卸载
sc delete apache # 利用Windows卸载服务命令
```
5、文件目录
```bash
conf ---> 配置目录
htdocs ---> 站点文件
```