当前位置: 首页 > news >正文

day33-LNMP

1.每日复盘与今日内容

1.1复盘

  • 日志模块、位置
  • location模块、auto_index模块、访问限制模块
  • 认证模块auth_basic、stub_status状态模块🍟🍟🍟
  • error_page错误页模块、限速模块

1.2今日内容

  • LNMP结构
  • PHP部署、mariadb数据库🍟🍟🍟
  • wordpress部署、知乎部署

2.LNMP

  • 定义:L=Linux、N=Nginx、M=MySQL、P=PHP/Python(T=Tomacat)
  • LNMP架构:Linux Nginx MySQL PHP
  • LNMP架构 Linux Nginx MySQL Python
  • LNMT架构 Linux Nginx MySQL Tomcat

3.部署PHP

1.安装

 yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo   php-process php-xml php-json
  • 演示是否安装成功
rpm -qa|grep php|wc -l
  • 尝试(只下载不安装到/opt/packages、然后下次安装使用本地rpm包安装)
yum install --downloadonly --downloaddir=/opt/packages/ php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo   php-process php-xml php-json

2.配置PHP服务 修改默认启动用户

ll /etc/php.ini /etc/php-fpm.d/www.conf #修改启动用户
groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin wwwvim /etc/php-fpm.d/www.conf...
user = www
; RPM: Keep a group allowed to write in log dir.
group = www
...#修改监听方式(只能自己访问)
[root@web01 ~]# grep 127.0.0.1:9000 /etc/php-fpm.d/www.conf  -n
38:listen = 127.0.0.1:9000#启动PHP服务
[root@web01 ~]# systemctl start php-fpm
#开机自启动
[root@web01 ~]# systemctl enable php-fpm#检查PHP服务
netstat -tnulp
#或
php-fpm -t

4.安装mariadb数据库

#1.安装mariadb
yum  -y install mariadb-server#2.启动mariadb服务
systemctl start mariadb
systemctl enable mariadb#3.配置密码
mysqladmin password 'lzy123.com'#4.测试登录
mysql -uroot -plzy123.com

  • 配置Nginx连接PHP
#1.写配置文件打通和PHP连接
[root@web01 conf.d]# cat php.conf 
server {listen 80;server_name php.oldboy.com;root /code;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; #绝对路径在nginx的主配置文件下}
}
#$document_root存放这root指定代码目录
#$fastcgi_script_name存放用户请求的URL

#2.写一个php文件测试是否可以正常解析
[root@web01 conf.d]# cat /code/info.php
<?phpphpinfo();
?>

  • 看网站时要访问/php.oldboy.com.info.php,因为配置文件访问index.php,结果我命名的是info.php,所以要知名路径,不然系统找不到。

#3.检查配置文件并重启
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]# systemctl restart nginx#4.浏览器测试访问
windowshosts解析
10.0.0.7 php.oldboy.com
php.oldboy.com/info.php
  • 出现以下页面代表正常

  • 配置PHP连接MYSQL数据库
#需要再php的配置文件中写入数据库的IP+端口+用户名+密码可以测试是否连接数据库
[root@web01 conf.d]# cat /code/mysql.php
<?php$servername = "localhost";$username = "root";$password = "lzy123.com";// 创建连接$conn = mysqli_connect($servername, $username, $password);// 检测连接if (!$conn) {die("Connection failed: " . mysqli_connect_error());}echo "小哥哥,php可以连接MySQL...";
?><img style='width:100%;height:100%;' src=/31.png>
#注意苍姐姐需要自己准备和该文件放在同目录下
  • 浏览器访问:

php.oldboy.com/mysql.php

5.部署wordpress业务

1.创建nginx配置文件
[root@web01 conf.d]# cp php.conf wp.conf
[root@web01 conf.d]# cat wp.conf
server {listen 80;server_name www.wp.com;root /code/wordpress;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}2.测试nginx
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful3.重启生效
[root@web01 conf.d]# systemctl restart nginx4.创建代码目录
[root@web01 conf.d]# mkdir /code/wordpress5.下载wordpress代码
[root@web01 conf.d]# cd /code/wordpress/
[root@web01 code]# wget https://cn.wordpress.org/wordpress-6.0-zh_CN.tar.gz6.解压代码
[root@web01 code]# tar xf wordpress-6.0-zh_CN.tar.gz7.hosts解析
10.0.0.7 www.wp.com
浏览器访问业务
www.wp.com
  • 查看安装的版本--这三个软件的版本要相互适配,不要出现一个过高一个过低不兼容。

  • 出现这个代表成功

  • 但如果下想进去需要在数据库中创建wordpress库
[root@web01 code]# mysql -uroot -plzy123.com -e "create database wordpress;"[root@web01 wordpress]# mysql -uroot -plzy123.com -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
  • 再写入信息

可在wp-config.php文件查看信息

  • 还要将用户统一,不然程序无法写入
1.创建用户uid gid 666 的www虚拟账号
[root@web01 nginx]# groupadd -g666 www
[root@web01 nginx]# useradd -u666 -g666 -M -s /sbin/nologin www2.修改nginx启动用户
[root@web01 nginx]# grep www nginx.conf  -n
2:user  www;
[root@web01 nginx]# systemctl restart nginx3.修改php启动用户
[root@web01 nginx]# egrep -n '^user|^group' /etc/php-fpm.d/www.conf
24:user = www
26:group = www[root@web01 nginx]# systemctl restart php-fpm4.修改代码目录属主属组为www
[root@web01 nginx]# chown -R www.www /code/wordpress/
  • 再写入信息

