文章目录
day24 LNMP架构的项目实战
一、LNMP架构模型的介绍
1.什么是架构模型
实现一套项目,所需要使用到的中间件环境
2.常见的架构模型
LNMP:Linux Nginx Mysql PHP。用于部署和应用php项目
LNMT:Tomcat。用于部署和应用Java项目
LAMP:Apache。
LAMT
3.LNMP架构中间件交互流程
php:*.php
java:*.jsp
.net:*.asp
Python:*.py
Nginx和PHP交互流程
-
Nginx通过location匹配php后缀的url
-
通过fastcgi接口解析将请求发送给php
-
php-fpm派生php工作进程
-
工作进程通过warrap组件派生工作线程请求php解析器
-
php解析器将Nginx给过来的文件进行语言解析,解析成html资源返回给Nginx
-
如果代码中涉及到请求数据库的语句,则需要通过php-mysqlnd插件和数据库交互
二、LNMP架构环境的搭建
1.PHP的介绍
PHP:超文本预处理器。擅长编写前后端交互的过程
- JAVA:实现功能
- 前后端交互:php写交互
# php的版本
php5 php5.5 php5.6
php7 php7.1 7.2 7.3 7.4
php8 php8.1 8.2 8.3
2.准备php环境
1.PHP的安装
yum安装
#配置php源
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
#安装
yum install php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-redis -y
编译安装
2.php的配置
rpm -qc php72-php-fpm
/etc/opt/remi/php72/php-fpm.conf #php的主配置文件
/etc/opt/remi/php72/php-fpm.d/www.conf #php的项目配置文件
vim /etc/opt/remi/php72/php-fpm.d/www.conf
24 user = nginx
26 group = nginx
38 listen = 127.0.0.1:9000
3.启动php
systemctl start php72-php-fpm.service
4.配置Nginx和php交互
vim /usr/local/nginx/conf/conf.d/php.conf
server {
listen 80;
server_name php.dms.com;
root /html/php;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # php监听地址
fastcgi_index index.php; # php默认首页
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#$document_root #代码的路径
#$fastcgi_script_name #请求的url的后缀路径
include fastcgi_params;
}
}
#准备测试代码
mkdir /html/php
echo '<?php phpinfo(); ?>' >/html/php/index.php
#重启nginx
/bin/nginx -s reload
三、准备MySQL环境
1.安装mysql
yum install mariadb-server -y
2.启动mariadb
systemctl start mariadb
3.设置密码
mysqladmin password 123
#测试登录
mysql -uroot -p123
4.编辑测试数据库源码
vim /html/php/test-db.php
<?php
$conn=mysqli_connect('127.0.0.1','root','123');
if ($conn)
echo "亲,棒棒哒,连上啦!!么么哒~";
else
echo "死鬼,连我都连不上";
mysqli_close();
?>
四、通过LNMP部署php项目
1.编写wordpress配置文件
vim /usr/local/nginx/conf/conf.d/wordpress.conf
server {
listen 80;
server_name wordpress.dms.com;
root /html/wordpress;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
2.准备代码
#上传并解压
tar xvf WordPress-4.6.tar.gz
#重命名目录保证代码路径和配置文件一致
mv WordPress-4.6/ wordpress
#授权目录为nginx用户
chown -R nginx.nginx /html/
3.准备数据库环境
mysql -uroot -p123
#创建wordpress库
create database wordpress;
#查看wordpress库
show databases;
五、网站页面的跳转功能
1.介绍
将用户所访问的页面,进行跳转到其他的页面中的
2.跳转方式
return
return 状态码
return url
return 状态码 '提示信息'
应用场景:隐藏不希望外部访问的页面,页面跳转功能
#案例1:不允许访问wordpress.dms.com/wp-admin
vim /usr/local/nginx/conf/conf.d/wordpress.conf
location ^~ /wp-admin {
return 404;
}
#案例2:wordpress.dms.com/wp-admin 页面提示信息
location ^~ /wp-admin {
return 200 "u shall not pass";
default_type application/json;
}
#案例3:wordpress.dms.com/wp-admin 跳转到其他页面
location ^~ /wp-admin {
return http://www.baidu.com;
}
rewrite