2018.3.110周2次课

author author     2022-10-21     621

关键词:

十周第二次课(3月1日)

11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主

11.14/11.15 Apache和PHP结合

配置httpd支持php

  • httpd主配置文件/usr/local/apache2.4/conf/httpd.conf

  • vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方

  1. ServerName

技术分享图片

搜索ServerName,把#ServerName www.example.com:80前面的#删除。

重启时报错:/usr/local/apache2.4/bin/apachectl restart

技术分享图片

修改vim /usr/local/apache2.4/conf/httpd.conf   //因为有二个php模块,注释掉一个

技术分享图片

技术分享图片

技术分享图片

  1. Require all denied   //更改为Require all granted

技术分享图片

在虚拟机上没有打开80端口。所以无法访问虚拟机

临时打开80端口:iptables -I INPUT -p tcp --dport 80 -j ACCEPT

技术分享图片

上面Require all granted如果改为Require all denied则我们在访问网页会出现403错误

网页显示正常

技术分享图片

  1. AddType application/x-httpd-php .php

搜索AddType application/x-gzip .gz .tgz,在该行下面添加AddType application/x-httpd-php .php  //如果不添加这行,php就无法解析

技术分享图片

  1. DirectoryIndex index.html index.php

找到DirectoryIndex index.html修改为DirectoryIndex index.html index.php  //增加一个php索引页

技术分享图片

  • 检验httpd配置文件是否正确,只有正确配置才能正确解析PHP文件

/usr/local/apache2.4/bin/apachectl -t      //测试语法

技术分享图片

/usr/local/apache2.4/bin/apachectl graceful  //重新加载配置文件

/usr/local/apache2.4/bin/apachectl start   //启动服务

查看httpd是否启动:netstat -lntp

技术分享图片

 

也可以用curl命令进行简单的测试:curl localhost

技术分享图片

 

 测试成功

  • 测试是否正确解析PHP

 编写一个测试脚本,如下所示:

 vim /usr/local/apache2.4/htdocs/1.php   //增加如下内容

 <?php

phpinfo()

?>

网页显示正常

技术分享图片

如果不能正常解析,会显示的是源代码

技术分享图片

如果遇到php不能解析的情况

  1. 要检查apache配置文件

/usr/local/apache2.4/bin/apachectl –M  //是否加载php模块

技术分享图片

 

  1. 如果没有php模块:

ls /usr/local/apache2.4/modules/libphp5.so   //查看有没有libphp5.so文件

技术分享图片

  1. 如果有libphp5.so文件单没有显示:

vim /usr/local/apache2.4/conf/httpd.conf   //检查conf配置文件,是否加载了php模块

技术分享图片

  1. AddType application/x-httpd-php .php   //检查conf配置文件里,是否添加了这一行

技术分享图片

  1. DirectoryIndex index.html index.php  //检查conf配置文件里,这行是否增加一个php索引页

技术分享图片

Ctrl+r:  如果命令关键字  //快速查找命令

11.16/11.17 Apache默认虚拟主机

先来解释“虚拟主机",早期的Linux服务器上,一个服务器只能运行一个网站,也就是说只能跑一个域名。但随着技术的发展,一个服务器上可以跑多个域名了 这样可以帮我们节省了成本。其实这里的服务器就叫作主机,早期一个主机对应一个站点。现在不同了,一个主机可以跑多个站点,所以就有了虚拟主机的概念。我们可以把一台服务器虚拟出多个主机出来,这样就实现了一台服务器上跑多个站点。

既然服务器上可以有多个虚拟主机,每个虚拟主机都会定义一个域名(当然也可以定义多个),只要把这个域名解析指向到该台服务器,我们自然就可以访问这个站点了。说到这儿,你可能又有新的问题:什么叫解析指向?如果你会用浏览器去访问一个站点,那下面的解说肯定不难理解。咱们访问一个网站,需要在浏览器里面输人域名,然后就能访问到网站内容。这个过程是需要浏览器和远程服务器通信的,网站内容就是从服务器上读取到的。而这个服务器是由你访问的域名来决定在哪里的,而域名之所以能决定服务器在哪里,就是因为这个域名做了解析指向。域名解析服务器IP地址,这个行为是由DNS服务器来完成的