6.部署wecenter 知乎

1.配置Nginx
[root@web01 conf.d]# cat zh.conf 
server {listen 80;server_name www.zh.com;root /code/zh;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]# systemctl restart nginx2.创建代码目录
[root@web01 conf.d]# mkdir /code/zh
[root@web01 conf.d]# cd /code/zh3.上传代码
[root@web01 zh]# ll
total 24648
-rw-r--r-- 1 root root 25238972 Aug  7 09:28 WeCenter_V3.6.2.zip
[root@web01 zh]# unzip WeCenter_V3.6.2.zip
4.解压代码
[root@web01 zh]# chown -R www.www ../zh5.安装部署
windows-hosts解析
10.0.0.7 www.zh.com6.创建数据库zh
[root@web01 ~]# mysql -uroot -plzy123.com -e "create database zh;"
[root@web01 ~]# mysql -uroot -plzy123.com -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
| zh                 |
+--------------------+
  • 出现如下页面表示成功

7.今日总结

  • LNMP结构
  • PHP部署、mariadb数据库🍟🍟🍟
  • 将Nginx和PHP打通、将PHP与MySQL打通🍟🍟🍟🍟🍟
  • wordpress部署、知乎部署

8.课后作业:部署phpshe

#1.配置Nginx
vim /etc/nginx/conf.d/phpshe.conf
server {listen 80;server_name www.phpshe.com;root /code/phpshe;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}#2.检查语法问题
nginx -t#3.重启nginx
systemctl restart nginx#4.创建代码目录(注意路径要和配置文件一样)
mkdir /code/phpshe#5.上传代码
cd /code/phpshe
#将压缩包拖入目录内
#解压
unzip phpshe.zip#6.修改权限
chown -R www.www /code/phpshe#7.安装部署--进入windows的hosts文件修改
10.0.0.7 www.phpshe.com#8.进入网站配置
www.phpshe.com/install

  • 注意配置:Nginx用户用 www用户
  • 修改进入common.php 第 43 行
//####################// 定义GPC变量 //####################//
if (false) {  // 禁用废弃的魔术引号逻辑!empty($_GET) && extract(pe_trim(pe_stripslashes($_GET)), EXTR_PREFIX_ALL, '_g');!empty($_POST) && extract(pe_trim(pe_stripslashes($_POST)), EXTR_PREFIX_ALL, '_p');
}
else {!empty($_GET) && extract(pe_trim($_GET),EXTR_PREFIX_ALL,'_g');!empty($_POST) && extract(pe_trim($_POST),EXTR_PREFIX_ALL,'_p');
}
  • 修改 license.func.php 文件
// 添加默认值处理
$_GET['mod'] = $_GET['mod'] ?? null;
$_GET['act'] = $_GET['act'] ?? null;
$_GET['id'] = $_GET['id'] ?? null;
$_SERVER['PATH_INFO'] = $_SERVER['PATH_INFO'] ?? '';
$id = $id ?? 0; // 确保$id变量存在
  • 注意要没有缓存访问

http://www.dtcms.com/a/331582.html

相关文章:

  • PostgreSQL——视图
  • 六十五、【Linux数据库】MySQL表结构 、 MySQL键值
  • 重学JS-003 --- JavaScript算法与数据结构(三)JavaScript 基础调试方法
  • Codeforces 1042 Div3(ABCDEFG)
  • 【科研日常】使用tensorflow实现自注意力机制和交叉注意力机制
  • Java中Record的应用
  • Flink Stream API 源码走读 - socketTextStream
  • Spark Shuffle机制原理
  • STM32HAL 快速入门(七):GPIO 输入之光敏传感器控制蜂鸣器
  • 深入理解管道(下):括号命令 `()`、`-ExpandProperty` 与 AD/CSV 实战
  • Java 大视界 -- Java 大数据在智能家居能耗监测与节能优化中的应用探索(396)
  • 【漏洞复现】WinRAR 目录穿越漏洞(CVE-2025-8088)
  • JavaScript 解构赋值语法详解
  • iOS Sqlite3
  • Playwright初学指南 (3):深入解析交互操作
  • 【完整源码+数据集+部署教程】肾脏病变实例分割系统源码和数据集:改进yolo11-CARAFE
  • 基于机器学习的文本情感极性分析系统设计与实现
  • 华为宣布云晰柔光屏技术迎来重大升级
  • 生产环境sudo配置详细指南
  • 机器学习学习总结
  • 如何选择适合工业场景的物联网网关?
  • 相较于传统AR作战环境虚拟仿真系统,其优势体现在哪些方面?
  • Python小程序1.0版本
  • C++类与对象核心知识点全解析(中)【六大默认成员函数详解】
  • Perforce P4 Git 连接器
  • 随身 Linux 开发环境:使用 cpolar 内网穿透服务实现 VSCode 远程访问
  • Activity + fragment的页面结构,fragment始终无法显示问题
  • AI 赋能的软件工程全生命周期应用
  • 第16届蓝桥杯C++中高级选拔赛(STEMA)2024年10月20日真题
  • 【C#】PNG 和 JPG、JPEG的应用以及三种格式的区别?