Apache服务的搭建与配置

1. 使用yum包安装Apache软件

yum -y install httpd*       通过yum安装apache
rpm -qa | grep httpd       查看安装的http包

安装成功后,会产生下面两个文件

/etc/httpd/conf/httpd.conf  # 主配置文件
/var/www/html                   # 默认网站家目录

2. 认识配置文件里的主要参数

vim /etc/httpd/conf/httpd.conf
 31 serverRoot "/etc/httpd"           # 存放配置文件的目录
 42 Listen 80           # Apache服务监听端口
 66 User apache     # 子进程的用户
 67 Group apache   # 子进程的组
 86 ServerAdmin root@localhost  # 设置管理员邮件地址
 119 DocumentRoot "/var/www/html" --网站家目录
 # 设置DocumentRoot指定目录的属性
 131 <Directory "/var/www/html">   # 网站容器开始标识
144 Options Indexes FollowSymLinks   # 找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外
151 AllowOverride None                # none不使用.htaccess控制,all允许
156 Require all granted                 # granted表示运行所有访问,denied表示拒绝所有访问
157 </Directory>    # 容器结束
164 DirectoryIndex index.html       # 定义主页文件,当访问到网站目录时如果有定义的主页文件,网站会自动访问
316 AddDefaultCharset UTF-8      # 字符编码,如果中文的话,有可能需要改为gb2312或者gbk,因你的网站文件的默认编码而异

3. 启动Apache网站

systemctl start httpd.service   #启动服务
lsof -i:80         --查看httpd服务是否启动
更改家目录就修改如下两条设置并重启Apache
 119 DocumentRoot "/var/www/html" --网站家目录
 # 设置DocumentRoot指定目录的属性
 131 <Directory "/var/www/html">   -- 网站容器开始标识
编译安装Apache服务

1. 安装编译所需要的信赖软件包

yum -y install gcc* make* apr apr-util pcre apr-devel apr-util-devel  pcre-devel  --安装依赖包
2. 安装OpenSSL和Apache

安装OpenSSL

https://www.openssl.org/source/openssl-1.1.1c.tar.gz    --这个是1.1.1c的下载地址
#wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz      --下载openssl软件包(原文)
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz    --这边进行了修改
#tar xf ./openssl-1.0.2m.tar.gz -C /usr/src       --解压到/usr/src目录(原文)
tar xf ./openssl-1.1.1c.tar.gz -C /usr/src      --再进行了修改
cd /usr/src/openssl-1.1.1c/    --切换路径到/usr/src目录
./config --prefix=/usr/local/ssl --shared      --检查配置指定路径到/usr/local/ssl
运行后出现如下提示
这是由于缺少了Perl 5导致的

于是我们要安装Perl 5

yum install perl                  --安装Perl5
./config --prefix=/usr/local/ssl --shared   --再次进行检查配置并指定路径
make && make install     --编译安装
echo  /usr/local/ssl/lib >> /etc/ld.so.conf   --/usr/local/ssl/lib  内容写进去 /etc/ld.so.conf这个文件
ldconfig            --使库文件生效
安装Apache
http://apache.org/dist/httpd/httpd-2.4.38.tar.gz    --最新版apache下载地址
wget http://archive.apache.org/dist/httpd/httpd-2.4.28.tar.gz    --下载apache软件包(原文)
wget http://apache.org/dist/httpd/httpd-2.4.38.tar.gz    --下载apache软件包(修改后)
tar xf httpd-2.4.38.tar.gz -C /usr/src     --解压到/usr/src
cd /usr/src/httpd-2.4.38/    --进入该目录
./configure -help        --查看参数帮助
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-ssl --with-ssl=/usr/local/ssl --with-mpm=prefork
make && make install   --编译安装
以下是./configure 后面的参数详解
--prefix 指定安装路径
--enable-so 让apache核心装载DSO(动态共享目标)
--enable-rewrite 启用重写功能
--enable-modules 将模块编译到apache中
--enable-ssl 打开ssl协议
--with-mpm 指定运行模型
运行模式:/etc/httpd/conf.modules.d/00-mpm.conf
多进程模型:prefork(预派生)
多进程多线程混合模型:worker(工作者)、event(事件)
编译安装成功后,安装在:/usr/local/apache2/ 目录下
配置文件:/usr/local/apache2/conf/httpd.conf
启动命令:/usr/local/apache2/bin/apachectl
默认网站家目录:/usr/local/apache2/htdcos
3. 修改家目录
vim /usr/local/apache2/conf/httpd.conf  --修改配置文件
220 DocumentRoot "/www"     --修改网站家目录,由/usr/local/apache2/htdocs改成/www
221 <Directory "/www">          --家目录这里建议一同修改
mkdir /www     --创建网站家目录
echo "main page" > /www/index.html
#systemctl stop httpd.service   --该步骤是停止rpm包安装(yum安装)的http服务,如果没有安装则可以略过
/usr/local/apache2/bin/apachectl start     --然后启动源码包编译安装的http服务


4. 配置支持中文
vim /usr/local/apache2/conf/httpd.conf
# 在文件的最后新增以下参数
AddDefaultCharset UTF-8       # 默认以utf-8编码显示中文
5. 启动源码包版Apache
/usr/local/apache2/bin/apachectl restart       --重新启动apache

6. 测试

echo "<h1>Apache源码包版,测试</h1>" > /www/index.html
elinks localhost                   --因为没有图形化界面,是不能使用Firefox之类的图形浏览器

五、Apache配置虚拟主机

参考
https://blog.51cto.com/13525470/2070375