开发者学堂课程【阿里云上搭建 LAMP 环境实战:Apache 源码包2.4.41版本】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/663/detail/11087
Apache 源码包2.4.41版本
内容介绍
一、安装 Apache
1.安装依赖包
2.安装 apr
3.安装 expat 库
4.安装 pcre
5.安装 zlib
6.安装 mod_ssl
7.httpd 软件安装
8、启动 Apache 测试
本章进行 Apache 的安装,各个软件安装顺序没有规定,建议先安装Apache
一、安装 Apache
1. 安装依赖包
先在 Xshell 命令框中输入以下命令,解压安装 Apache 需要的所有软件和依赖包到当前目录下,即/root/lamp/下
# tar -xf httpd-2.4.41.tar.gz
# tar-xf apr-1.6.5.tar·gz
(apr和apr-util是apache中分出来的包)
# tar-xf apr-util-1.6.1.tar.gz(工具包)
# tar-xf pcre-8.43.tar·gz(正则需要的包)
# tar -xf zlib-1.2.11.tar.gz(解压缩需要的包)
在此按照上述顺序依次解压即可,全部解压完毕输入命令#ls 即可看到各个依赖被添加成功。
2. 安装 apr
源码包2.4.*版本中默认没有集成 apr 的依赖包,所以需要提前解决依赖问题。
根据语句可以知晓,仅需要把 apr 放在 srclib 目录下去除版本号即可。apr-util 也是一样,具体操作将以下两条指令输入命令框即可。
#cp -a/root/lamp/apr-1.6.5/root/lamp/httpd-2.4.41/srclib/apr
#cp-a/root/lamp/apr-util-1.6.1/root/lamp/httpd-2.4.41/5rclib/apr-util
3.安装 expat 库
同时如果缺少 expat 库,否则在编译 apr.时会出错 apr-util.,致命错误:expat.h:没有那个文件或目录。所以接下来输入以下指令来安装expat库,不需要源码安装,yum安装即可。
#yum install -expat-devel
解压 apr 和 ap-util,复制整个目录并取消目录上的版本号到指定位置,./configure 时会检测。
4.安装 pcre
因为 Apache 默认需要依赖 pcre,软件,但由于 Apache 软件版本较高,则系统预安装的 pcre 无法使用,所以安装需要人为手动安装适合版本,它的安装不需要指定位置,将以下四行指令敲入即可。
# cd /root/lamp/pcre-8.43
# ./configure
# make
# make install
之后输入# make
5.安装 zlib
安装zlib的时候也不需要指定目录,只需首先使用#cd..回到上一目录,来到 cd /root/lamp/zlib-1.2.11目录下,依次输入安装配置的指令即可。
# cd /root/lamp/zlib-1.2.11
#./configure
# make
# make install
6.安装 mod_ssl
mod_ssl 不需要源码安装直接使用 yum 源安装即可,同时 Apache 的加密传输模块需要安装此软件产生加密有关的操作。
# yum -y install openssl-devel
7. httpd 软件安装
接下来就正式安装Apache的各种软件,首先输入#cd ..进入到 Apache 的目录下,输入:#cd httpd-2.4.41,寻找目录时候,可以输入:#ls 查看当前目录下是否是 Apache 所在目录。
配置 apache 配置文件的目录,包含 apr 之前拷贝的目录,包括 so 和一些有关重写的模块,指定 ssl 等等,为了防止敲错,直接将以下前9条命令粘贴到指令框即可。(注意:粘贴时要注意所属目录是否匹配)
# cd/lamp/httpd-2.4.41
#./configure \
--prefix=/usr/local/apache2 \
--sysconfdir=/usr/local/apache2/etc\(apahce配置文件的目录)
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--enable-ss\
#make(等待前面的语句执行之后,输入 make 编译)
#make install(编译完成后再输入 make install 安装)
--enable-ss选项是为了后期实现 https 提前设置的参数。
在安装完成后可以输入指令:#echo $?查看是否有错误,为0则表示成功。
8、启动 Apache 测试
① Apahce 是一个服务器需要启动80端口,
所以输入指令:#netstat -tnl 可以查看端口的开启情况。可以看到此时只开启了22端口。
② 输入命令:#cd user/local/apache2/和#ls查看其目录结构。
其中 bin 目录是 apache 一些关于启动、关闭、调优的命令。
如:启动使用的命令为:#./apachectl -m;执行命令为:#./ap
achectl -H;查看 apache 支持的模块:# /user/local/apache2/bin/ap。同时如果使用 rpm 包安装或者系统其他的安装自带的服务,都会自动将其启动到服务中去。
在此也可以一块一块的将服务去制作,当然也可以使用环境变量,在 Apache 的 bin目录就可以直接使用命令,最后在源码包安装时,知道目录也可以达到这样的效果。
③ 输入:# /user/local/apache2/bin/apachectl start 后开启
Apache 失败,报错显示没有 ServerName 不知该如何访问。
要解决此问题,首先找到 Apache 位于 etc 目录下的 httpd.config 的主配置文件,依次输入:
#cd ..
#ls
#cd etc/
#ls
同时如果采用 rpm 包的安装方式,Apache 就会将所有内容放到主配置文件中,而用源码安装,因为 Apache 的配置文件十分长所以他会按照功能分成许多个小的配置文件。
输入:#cd extra/#ls
就可以看到(如图)
④ 解决80端口没有被打开的问题
输入命令:
#vi httpd.conf
?ServerName
找到#ServerName www.example.com:80语句将其80端口给打开,变为:ServerName localhost:80,输入:wq!,此时它的域名还没有绑定指定本机的localhost即可.最后重新再将apache2的bin目录下的Apache打开:# /user/local/apache2/bin/apachectl start,在输入:#netstal -tnl开启就可以看到80端口运行成功。
如果想要停止80端口只需要输入指令:# /user/local/apache2/bin/apachectl stop即可。
l 主要步骤:
#/user/local/apache2/bin/apachectl start
# pS aux I grep httpd
使用进程查看命令确认 Apache 是否启动,是否产生进程
# netstat -tlun
使用网络进程查看命令确认 Apache 是否启动,是否开启了80鉴听端口
注意事项: Centos 7操作系统上 Apache 默认监听了 lpv6 地址的 80端口,没有监听ipv4 的地址,所以需要修改下配置文件使其监听。
Listen 0.0.0.0:80
报错提示:若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SELinux解决,类似此类.so文件不能载入或没有权限的问题,都是SELinux.问题,MySQL 和 Apache 都可能有类似问题。
警告提示:发现启动服务提示。AH00558: httpd:Could not reliably determine the server's fully
解决办法:打开主配置文件 httpd.conf 搜索 ServerName
(约在200行左右)
改为 ServerName localhost:80(并且去掉前面的#注释)
验证:通过浏览器输入地址访问: http://服务器ip,若显示“lt works”即表明Apache 正常工作。
发布实例
等待以上操作都完成之后,我们查看是否能够发布实例,复制实例的公网 ip:47.92.200.135,我们要查看公网 ip 只能通过 Apache 的控制台去访问。
在地址栏输入47.92.200.135会默认使用80端口和 http,看到成功访问之后,我们就可以发布静态网站了,发布网站的目录在 Apache 的根目录下的 htdocs 目录下,同时这个目录可以通过修改 Apache 的配置文件来改变。
输入指令如下:
#cd ..(返回上一目录)
#ls
#pwd
#cd htdocs/
#clear(清屏)
l 编写 test.html
同时在此目录下还具有一个 index.html,输入指令#vi index.html即可查看。同时也可以输指令:#vi test.html 来编写页面,如:在 test.html 添加内容:
<meta charset=“utf-8”>
这是我们的第一个页面
最后输入:wq!执行,访问 apache 下的 test.html 即可访问我们编写的页面。
l 编写 test.php
先输入命令行:#vi test.php
在其中设置 test.php 文件的内容,编写一个测试的循环,代码如下:
for($i=0;$i<10;$i++){
echo”=={$i}
\n”;
}
最后输入:wq!执行后再在 Apache 中访问可以看到此时输出的并非结果,而是源代码,说明 Apache 并没有解析 php 的能力需要先给 php 解析器去解析之后再把结果返回 Apache 服务器去展示。
以上就是所有安装 Apache 需要的软件,我们需要记忆的有 Apache 启动、关闭和写网页的页面在哪,端口是否开启,怎么请求访问等等。