前些天发现了一个巨牛的人工智能学习网站,内容通俗易懂、风趣幽默,忍不住想分享一下。对人工智能感兴趣的同学可以去看看哦
一、Apache网站服务的概述
Apache的起源以及特点
出现: 针对之前出现的若干个web服务器程序进行整合,完善后形成的软件
管理维护: 由ASF负责
主要特点:
(1)开放源代码
(2)跨平台使用,支持绝大多数硬件平台,支持所有的unix系统和linux系统,支持大多数windows平台
(3)支持多种web编程语言,perl,php,python,java等
(4)模块化设计,根据所需功能去安装不同的模块
(5)运行非常稳定,支持大负载访问的web站点
(6)安全性高,及时修复已发现的漏洞
二、Apache服务器的安装
(1)准备工作
- httpd服务的默认监听端口: 80
(为了避免端口冲突,先用rpm的方式卸载已安装的httpd)
[root@centos7-007 ~]# rpm -e httpd --nodeps 错误:未安装软件包 httpd
- Apache需要apr、pcre等软件包的支持,从系统光盘预安装这些软件及开发工具包
[root@centos7-007 ~]# mkdir /media (创建挂载目录) [root@centos7-007 ~]# mount /dev/cdrom /media/cdrom (把镜像文件挂载) [root@centos7-007 ~]# vim /etc/yum.repos.d/centos.repo (写一个yum库,写之前,进去目录中,先用rm -rf * 删除一下文件在创建,后缀是.repo就行) [aaa] name=这是一个本地YUM baseurl=file:///media/cdrom (这里写镜像挂载的目录即可) enabled=1 gpgcheck=0 [root@centos7-007 ~]# yum -y install apr apr-devel cyrus-sasl-devel expat-devel libdb-devel apr-util-devel apr-util pcre-devel pcre openldap-devel 为了避免系统中存在一些依赖性关系包没有安装的问题,可以使用yum装,方便一点
(2)源码编译安装Apache
[root@centos7-007 ~]# ll (上传源码包) 总用量 8268 -rw-------. 1 root root 1220 9月 3 18:16 anaconda-ks.cfg -rw-r--r-- 1 root root 8460433 12月 9 17:25 httpd-2.4.25.tar.gz [root@centos7-007 ~]# tar zxvf httpd-2.4.25.tar.gz -C /usr/src/ (解压到指定目录) [root@centos7-007 ~]# cd /usr/src/httpd-2.4.25/ (切换到解压的目录) [root@centos7-007 httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi && make && make install (根据需要进行配置,加载相应的模块,&&是执行完前一个命令在执行后一个命令,直接使用&&编译及安装) [root@centos7-007 httpd-2.4.25]# cd [root@centos7-007 ~]# ls /usr/local/httpd/ (确认安装结果,安装完成会有12个文件) bin cgi-bin error icons logs manual build conf htdocs include man modules [root@centos7-007 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ (创建软连接) [root@centos7-007 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd (把Apache的服务脚本复制到/etc/init.d下并且命名为httpd) [root@centos7-007 ~]# vi /etc/init.d/httpd (进入刚刚复制的文件,再第二行写入chkconfig: 35 85 21 ,用于添加系统服务时识别) #!/bin/sh #chkconfig: 35 85 21 。。。。。 添加chkconfig 识别配置,将该服务在3、5 级别启动;启动和关闭的顺序分别为85 、21 保存退出 [root@centos7-007 ~]# chkconfig --add httpd (添加httpd为系统服务) 发现已经可以通过systemctl管理http服务 [root@centos7-007 ~]# systemctl start httpd [root@centos7-007 ~]# systemctl status httpd ● httpd.service - (null) Loaded: loaded (/etc/rc.d/init.d/httpd; bad; vendor preset: disabled) Active: active (running) since 三 2020-12-09 17:36:45 CST; 11s ago Docs: man:systemd-sysv-generator(8) Process: 18095 ExecStart=/etc/rc.d/init.d/httpd start (code=exited, status=0/SUCCESS) CGroup: /system.slice/httpd.service ├─18098 /usr/local/httpd/bin/httpd -k start ├─18099 /usr/local/httpd/bin/httpd -k start ├─18100 /usr/local/httpd/bin/httpd -k start └─18101 /usr/local/httpd/bin/httpd -k start 12月 09 17:36:45 centos7-007 systemd[1]: Starting (null)... 12月 09 17:36:45 centos7-007 httpd[18095]: AH00558: httpd: Co... 12月 09 17:36:45 centos7-007 systemd[1]: Started (null). Hint: Some lines were ellipsized, use -l to show in full. [root@centos7-007 ~]#
*****如果不把apache添加到系统服务里那么启动apache服务的命令为: [root@centos7-007 ~]# /usr/loacl/httpd/bin/apachectl start\stop\restart (在主目录里直接启用) *****可以查看端口号 [root@centos7-007 ~]# netstat -anpt | grep httpd (最小安装的centos可能会没有netstat这条命令) tcp6 0 0 :::80 :::* LISTEN 18098/httpd [root@centos7-007 ~]# yum -y install vim net-tools (安装vim以及网络工具如netstat)
三、Apache重要子目录的作用
我这里是安装到/usr/local下了,但是主目录里的子目录是相同的
/usr/local/httpd/bin
存放各种执行程序文件,包括主程序httpd、服务控制工具apachectl等
/usr/local/httpd/logs
存放httpd服务的日志文件
/usr/local/httpd/conf
存放各种配置文件、主配置文件httpd.conf、增强配置子目录extra等
/usr/local/httpd/htdocs
存放网页文档,默认首页文件是index.html,可以在主配置文件里进行修改
四、利用apache服务配合dns等服务结合使用
安装完apache服务后,只要服务处于开启状态,那么就可以直接进行访问
访问的地址就是apache服务器的地址
打开一台win7或者真机也可以,同一网段同一网卡,直接进行访问,默认页面就是 It works!
可以去主目录下的/htdocs下修改index.html从而修改网页内容
[root@centos7-007 ~]# vim /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html> 修改为: aaaaaa 重启服务,再次使用win7访问,发现页面已经变成aaaaaa [root@centos7-007 ~]# systemctl restart httpd
apache和dns相结合使用
要求:以www.aaa.com这个域名访问网站
步骤:
*****安装dns服务 (之前已经挂载光盘并且已经写了yum库文件) [root@centos7-007 ~]# yum -y install bind [root@centos7-007 ~]# vim /etc/named.conf (进入dns的主配置文件) 。。。。。 options { listen-on port 53 { 192.168.100.7; }; (地址改为本机地址) listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; (允许所有主机可解析) 。。。。。 zone "." IN { type hint; file "named.ca"; }; zone "aaa.com" IN { (从上面的zone区域复制四行到下面,然后修改成要求的数据) type master; file "aaa.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; 保存退出 *****添加区域配置文件 [root@centos7-007 ~]# cd /var/named/ [root@centos7-007 named]# ll 总用量 16 drwxrwx--- 2 named named 6 4月 1 2020 data drwxrwx--- 2 named named 6 4月 1 2020 dynamic -rw-r----- 1 root named 2253 4月 5 2018 named.ca -rw-r----- 1 root named 152 12月 15 2009 named.empty -rw-r----- 1 root named 152 6月 21 2007 named.localhost -rw-r----- 1 root named 168 12月 15 2009 named.loopback drwxrwx--- 2 named named 6 4月 1 2020 slaves [root@centos7-007 named]# cp named.localhost aaa.ca (复制模板文件到新的aaa.ca,这个新的文件必须和刚才在主配置文件里的 file项的文件名相同) [root@centos7-007 named]# vim aaa.ca (编写区域配置文件) $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 修改为: $TTL 1D @ IN SOA aaa.com. mail.aaa.com. ( 2020120900 ; serial (这个随便修改成10位数即可) 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS www.aaa.com. www IN A 192.168.100.7 (地址是本机地址) 保存退出 *****把主配置文件和区域配置文件的属主和属组改成named [root@centos7-007 named]# chown named:named aaa.ca [root@centos7-007 named]# chown named:named /etc/named.conf [root@centos7-007 named]# systemctl start named (开启dns服务) *****修改apache的主配置文件 [root@centos7-007 named]# vim /usr/local/httpd/conf/httpd.conf 。。。。。。 (在200行修改httpd的主机名为www.aaa.com) 200 ServerName www.aaa.com:80 (200+G 即可跳转到200行,修改为www.aaa.com) 。。。。。 保存退出 [root@centos7-007 named]# apachectl -t (检查主配置文件) Syntax OK (没有问题) [root@centos7-007 named]# systemctl restart httpd (重启apache服务) 修改win7的dns地址为apache服务器的地址,使用www.aaa.com进行访问
成功!!!!
五、httpd.conf主配置文件详解
vim /usr/local/httpd/conf/httpd.conf (主配置文件路径)
组成: 注释行和设置行两部分组成
注释行: 以“#
”开头,包含相关配置内容的说明和解释
(1)全局配置项
特点: 独立存在,使用“关键字 值
”这种配置格式
重要的配置项:
ServerRoot : 设置httpd 服务器的根目录
(默认httpd 安装的位置就是该根目录的位置)
Listen : httpd 服务监听的端口
(默认监听TCP 的80 端口)
ServerName: Web 站点完整的主机名
(主机名 + 域名)
DocumentRoot: 默认的网站根目录,也就是网页文档实际所存放的位置
DirectoryIndex: 网站的默认索引页,可以设置多个首页文件,以空格分开;
(默认的是index.html)
PidFile: 用于设置保存httpd 进程号文件所在的位置,
(默认保存地址: /usr/local/httpd/logs/httpd.pid)
(2)区域配置项
特点: 使用一对组合标记,限定了配置项的作用范围,区域配置项只对区域内有效
示例:
[root@centos7-007 ~]# vim /usr/local/httpd/conf/httpd.conf 。。。。。 (如:下面这个就算区域配置项) <Directory "/usr/local/httpd/htdocs"> # # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted </Directory> 。。。。。 ******格式 <Directory> 配置项 htdox </Directory>