假如你访问的域名指向了你的服务器,而你又在这台服务器上做了配置标记了这个域名(接下来会讲解如何标记),这样这个域名就能被正常访问。但如果没有在服务器上给这个域名做标记,会发生什么呢?按理说,没有做标记的域名是不合法的,是不能正常返回结果的。

上面讲了那么多关于域名的东西,的目的就是让你更容易理解“默认虚拟主机"的概念。httpd 有一个特点,它首先是支持多个虚拟主机的,也就是说可以在一个服务器上运行多个站点,标记多个域名。但如果没有标记的域名也指向了这台服务器,那总得有一个处理这个域名的虚拟主机吧。而这个虚拟主机就叫作“默认虚拟主机"。通俗点讲,你的服务器上有很多域名,很多站点,很多虚拟主机,这些域名都是在httpd的配置文件中做过标记的,都是“名花有主"的,都是一一对应的,每个域名都能对应着自己的虚拟主机。但是,有一个特殊的域名也指向了服务器,却没有跟它对应的虚拟主机。这时候,httpd就会把这个域名直接丢给一个特殊的虚拟主机来处理那这个特殊的虚拟主机就是 “默认虚拟主机"

最后总结成一句话,任何一个域名指向这台服务器,只要是没有对应的虚拟主机,就会由这个默认虚拟主机来处理。

  • 一台服务器可以访问多个网站,每个网站都是一个虚拟主机

  • 概念:域名(主机名)、DNS、解析域名、hosts

  • 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

  • 编辑配置文件httpd-conf(这个是httpd服务的主配置文件):vim /usr/local/apache2.4/conf/httpd.conf    //搜索httpd-vhost,去掉这行行首的#

技术分享图片

  • 编辑虚拟主机配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

 <VirtualHost *:80>

   ServerAdmin [email protected]   // ServerAdmin指定管理员邮箱,这个没有什么实质作用

   DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"   // DocumentRoot为该虚拟主机站点的根目录,网站的程序就放在这个目录下面

   ServerName dummy-host.example.com        // ServerName为网站的域名

   ServerAlias www.dummy-host.example.com   // ServerAlias为网站的别名,后面的域名可以写多个,用空格分隔 ,但serverName后面的域名不支持写多个

   ErrorLog "logs/dummy-host.example.com-error_log"   // ErrorLog为站点的错误日志

   CustomLog "logs/dummy-host.example.com-access_log" common  // CustomLog为站点的访问日志

</VirtualHost>

技术分享图片

创建相关的目录和文件:mkdir -p /data/wwwroot/abc.com  /data/wwwroot/111.com

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

测试虚拟主机:

可以编辑hosts文件:vi /etc/hosts

也可以用curl –x命令

技术分享图片

技术分享图片

默认虚拟主机:虚拟主机配置文件里的第一个虚拟主机

技术分享图片

  • 在httpd.conf主配置文件里使虚拟主机配置文件httpd-vhost.conf生效,那定义的ServerName、DocumentRoot都会失效


2018.2.279周5次课

九周第五次课(2月27日)11.6MariaDB安装11.7/11.8/11.9Apache安装11.6MariaDB安装cd/usr/local/src下载二进制安装包:wgethttps://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_ 查看详情

2018.3.1312周2次课

十二周二次课(3月13日)12.6Nginx安装12.7默认虚拟主机12.8Nginx用户认证12.9Nginx域名重定向12.6Nginx安装下载和解压:cd/usr/local/srcwgethttp://nginx.org/download/nginx-1.13.9.tar.gztar-zxvfnginx-1.13.9.tar.gz配置编译选项cdnginx-1.13.9 ./configu 查看详情

2017-12-192周2次课

2.10环境变量PATH本章用到的命令:which(用来查找摸个命令的绝对路径)。示例如下:    [[email protected]~]#whichrmdir      ~查询rmdir路径         查看详情

2018.4.1216周2次课

十六周二次课(4月12日)19.1Linux监控平台介绍19.2zabbix监控介绍19.3/19.4/19.6安装zabbix19.5忘记Admin密码如何做19.1Linux监控平台介绍cacti、nagios、zabbix、smokeping、open-falcon等等cacti、smokeping偏向于基础监控,成图非常漂亮cacti、nagios、zabb... 查看详情

2018-2-279周5次课

11.6MariaDB安装11.7/11.8/11.9Apache安装用wget下载3个安装包如下图:下载完成后分别解压缩如下图:安装apr安装apr-util安装httpd安装完成后进入apache2.4目录下查看apache加载了哪些模块启动apache 查看详情

