Linux基础学习之Day17-appache

Linux基础学习之从入门到精通Day17

网站服务
名词:
HTML:超级文本标记语言
网页:使用HTML,PHP,JAVA语言格式书写的文件。
主页: 网页中呈现用户的第一个页面
网站:多个网页组合而成的一台网站服务器
URL:访问网站的地址
统一资源定位符
网站架构
LAMP:Linux+Aoache+Mysql+php

HTTP Server

========================================================
静态元素: .html .img js css swf mp4
动态元素: .php .jsp .cgi .asp php SQL

Web Server:
Nginx(Tengine)、Apache、IIS

Web 中间件:
php: PHP-fpm、HHVM
jsp: Tomcat、JBOSS、Resin、IBM WebSphere

常见组合方式:
LNMP (Linux + Nginx + MySQL + PHP) //php-fpm进程
LAMP (Linux + Apache + MySQL + PHP) //php作为Apache的模块
Nginx + Tomcat   //取代Apache与Tomcat结合

一、Apache基础

Apache: 	www.apache.org
软件包:	httpd
服务端口: 	80/tcp(http)  443/tcp(https,http+ssl)
配置文件:	/etc/httpd/conf/httpd.conf
        		/etc/httpd/conf.d/*.conf
				/etc/httpd/conf.d/welcome.conf	              //默认测试页面

二、安装Apache

[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
[root@apache ~]# systemctl enable httpd

网站主目录建立测试页:

[root@apache ~]# vim /var/www/html/index.html
a.123
[root@apache ~]# vim /var/www/html/2.php
<?php
phpinfo();
?>
192.168.31.154/index.html

[root@apache ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@apache ~]# setenforce 0
[root@apache ~]# firewall-cmd --permanent --add-service=http
[root@apache ~]# firewall-cmd --permanent --add-service=https
[root@apache ~]# firewall-cmd --reload

三、安装PHP

[root@apache ~]# yum -y install php                   //php作为Apache的模块
[root@apache ~]# ll /etc/httpd/modules/libphp5.so
-rwxr-xr-x. 1 root root 4588368 Jun 24  2015 /etc/httpd/modules/libphp5.so
[root@apache ~]# ll /etc/httpd/conf.d/php.conf
-rw-r--r--. 1 root root 691 Jun 24  2015 /etc/httpd/conf.d/php.conf
[root@apache ~]# systemctl restart httpd

四、安装Mariadb

[root@apache ~]# yum -y install mariadb-server mariadb
[root@apache ~]# systemctl start mariadb.service
[root@apache ~]# systemctl enable mariadb.service
[root@apache ~]# mysql_secure_installation                        //提升mariadb安全 [可选]
Set root password? [Y/n]
New password: 123
Re-enter new password: 123

[root@apache ~]# mysql -uroot -p123                                  //登录mariadb测试
MariaDB [(none)]> \q

[root@apache ~]# rm -rf /var/www/html/*
[root@apache ~]# vim /var/www/html/index.php
<?php
$link=mysql_connect('localhost','root','123');
if ($link)
              echo "Successfuly";
else
              echo "Faile";
mysql_close();
?>

测试结果: php无法连接mysql

五、并配置php连接Mariadb

[root@apache ~]# yum -y install php-mysql
[root@apache ~]# php -m         //查看php有哪些扩展
[PHP Modules]
mysql
mysqli
[root@apache ~]# systemctl restart httpd

六、Apache基本配置

[root@tianyun ~]# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd"				         //安装目录
Listen 80										     //监听端口
IncludeOptional conf.d/*.conf		         //包含conf.d下的*.conf文件
User apache								         //运行Apache的用户
Group apache								     //运行Apache的用户组
DirectoryIndex index.html index.php   //设置默认主页
DocumentRoot                                   //站点默认主目录
<Directory "/var/www">                    //Apache访问控制
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

忘记MySQL密码

MySQL 5.7.5 and earlier:
[root@mysql1 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables

[root@mysql1 ~]# service mysqld restart
[root@mysql1 ~]# mysql
mysql> update mysql.user set password=password("456") where user="root" and host="localhost";
mysql> flush privileges;
mysql> \q

[root@mysql1 ~]# vim /etc/my.cnf
[mysqld]
#skip-grant-table
[root@mysql1 ~]# service mysqld restart

Apache 访问控制

一、目录访问控制的类型

  1. 设置目录特性
  2. 基于主机
  3. 基于用户

二、基于主机的访问控制
准备环境

[root@aliyun ~]# rm -rf /var/www/edusoho/web/download/*
[root@aliyun ~]# echo "download....." > /var/www/edusoho/web/download/1.html

仅用于http 2.4+
案例1:允许所有主机访问

<Directory "/var/www/edusoho/web/download">
     AllowOverride None
     Require all granted
</Directory>

AllowOverride All           允许子目中的 .htaccess 中的设置覆盖当前设置
AllowOverride None       不允许子目中的 .htaccess 中的设置覆盖当前设置

案例2:只允许网段192.168.5.0/24、192.168.10.0/24访问

<Directory "/var/www/edusoho/web/download">
     AllowOverride None
     Require ip 202.106.0.0/24
     Require ip 114.248.160.203
</Directory>

案例3:只拒绝某些主机访问

<Directory "/var/www/edusoho/web/download">
        AllowOverride None
        <RequireAll>
                Require not ip 114.248.160.203
                Require all granted
        </RequireAll>
</Directory>

三、基于用户的访问:访问时需要用户名和密码
==使用无格式文本文件

  1. 建立口令文件
[root@tianyun ~]# htpasswd -cm /etc/httpd/conf/webpasswd user1
New password: 	输入密码
Re-type new password:  再输入密码
Adding password for user user1
-c 创建	
-m MD5	
[root@tianyun ~]# cat /etc/httpd/conf/webpasswd 
user1:$apr1$tkLV4/..$BL2nd2Wbx4I5ZAf5uv8ZS.
[root@tianyun ~]# htpasswd -m /etc/httpd/conf/webpasswd user2
  1. 配置支持认证
<Directory "/var/www/edusoho/web/download">
        AllowOverride None
        Require all granted
        AuthType Basic
        AuthName "welcome to tianyun.me..."
        AuthUserFile /etc/httpd/webpasswd
        Require valid-user
</Directory>

四、针对文件的访问控制

不允许在/var/www/edusoho/web/upload目录中执行.php文件
<Directory /webroot/baidu/upload>
    AllowOverride None
    Require all granted

    <Files ~ "\.php$" >
        Order allow,deny
        Deny from all
    </Files>
</Directory>

HTTP协议
在 OSI 七层模型中,HTTP协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 HTTP 协议。使用 HTTP 协议时,客户端首先与服务端的 80 端口建立一个 TCP 连接,然后在这个连接的基础上进行请求和应答,以及数据的交换。

HTTP 有两个常用版本,分别是 HTTP1.0和 HTTP1.1。主要区别在于 HTTP1.0 中每次请求和应答都会使用一个新的 TCP 连接,而从 HTTP1.1 开始,减少了 TCP 连接的建立和断开,提高了效率。

常见的HTTP相应状态码
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值