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变量存在
- 注意要没有缓存访问