目录
一、LAMP概述
L-Linux系统
A-Apache网页服务(静态网页)
M-Mysql数据库
P-PHP网页 (动态网页)
二、Apache简介
Apache起源
源于A Patchy Server,著名的开源Web服务软件
1995年时,发布Apache服务程序的1 .0版本
由Apache软件基金会(ASF) 负责维护
最新的名称为“Apache HTTP Server”
官方站点: http://httpd.apache.org/
主要特点
开放源代码、跨平台应用
支持多种网页编程语言
模块化设计、运行稳定、良好的安全性
软件版本
1.X
目前最高版本是1.3, 运行稳定
向下兼容性较好,但缺乏一些较新的功能
2.X
目前最高版本是2.4
具有更多的功能特性
与1.X相比, 配置管理风格存在较大差异
三、编译安装httpd服务器简介
编译安装的优点
具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于移植使用
获得Apache服务器的源码包
参考地址: http://httpd.apache.org/download.cgi
Apache的依赖软件包
apr:为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。早期apache为了能够处理各种不同的系统平台的时候调用不同的处理函数,现在apache将通用函数独立出来发展成apr项目。
apr-util:完整的apr开发包包含三个: apr、apr-util、apr-iconv。都是为了完成一个功能就是为上层应用提供运行库,只不过和apr提供的数据结果和接口库不一样而已。
pcre-devel:为了支持正则表达式
expat-devel:是一个C语言开发的、用来解析XML文档的开发库,主要作用是搜索它的文档,识别文件指定的位置,调用该部分相应的处理程序﹐将文件输送到解析器,将文件分割成多个片断,分段装到内存中。
perl:内部集成了正则表达式和第三方代码库CPAN。和前面的pcre-devel支持的正则表达式不一样。
Apache配置的选项
–prefix:指定apache程序安装到哪个目录下。
–enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移。
–enable-charset-lite:启用字符集支持,以便支持使用字符集编码的网页。
–enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。
Apache主要子目录的用途
/usr/local/httpd/bin:存放httpd_服务的各种可执行程序文件
/usr/local/httpd/conf:存放httpd服务的各种配置文件
/usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html
/usr/local/httpd/logs:存放httpd 服务的日志文件
/usr/local/httpd/modules:存放httpd服务的各种模块文件
/usr/local/httpd/cgi-bin:存放各种CGI程序文件
优化Apache执行路径
1.创建链接
2.将apache程序的路径加入PATH环境变量中
查看Apache程序的版本
httpd-v
让Apache开机自启动
(默认源码包编译的时候是不会让apache软件包可以通过systemctl或service去管理的因为systemd单元里面没有这个服务,所以需要自己添加)
方法一:
[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/ local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost system]# systemctl enable httpd.service
方法二:
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
将域名和网页捆绑
[root@web ~]# vim /usr/local/httpd/conf/httpd.conf
ServerName www.kgc.com
检查Apache语法是否正确
[root@web ~]# /usr/local/httpd/bin/apachectl -t
Syntax OK
查看WEB站点的访问情况
访问日志:
/usr/local/httpd/logs/access_log
错误日志:
usr/local/httpd/logs/error log
apache配置文件里面的内容
ServerRoot "/usr/local/httpd" #apache网站的默认的根目录
Listen 80 #监听的网络端口号
User daemon #设置运行httpd进程时的用户身份
Group daemon #设置运行httpd进程时的组身份
ServerAdmin webmaster@kgc.com #设置httpd服务器的管理员E-mail地址
ServerName www.kgc.com #设置web站点的完整主机名
DocumentRoot "/usr/local/httpd/htdocs" #设置网站根目录,网页所在地
DirectoryIndex index.html index.php #设置网站的默认索引页,可以设置多个首页文件
ErrorLog "logs/error_log" LogLevel warn #设置错误日志的路径,错误日志的日志级别
CustomLog logs/access_log common #设置访问日志文件的路径、日志类型,使用的类型为common
PidFile logs/httpd.pid #设置用于保存httpd进程号的文件
AddDefaultCharset UTF-8 #设置站点中的网页默认使用的字符集编码一
Include conf/extra/httpd-default.conf #包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,这样便于独立进行配置功能的维护而不影响主配置文件
区域配置项
<Directory /> #定义"/"目录区域的开始
Options FollowSymLinks #控制选项,允许使用符号链接
AllowOverride None #不允许隐含控制文件中的覆盖配置
Require all denied #禁止任何人访问此区域;granted为允许访问
</Directory> #定义"/"目录区域的结束
四、项目实操:编译安装httpd
导入软件包:apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2
1、配置环境
[root@server1 ~]# tar zxvf apr-1.6.2.tar.gz #tar解包
[root@server1 ~]# tar zxvf apr-util-1.6.0.tar.gz
[root@server1 ~]# tar jxvf httpd-2.4.29.tar.bz2
[root@server1 ~]# mv apr-1.6.2 httpd-2.4.29/srclib/apr #将依赖包放入安装包srclib源库内
[root@server1 ~]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@server1 ~]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl #yun安装依赖包
2、./configure配置
[root@server1 ~]# cd httpd-2.4.29/ #进入httpd主目录
[root@server1 httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi #指定装入默认/usr/local/httpd;增加扩展功能模块,重写模块,字符集,客户端访问接口
3、make编译和安装
[root@server1 httpd-2.4.29]# make && make install
4、Apache开机自启动
[root@server1 httpd-2.4.29]# cd
[root@server1 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #能自启动
[root@server1 ~]# vi /etc/init.d/httpd #添加
#chkconfig: 35 85 21 #35级别图形化界面自动运行,第85个启动,第21个关闭
#description: Apache HTTP Server #描述信息
[root@server1 ~]# chkconfig --add httpd #将httpd加入到SERVICE管理器
[root@server1 ~]# chkconfig --list #检查一下http的3和5是开的
[root@server1 ~]# systemctl enable httpd #开启服务自启动
5、配置文件
[root@server1 ~]# ln -s /usr/local/httpd/conf/httpd.conf /etc/ #链接到/etc下方便管理
[root@server1 ~]# ln -s /usr/local/httpd/bin/* /usr/bin/ #把所有命令链接到/usr/bin/下
[root@server1 ~]# vi /etc/httpd.conf #修改配置文件
ServerName www.aa.com:80 #修改名称,去掉#注释
[root@server1 ~]# systemctl stop firewalld #关闭防火墙
[root@server1 ~]# setenforce 0
[root@server1 ~]# httpd -t #检查语法
Syntax 0K
[root@server1 ~]# apachectl -t #检查语法
Syntax 0K
[root@server1 ~]# systemctl restart httpd #重启服务
[root@server1 ~]# echo "<h1>this is my web site.</h1>" > /usr/local/httpd/htdocs/index.html #制作网页
[root@server1 ~]# netstat -anpt | grep httpd #查看监听端口是否正常
[root@server1 ~]# curl http://localhost #自己解析一下
<h1>this is my web site.</h1>