2018.4.2618周2次课

十八周二次课(4月26日)20.31expect脚本同步文件20.32expect脚本指定host和要同步的文件20.33构建文件分发系统20.34批量远程执行命令20.31expect脚本同步文件自动同步文件编辑脚本文件:vi4.expect#!/usr/bin/expectsetpasswd"123456"spawnrsync... 查看详情

2018.1.237周2次课

七周二次课(1月23日)10.6监控io性能10.7free命令10.8ps命令10.9查看网络状态10.10linux下抓包10.6监控io性能1.iostat来对linux硬盘IO性能进行检测使用iostat,需要先安装sysstat,即yum-yinstallsysstatiostat可以产生三种类型的报告:CPU利用情况报... 查看详情

2017.12.222周5次课

2017.12.22二周第五次课2.23/2.24/2.25 find命令2.26 文件名后缀2.23/2.24/2.25 find命令1.学会使用快捷键1)ctrl+C:结束(终止)当前命令。如果你输人了一大串字符,但不想运行,可以按ctrl+C组合键,此时光标将跳入下一行,而... 查看详情

2017.12.263周2次课

三周第二次课(12月26)3.4usermod命令 3.5用户密码管理3.6mkpasswd命令3.4usermod命令 命令【usermod】用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称格式:usermod[选项]用户名选项:#-c<备注> 修改... 查看详情

2018.1.95周2次课

五周第二次课(1月9日)7.6yum更换国内源7.7yum下载rpm包7.8/7.9源码包安装7.6yum更换国内源1.恢复之前备份的文件2.进入“/etc/yum.repos.d”目录3.删除“CentOS-Base.repo”文件4.下载“163.repo”文件wgethttp://mirrors.163.com/.help/CentOS7-Base-163... 查看详情

2017-12-121周2次课

1.6/1.7配置IP 配置ip相关命令 #dhclient  (自动获取IP)#ipaddr 和ifconfig  (查看ip地址)#ping www.baidu.com   (查看是否能上网)#vi       &n 查看详情

2018.1.308周2次课

八周二次课(1月30日)10.28rsync工具介绍10.29/10.30rsync常用选项10.31rsync通过ssh同步10.28rsync工具介绍作为一个系统管理员,数据备份是非常重要的。在以后的系统维护工作中,你一定要时刻牢记给数据做备份。在Linux系统下数据备份... 查看详情

2018.4.1917周2次课

十七周二次课(4月19日)20.10for循环20.11/20.12while循环20.13break跳出循环20.14continue结束本次循环20.15exit退出整个脚本20.10for循环for循环结构是在日常运维工作中使用最频繁的循环结构。语法:for变量名in条件;do…;done数字循环:vifor1.... 查看详情

2018-1-237周2次课

监控io性能监控io性能,free,ps命令,查看网络状态以及抓包1.iostat命令:[[email protected]~]#iostatLinux3.10.0-693.el7.x86_64(weix01)2018年01月23日_x8664(1CPU)avg-cpu:%user%nice%system%iowait%steal%idle0.490.001.151.280.0097.0 查看详情

2017.12.192周2次课

2017.12.19二周第二次课2.10环境变量PATHecho用来输出PATH的值。PATH前面的$是变量的前缀符号1.你的命令在上述几个目录里面,在输入命令时就不用输入绝对路径,直接使用。因为在输入命令时,系统会在上述的几个目录里去寻找这个... 查看详情

2018-3-711周2次课(代码片段)

11.28限定某个目录禁止解析php11.29限制user_agent11.30/11.31php相关配置eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,p 查看详情

2018.1.34周2次课

四周第二次课(1月3日)5.1vim介绍5.2vim颜色显示和移动光标5.3vim一般模式下移动光标5.4vim一般模式下复制、剪切和粘贴5.1vim介绍vim是vi的升级版vim时带有颜色显示的安装命令:yuminstall-yvim-enhancedVim有3种模式:一般模式、编辑模式... 查看详情

2018.3.711周2次课

十一周二次课(3月7日)11.28限定某个目录禁止解析php11.29限制user_agent11.30/11.31php相关配置11.28限定某个目录禁止解析php对于使用PHP语言编写的网站,有一些目录是有需求上传文件的,比如在前面列举的那个防盗链案例,因为服务... 查看详情