02. 课程知识回顾说明1. location指令使用方法说明:根据用户访问网站uri(访问网站资源信息)信息不同,作出不同的处理方式 www.oldboy.com/sa/oldboy.jpg --- 指定访问什么资源 www.oldboy.com/ --- 指定访问资源路径 相应路径中的首页文件 www.oldboy.com/sa/
匹配方式: 1. 精确匹配相应资源信息 = 2. 模糊匹配相应资源信息 ~ ~* /路径信息/ location ~ /sa/ location ~* /sa/ --- 可以忽略uri信息大小写进行匹配 location /sa/ www.oldboy.com/SA/01/02 3. 优先匹配相应资源信息 .jpg /img/ www.oldboy.com/img/oldboy.jpg location ^~ /img/ location ^~ jpg$ ^~ 不能正常识别正则信息 和alias需要配合问题 处理方式: 1. 灵活跳转站点目录信息 root alias 2. 根据用户地址进行控制 allow deny 3. 根据网站页面进行认证 authxx 4. 根据网站页面进行跳转 rewrite returnalias:指定站点目录路径信息 指定一个路径别名信息 指定路径后必须加 /作为结尾 www.oldboy.com/sa/oldboy.html --> 到alias指定路径中找 相应资源信息(html/www/oldboy.html) root: 指定站点目录路径信息 指定真正访问路径信息 指定路径后 / 可加可不加 www.oldboy.com/sa/oldboy.html --> 到root指定路径中找 sa信息,再找资源信息(/html/www/sa/oldboy.html)2. 跳转指令使用方法1. return方式 简单粗暴 return 状态码 跳转后的地址信息;2. rewrite方式 灵活跳转 rewrite 匹配要跳转信息 跳转后的信息 跳转方法; 跳转方法: 1)break 一次请求,会直接将请求信息进行改变,在进行网站资源访问2)last 一次请求,会进行跳转改变,会根据改变后地址在此重新发送请求3)临时跳转 3024)永久跳转 301 作业: www.oldboy.com ---> www.newboy.com 方式一:多个虚拟主机实现跳转 server { listen 80; server_name www.oldboy.com; rewrite (.*) http://www.newboy.com$1; } server { listen 80; server_name www.newboy.com; location / { root /html/www/; index index.html; } } 方式二:借助if判断指令实现跳转 server { listen 80; server_name www.oldboy.com; rewrite (.*) http://www.newboy.com$1; } server { listen 80; server_name www.oldboy.com www.newboy.com; location / { if ($http_host = www.oldboy.com) { rewrite (.*) http://www.newboy.com$1; } root /html/www/; index index.html; } }
php软件安装过程:
第一个里程:解决yum安装软件冲突问题
yum remove php-mysql php php-fpm php-common
第二个里程:更新php程序yum下载源
rpm -Uvh
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh
https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
第三个里程:安装php软件和相关依赖
yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
第四个里程:启动服务程序
systemctl start php-fpm
mariadb软件安装过程:
yum install mariadb-server mariadb -y
05. LNMP架构原理说明
1)用户向网站发起访问
a 静态请求访问
b 动态请求访问
2)nginx程序接受用户HTTP请求信息
a 静态请求信息 由nginx程序直接作出响应
b 动态请求信息 由nginx借助fastcgi_pass指令将请求通过fastcgi接口发送给php程序进行处理
3)php程序接受nginx发送动态请求信息
a 本身可以直接处理 通过解析器直接处理 转换成html代码信息返回给nginx程序
b 需要调用数据库处理 通过解析器访问数据库 数据库会进行处理后返回给php结果
4)nginx接收php返回的信息
将结果信息返回给用户
分析LNMP架构问题:
1)nginx服务程序是否出现问题
2)php服务程序是否出现问题
3)mariadb服务程序出现问题 问题会比较集中
06. LNMP架构部署配置过程:
nginx + php程序进行串联:
编写nginx配置文件:
location ~ \.php$ {
root /html/blog; --- 让php程序可以知道当哪个路径中获取代码信息
fastcgi_index index.php; --- 默认php程序识别首页文件 index.php
fastcgi_pass 127.0.0.1:9000; --- 将动态请求发送给本地主机9000端口
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
完整配置:
server {
listen 80;
server_name
blog.oldboy.com;
root /html/blog;
index index.html index.htm;
location ~ \.php$ {
root /www;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME(变量信息) $document_root$fastcgi_script_name(调用内置变量);
$document_root --- 识别访问网站uri资源路径信息
$fastcgi_script_name --- 识别访问网站uri资源代码信息
http://www.oldboy.com /sa/test.php
$document_root+$fastcgi_script_name = SCRIPT_FILENAME --> PHP
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params; --- 让nginx程序可以识别一些内置变量
}
}
验证测试:
cd /html/blog/
vim test.php
<?php phpinfo(); ?>
php + mariadb建立关系:由开发人员
php连接数据库代码:
<?php
$servername = "localhost";
$username = "root";
$password = "oldboy123";
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$conn = mysqli_connect($servername, $username, $password);
if ($conn) {
echo "mysql successful by root !\n";
}else{
die("Connection failed: " . mysqli_connect_error());
}
?>
数据库简单配置方式: 数据库用户存储字符串,数据库会首先构建出一张表(行(记录) 列(字段)),多个表构建一个库 库 --- 表 --- 列/行 修改数据库密码信息: mysqladmin -uroot password "oldboy123" mysql -uroot -poldboy123 -hlocalhost 创建数据库信息: create database 数据库名称; 查看数据库信息: show databases; 删除数据库信息:??? 在数据库中创建管理用户:root grant all(所有权限) on blog.* to 'blog'@'允许连接数据库白名单信息' identified by '密码信息'; 查看数据库管理用户是否创建成功: select user,host from mysql.user;