LNMP网站架构部署

 目录

一、LNMP架构部署(源码编译安装)

①实验准备

②安装nginx服务

③安装mysql服务,配置文件

④安装php服务,修改配置文件

⑤验证

静态页面测试访问

动态页面测试访问

调用数据库测试

二、LNMP架构应用实例

1.论坛网站应用

①nginx服务器上传压缩包并解压

 ②php服务器上修改论坛目录的属主属组

③nginx服务器上修改论坛目录归属 

 ④mysql服务器上创建论坛的数据库

⑤验证

2.博客网站应用

①nginx服务器上传博客软件包,解压

②php服务器共享目录中修改目录权限

③mysql服务器创建bbs数据库并刷新

④验证

 【课后练习】使用shell脚本一键部署LNMP架构


        lnmp是国内用的最多的网站架构,即Linux、nginx、mysql和php。

        LNMP的工作原理是:由客户端发送页面请求给Nginx,Nginx会根据location匹配用户访问请求的URL路径判断是静态还是动态。静态网页一般以 .html .htm .css .shtml结尾,动态网页一般是以 .php .jsp .py结尾。如果是静态网页,由Nginx直接处理和响应。如果是动态网页,Nginx会通过fastcgi接口转发给php-fpm进程接受,然后再由php解析器处理解释动态页面后响应返回给Nginx,Nginx再返回给客户端。如果动态页面涉及到数据库的读写,php会通过程序代码访问,mysql的api接口,并使用sql语句进行数据库的速写操作。

一、LNMP架构部署(源码编译安装)

这里举例分布式部署,好处是分开部署能够提高性能,软件安装没有前后顺序。


①实验准备

主机三台,nginx服务器IP为192.168.170.200mysql数据库IP为192.168.170.30php服务器IP为192.168.170.100。关闭防火墙、配置好本地yum源、挂载光盘;上传对应软件包到对应的服务器并完成解压;

[root@mynginx ~]# setenforce 0
[root@mynginx ~]# systemctl stop firewalld 
[root@mynginx ~]# cd /opt/
[root@mynginx ~]# rm -rf *
[root@mynginx opt]# rz -e
[root@mynginx opt]# ls
nginx-1.26.0.tar.gz
[root@mynginx opt]# tar xf nginx-1.26.0.tar.gz 
[root@mynginx opt]# ls
nginx-1.26.0  nginx-1.26.0.tar.gz
-------------------------------------------------------------------------------------------
[root@mymysql ~]# setenforce 0
[root@mymysql ~]# systemctl stop firewalld 
[root@mymysql ~]# cd /opt/
[root@mymysql opt]# ls
rh
[root@mymysql opt]# rm -rf *
[root@mymysql opt]# rz -e
[root@mymysql opt]# ls
mysql-boost-5.7.44.tar.gz
[root@mymysql opt]# tar xf mysql-boost-5.7.44.tar.gz 
[root@mymysql opt]# ls
mysql-5.7.44  mysql-boost-5.7.44.tar.gz
----------------------------------------------------------------------------------------[root@myphp ~]# setenforce 0
[root@myphp ~]# systemctl stop firewalld 
[root@myphp ~]# cd /opt/
[root@myphp opt]# ls
rh
[root@myphp opt]# rm -rf *
[root@myphp opt]# rz -e
[root@myphp opt]# ls
php-7.1.10.tar.bz2
[root@myphp opt]# tar xf php-7.1.10.tar.bz2 
[root@myphp opt]# ls
php-7.1.10  php-7.1.10.tar.bz2

②安装nginx服务

nginx后面的配置需要等mysql和php安装完毕再做

1、安装依赖包
[root@mynginx opt]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
2、创建运行用户
[root@mynginx opt]# useradd -M -s /sbin/nologin nginx
3、编译安装
[root@mynginx opt]# cd nginx-1.26.0/
[root@mynginx nginx-1.26.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module
[root@mynginx nginx-1.26.0]# make && make install
4、做软链接让系统能够直接调用nginx命令
[root@mynginx nginx-1.26.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5、添加 Nginx 系统服务
[root@mynginx nginx-1.26.0]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@mynginx nginx-1.26.0]# chmod 754 /lib/systemd/system/nginx.service
[root@mynginx nginx-1.26.0]# systemctl start nginx.service
[root@mynginx nginx-1.26.0]# systemctl enable nginx.service
[root@mynginx nginx-1.26.0]# netstat -lntp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      13149/nginx: master 

③安装mysql服务,配置文件

系统初始状态中vim /etc/my.cnf里是有内容的(里面会有mariadba的配置,需要卸载yum remove -y maria)

【安装 MySQL 服务】
1、安装Mysql环境依赖包
[root@mymysql opt]# yum -y install ncurses ncurses-devel bison cmake openssl-devel gcc gcc-c++ make

2、创建运行用户
[root@mymysql opt]# useradd -M -s /sbin/nologin  mysql

3.清除mariadb缓存
[root@mymysql opt]# yum remove -y mariadb*

4、编译安装
[root@mymysql opt]# cd /opt/mysql-5.7.44/
[root@mymysql mysql-5.7.44]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8  \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=boost \
> -DWITH_SYSTEMD=1
[root@mymysql mysql-5.7.44]# make && make install

5、修改mysql 配置文件
[root@mymysql mysql-5.7.44]# vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

6、更改mysql安装目录和配置文件的属主属组
[root@mymysql mysql-5.7.44]# chown -R mysql:mysql /usr/local/mysql/
[root@mymysql mysql-5.7.44]# chown mysql:mysql /etc/my.cnf

7、设置路径环境变量
[root@mymysql mysql-5.7.44]# echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile[root@mymysql mysql-5.7.44]# source /etc/profile
[root@mymysql mysql-5.7.44]# echo $PATH 
/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

8、初始化数据库
cd /usr/local/mysql/bin/
[root@mymysql mysql-5.7.44]# cd /usr/local/mysql/bin/
[root@mymysql bin]# ./mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data

9、添加mysqld系统服务
[root@mymysql bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@mymysql bin]# systemctl daemon-reload
[root@mymysql bin]# systemctl start mysqld.service
[root@mymysql bin]# systemctl enable mysqld

10、修改mysql 的登录密码
[root@mymysql bin]# mysqladmin -u root -p password "abc123"
Enter password: (此处直接回车,因为安装时我们设置为无密码安装的)
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

11、登录mysql
[root@mymysql bin]# mysql -u root -pabc123

12、授权数据库给并刷新(允许所有主机使用root用户使用账号密码登录数据库,并且有所有权限)
mysql> grant all on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


④安装php服务,修改配置文件

1、安装环境依赖包
[root@myphp opt]# yum -y install gd \
> libjpeg libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-devel pcre-devel

2、编译安装
[root@myphp opt]# cd php-7.1.10
[root@myphp php-7.1.10]# ./configure \
> --prefix=/usr/local/php \
> --with-mysql-sock=/usr/local/mysql/mysql.sock \
> --with-mysqli \
> --with-zlib \
> --with-curl \
> --with-gd \
> --with-jpeg-dir \
> --with-png-dir \
> --with-freetype-dir \
> --with-openssl \
> --enable-fpm \
> --enable-mbstring \
> --enable-xml \
> --enable-session \
> --enable-ftp \
> --enable-pdo \
> --enable-tokenizer \
> --enable-zip
[root@myphp php-7.1.10]# make j2 && make install

3、路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

 有三个配置文件需要修改,文件中的程序用户统一为nginx

  • php.ini 主配置文件  
  • php-fpm.conf 进程服务配置文件
  • www.conf 扩展配置文件
4.修改配置文件
【修改php.ini主配置文件】
[root@myphp php-7.1.10]# php --ini         查看文件所在位置             
Configuration File (php.ini) Path: /usr/local/php/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
[root@myphp php-7.1.10]# cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
[root@myphp php-7.1.10]# vim /usr/local/php/lib/php.ini
                           939行取消注释 date.timezone = Asia/Shanghai
----------------------------------------------------------------------------------------
【修改php-fpm.conf进程服务配置文件】
[root@myphp php-7.1.10]# cd /usr/local/php/etc/
[root@myphp etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d
[root@myphp etc]# cp  php-fpm.conf.default php-fpm.conf
[root@myphp etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d
[root@myphp etc]# vim php-fpm.conf
                    17行--去掉";"注释   pid = run/php-fpm.pid
----------------------------------------------------------------------------------------
【修改www.conf扩展配置文件】
[root@myphp etc]# cd /usr/local/php/etc/php-fpm.d/
[root@myphp php-fpm.d]# cp www.conf.default www.conf
[root@myphp php-fpm.d]# ls
www.conf  www.conf.default
[root@myphp php-fpm.d]# vim www.conf
23 user = nginx
24 group = nginx                          修改用户名、组名都统一为nginx用户 
36 listen = 192.168.170.100:9000          监听本机地址
62 listen.allowed_clients = 192.168.170.200    修改允许访问的客户端地址(这里即nginx服务器)
5【创建程序用户】
[root@myphp php-fpm.d]# useradd -M -s /sbin/nologin nginx       创建nginx程序用户
[root@myphp php-fpm.d]# cat /etc/passwd | grep nginx:
nginx:x:1001:1001::/home/php:/sbin/nologin

6【启动php-fpm】PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
[root@myphp php-fpm.d]# cd /opt/php-7.1.10/sapi/fpm
[root@myphp fpm]# ls
config.m4  init.d.php-fpm     Makefile.frag  php-fpm.8.in     php-fpm.service     status.html.in  www.conf.in
CREDITS    init.d.php-fpm.in  php-fpm        php-fpm.conf     php-fpm.service.in  tests
fpm        LICENSE            php-fpm.8      php-fpm.conf.in  status.html         www.conf
[root@myphp fpm]# cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
[root@myphp fpm]# systemctl daemon-reload
[root@myphp fpm]# systemctl restart php-fpm.service
[root@myphp fpm]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@myphp fpm]# netstat -lntp | grep php
tcp        0      0 192.168.170.100:9000    0.0.0.0:*               LISTEN      12450/php-fpm: mast 

⑤验证

先回到nginx服务器做以下配置

[root@mynginx nginx-1.26.0]# vim /usr/local/nginx/conf/nginx.conf
  3 worker_processes  auto;
  4 worker_rlimit_nofile 65535;
 13 events {
 14     use epoll;
 15     worker_connections  65535;
 16 } 
 37     server {
 38         listen       80;
 39         server_name  www.xy101.com;
 40         
 41         charset utf-8;
 47             index  index.html index.htm index.php;
 45         location / {      这里的根目录为/usr/local/nginx/html
 46             root   html; 
 47             index  index.html index.htm index.php;
 48         }
 67         location ~ \.php$ {
 68             root           /usr/local/nginx/html;      这里我统一用这个目录
 69             fastcgi_pass   192.168.170.100:9000;
 70             fastcgi_index  index.php;
 71             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 72             include        fastcgi_params;
 73         }
 $document_root代表当前root指定的根目录(第一个location的root)
[root@mynginx html]# nginx -t                   检查语法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@mynginx html]# systemctl restart nginx.service      重启服务
-------------------------------------------------------------------------------

【本机验证】 验证前可以先在Windows本地hosts文件中添加域名解析记录

由于静态页面是由Nginx直接处理和响应的,所以测试页面直接能够访问。

静态页面测试访问

在本机Windows浏览器输入http://www.xy101.com/test.html

【创建静态页面文件】
[root@mynginx ~]# cd /usr/local/nginx/html/
[root@mynginx html]# rz -e      (上传图片)
[root@mynginx html]# vim test.html
[root@mynginx html]# ls
50x.html  index.html  test.html  tuifei.jpg

动态页面测试访问

在本机Windows浏览器输入http://www.xy101.com/test.php

【创建动态页面文件】
[root@mynginx html]# vim test.php
<?php
phpinfo();
?>
~  

由于动态页面是Nginx通过fastcgi接口转发给php-fpm进程接受,然后再由php解析器处理解释动态页面后响应返回给Nginx,Nginx再返回给客户端的,所以此时我们如果用浏览器访问时找不到此文件的。需要在将动态页面位置共享给php服务器以便调用。

【安装共享程序并启动】
[root@mynginx html]# yum install -y rpcbind nfs
[root@mynginx html]# systemctl --now enable rpcbind nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

【设置挂载点目录】
[root@mynginx html]# vim /etc/exports        添加以下内容
/usr/local/nginx/html 192.168.170.0/24(rw,sync,no_root_squash)
[root@mynginx html]# showmount -e
Export list for mynginx:
/usr/local/nginx/html 192.168.170.0/24

此时回到php服务器做以下操作

【确定是否能看到nginx服务器的共享目录】
[root@myphp fpm]# showmount -e 192.168.170.200
Export list for 192.168.170.200:
/usr/local/nginx/html 192.168.170.0/24

【挂载目录】
[root@myphp fpm]# vim /etc/fstab         添加以下配置
192.168.170.200:/usr/local/nginx/html /usr/local/nginx/html nfs defaults 0 0
[root@myphp fpm]# mount -a
[root@myphp fpm]# df -hT
文件系统                              类型      容量  已用  可用 已用% 挂载点
devtmpfs                              devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                                 tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                                 tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                                 tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos_pyx-root           xfs        36G  5.1G   31G   15% /
/dev/sda1                             xfs      1014M  185M  830M   19% /boot
tmpfs                                 tmpfs     378M   32K  378M    1% /run/user/0
/dev/sr0                              iso9660   4.4G  4.4G     0  100% /mnt
192.168.170.200:/usr/local/nginx/html nfs4       38G  4.4G   33G   12% /usr/local/nginx/html

【查看nginx挂载点目录文件是否同步成功】
[root@myphp fpm]# ls /usr/local/nginx/html/
50x.html  index.html  test.html  test.php  tuifei.jpg

如果没有显示可以清空浏览器缓存重新输入访问路径,或者尝试回到nginx服务器重启nginx。

调用数据库测试

在本机Windows浏览器输入http://www.xy101.com/mysql.php

【创建一个mysql文件】nginx挂载点目录或php挂载的目录中,ip为mysql服务器的ip

<?php
$link=mysqli_connect('192.168.170.30','root','abc123');
if($link) echo "<h1>mysql connect successful </h1>";
else echo "<h1>mysql connect failed</h1>";
?>

此文件不管是在nginx服务器的/usr/local/nginx/html还是php服务器的/usr/local/nginx/html目录中创建的,都会同步。

二、LNMP架构应用实例

1.论坛网站应用

①nginx服务器上传压缩包并解压


[root@mynginx opt]# rz -E
[root@mynginx opt]# ls
dir_SC_UTF8  Discuz_X3.4_SC_UTF8.zip  nginx-1.26.0  nginx-1.26.0.tar.gz  说明.htm

【复制安装程序到共享目录中】
[root@mynginx opt]# cd dir_SC_UTF8/
[root@mynginx dir_SC_UTF8]# ls
readme  upload  utility
[root@mynginx dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/discuz
[root@mynginx dir_SC_UTF8]# cd /usr/local/nginx/html/
[root@mynginx html]# ls
50x.html  discuz  index.html  mysql.php  test.html  test.php  tuifei.jpg

 ②php服务器上修改论坛目录的属主属组


[root@myphp php-fpm.d]# cd /usr/local/nginx/html/
[root@myphp html]# ll
总用量 152
-rw-r--r--  1 root root    497 6月   2 01:48 50x.html
drwxr-xr-x 13 root root   4096 6月   2 04:50 discuz
-rw-r--r--  1 root root    615 6月   2 01:48 index.html
-rw-r--r--  1 root root    161 6月   2 04:27 mysql.php
-rw-r--r--  1 root root     52 6月   2 03:46 test.html
-rw-r--r--  1 root root     20 6月   2 03:31 test.php
-rw-r--r--  1 root root 129319 6月   2 03:44 tuifei.jpg
[root@myphp html]# chown -R nginx:nginx discuz/
[root@myphp html]# ll
总用量 152
-rw-r--r--  1 root  root     497 6月   2 01:48 50x.html
drwxr-xr-x 13 nginx nginx   4096 6月   2 04:50 discuz
-rw-r--r--  1 root  root     615 6月   2 01:48 index.html
-rw-r--r--  1 root  root     161 6月   2 04:27 mysql.php
-rw-r--r--  1 root  root      52 6月   2 03:46 test.html
-rw-r--r--  1 root  root      20 6月   2 03:31 test.php
-rw-r--r--  1 root  root  129319 6月   2 03:44 tuifei.jpg

③nginx服务器上修改论坛目录归属 


[root@mynginx html]# chown -R nginx:nginx discuz/
[root@mynginx html]# ll
总用量 152
-rw-r--r--.  1 root  root     497 6月   2 01:48 50x.html
drwxr-xr-x. 13 nginx nginx   4096 6月   2 04:50 discuz
-rw-r--r--.  1 root  root     615 6月   2 01:48 index.html
-rw-r--r--.  1 root  root     161 6月   2 04:27 mysql.php
-rw-r--r--.  1 root  root      52 6月   2 03:46 test.html
-rw-r--r--.  1 root  root      20 6月   2 03:31 test.php
-rw-r--r--.  1 root  root  129319 6月   2 03:44 tuifei.jpg

 ④mysql服务器上创建论坛的数据库


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database discuz;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> grant all on discuz. * to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

⑤验证

在浏览器输入http://www.xy101.com/discuz/index.php,成功会自动跳转到安装界面

2.博客网站应用

①nginx服务器上传博客软件包,解压

[root@mynginx html]# cd /opt/
[root@mynginx opt]# rz -E
[root@mynginx opt]# ls
dir_SC_UTF8              nginx-1.26.0         wordpress-4.9.4-zh_CN.tar.gz
Discuz_X3.4_SC_UTF8.zip  nginx-1.26.0.tar.gz  说明.htm
[root@mynginx opt]# tar xf wordpress-4.9.4-zh_CN.tar.gz 
[root@mynginx opt]# ls
dir_SC_UTF8              nginx-1.26.0         wordpress                     说明.htm
Discuz_X3.4_SC_UTF8.zip  nginx-1.26.0.tar.gz  wordpress-4.9.4-zh_CN.tar.gz

【复制软件包目录到共享目录中】
[root@mynginx opt]# cp -r wordpress
wordpress/                    wordpress-4.9.4-zh_CN.tar.gz  
[root@mynginx opt]# cp -r wordpress/ /usr/local/nginx/html/bbs
[root@mynginx opt]# cd /usr/local/nginx/html/
[root@mynginx html]# ls
50x.html  bbs  discuz  index.html  mysql.php  test.html  test.php  tuifei.jpg

【修改论坛目录权限】
[root@mynginx html]# ll
总用量 156
-rw-r--r--.  1 root  root     497 6月   2 01:48 50x.html
drwxr-xr-x.  5 root  root    4096 6月   2 05:26 bbs
drwxr-xr-x. 13 nginx nginx   4096 6月   2 04:50 discuz
-rw-r--r--.  1 root  root     615 6月   2 01:48 index.html
-rw-r--r--.  1 root  root     161 6月   2 04:27 mysql.php
-rw-r--r--.  1 root  root      52 6月   2 03:46 test.html
-rw-r--r--.  1 root  root      20 6月   2 03:31 test.php
-rw-r--r--.  1 root  root  129319 6月   2 03:44 tuifei.jpg
[root@mynginx html]# chown -R nginx:nginx bbs/
[root@mynginx html]# ll
总用量 156
-rw-r--r--.  1 root  root     497 6月   2 01:48 50x.html
drwxr-xr-x.  5 nginx nginx   4096 6月   2 05:26 bbs
drwxr-xr-x. 13 nginx nginx   4096 6月   2 04:50 discuz
-rw-r--r--.  1 root  root     615 6月   2 01:48 index.html
-rw-r--r--.  1 root  root     161 6月   2 04:27 mysql.php
-rw-r--r--.  1 root  root      52 6月   2 03:46 test.html
-rw-r--r--.  1 root  root      20 6月   2 03:31 test.php
-rw-r--r--.  1 root  root  129319 6月   2 03:44 tuifei.jpg

②php服务器共享目录中修改目录权限

[root@myphp php-fpm.d]# cd /usr/local/nginx/html/
[root@myphp html]# ll
总用量 156
-rw-r--r--  1 root root    497 6月   2 01:48 50x.html
drwxr-xr-x  5 php  php    4096 6月   2 05:26 bbs
drwxr-xr-x 13 php  php    4096 6月   2 04:50 discuz
-rw-r--r--  1 root root    615 6月   2 01:48 index.html
-rw-r--r--  1 root root    161 6月   2 04:27 mysql.php
-rw-r--r--  1 root root     52 6月   2 03:46 test.html
-rw-r--r--  1 root root     20 6月   2 03:31 test.php
-rw-r--r--  1 root root 129319 6月   2 03:44 tuifei.jpg
[root@myphp html]# chown -R nginx:nginx discuz/
[root@myphp html]# chown -R nginx:nginx bbs/
[root@myphp html]# ll
总用量 156
-rw-r--r--  1 root  root     497 6月   2 01:48 50x.html
drwxr-xr-x  5 nginx nginx   4096 6月   2 05:26 bbs
drwxr-xr-x 13 nginx nginx   4096 6月   2 04:50 discuz
-rw-r--r--  1 root  root     615 6月   2 01:48 index.html
-rw-r--r--  1 root  root     161 6月   2 04:27 mysql.php
-rw-r--r--  1 root  root      52 6月   2 03:46 test.html
-rw-r--r--  1 root  root      20 6月   2 03:31 test.php
-rw-r--r--  1 root  root  129319 6月   2 03:44 tuifei.jpg

③mysql服务器创建bbs数据库并刷新

mysql> create database bbs;
Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

④验证

在本机浏览器输入http://www.xy101.com/bbs/index.php

 【课后练习】使用shell脚本一键部署LNMP架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/671405.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

南京观海微电子---简单驱动电路设计用NMOS防反接,性价比比较高?

来看看NMOS的防反保护电路有什么不同&#xff1f; 简单的栅极驱动电路设计&#xff0c;我们会使用NMOS来作防反电路&#xff0c;原因是成本较低。 PMOS一般会放置在电路的高边&#xff0c;NMOS则是在低边放置。两者的功能类似。不过&#xff0c;NMOS的防反结构&#xff0c;它…

..\MYLIB\modbus.c(49): error: #84: invalid combination of type specifiers

在keil中添加相应的文件出现以下问题时 ..\MYLIB\modbus.c(49): error: #84: invalid combination of type specifiers 是由于&#xff1a;在定义的函数体的前面有一个变量类型

攻防世界---misc---心仪的公司

1、题目描述 2、下载附件是一个流量包 方法一&#xff1a; 1、用winhex分析&#xff0c;ctrlf搜索flag 2、尝试将搜索到的flag拿去提交&#xff0c;但是不对 3、担心flag不是长flag&#xff0c;做题多了你就会发现有些flag会是fl4g这种&#xff0c;为了可以稍微全面一点&…

笔试训练2

牛客.单词搜索 刚开始我就想是搜索&#xff0c;但是不清楚bfs还是dfs更好&#xff0c;我尝试了bfs但是队列存东西&#xff0c;没有我想象的那么好写&#xff0c;所以我决定试试dfs import java.util.*;public class Solution {static int m 0;static int n 0;static int […

【AIGC】FaceChain:发挥生成式内容的无限可能性

基于图像生成的个性化肖像框架 摘要 FaceChaine提供了一系列的生成方案&#xff0c;通过少量的图像输入&#xff0c;就能生成逼真的个性化肖像。它是一个个性化肖像生成框架&#xff0c;包含丰富的人脸感知相关的模型&#xff0c;例如人脸检测&#xff0c;深度人脸向量提取&am…

【算法】合并两个有序链表(easy)——递归算法

题解&#xff1a;合并两个有序链表(easy)——递归求解 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 本题有两种解法&#xff0c; 一是用循环去处理 链接&#xff1a;【刷题记录】合并两个有序数组、移除元素二是用递归去处理 将在下面中说…

23、linux系统文件和日志分析

linux文件系统与日志分析 文件时存储在硬盘上的&#xff0c;硬盘上的最小存储单位是扇区&#xff0c;每个扇区大大小是512字节。 inode&#xff1a;元信息&#xff08;文件的属性 权限&#xff0c;创建者&#xff0c;创建日期等&#xff09; block&#xff1a;块&#xff0c…

Java 22的FFM API,比起Java 21的虚拟线程

哪个对Java未来的发展影响更大&#xff1f;两个 Java 版本中的重要特性&#xff1a;Java 21 的虚拟线程和 Java 22 的 FFM API。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给…

fintuning chatglm3

chatglm3介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型&#xff0c;在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上&#xff0c;ChatGLM3-6B 引入了如下特性&#xff1a; 更强大的基础模型&#xff1a; ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用…

2、浮动的用法特点,解决父元素高度塌陷解决

一、浮动 用法&#xff1a;浮动就是使用float样式&#xff0c;使元素脱离文档流。属性值有三个&#xff1a;none默认left right 特点&#xff1a; 常用于文字环绕图片浮动的元素脱离文档流影响其他元素排列造成父元素高度塌陷 1、一旦元素设置了浮动&#xff0c;元素就会脱离…

【教程】20个高级 Python 函数,让你编程更高效

在Python的编程世界中,函数是我们编写代码的重要工具之一。除了常见的内置函数外,Python还提供了许多强大而有趣的高级函数,它们可以帮助我们简化代码、提升效率,甚至在某些情况下让编程变得更加有趣。让我们一起来探索这些高级函数的奇妙之处吧! 1.enumerate() – 枚举函…

VBA字典与数组第十五讲:多行多列数组与同列数单行数组间的运算规则

《VBA数组与字典方案》教程&#xff08;10144533&#xff09;是我推出的第三套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;字典是VBA的精华&#xff0c;我要求学员必学。7.1.3.9教程和手册掌握后&#xff0c;可以解决大多数工作中遇到的实际问题。…

【Intro】Heterogeneous Graph Attention Network(HAN)

论文链接&#xff1a;https://arxiv.org/pdf/1903.07293 Abstract 异构性和丰富的语义信息给面向异构图的图形神经网络设计带来了巨大的挑战。 -> 一种基于分层注意的异构图神经网络&#xff0c;包括节点级注意和语义级注意。具体来说&#xff0c;节点级关注旨在学习节点…

Anolis OS 8.9安装Linux 服务器运维管理面板“1Panel”

一、简介 1.Linux 服务器运维管理面板“1Panel” 使用go语言编写 2.很多的项目的应用都是采用 docker 技术来实现&#xff0c;这让 Linux 服务器的运维管理更简单、更安全。 3.1Panel 采纳最新的前端技术&#xff0c;并通过精心设计的UX 交互&#xff0c;为用户提供更好的用户…

从0开始学统计-什么是回归?

1.什么是回归&#xff1f; 回归&#xff08;Regression&#xff09;是统计学中一种用于探索变量之间关系的分析方法。它主要用于预测一个或多个自变量&#xff08;输入变量&#xff09;与因变量&#xff08;输出变量&#xff09;之间的关系。在回归分析中&#xff0c;我们尝试根…

数学建模--特殊的图

目录 1.二部图 &#xff08;1&#xff09;简单认识 &#xff08;2&#xff09;定义 &#xff08;3&#xff09;判定定理 &#xff08;4&#xff09;定理理解 2.匹配问题 &#xff08;1&#xff09;匹配 &#xff08;2&#xff09;完备&&完美匹配 &#xff08;3…

力扣20 有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

Linux线程:线程分离

目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下&#xff0c;新创建的线程是joinable的&#xff0c;线程退出后&#xff0c;需要对其进行pthread_joi…

视频SK配置教程

视频SK配置教程 提供的pika接口服务&#xff08;国外的&#xff0c;所以要反代&#xff09;&#xff0c;创建一个pika账号并开通pika套餐 反向配置教程 https://blog.csdn.net/u012241616/article/details/139391954?spm1001.2014.3001.5502 1、进入站点后台->功能->…

ubuntu使用

使用ubuntu 安装ubuntu ubuntu的镜像 : http://mirrors.aliyun.com/ubuntu-releases/ 进入 vmware https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html 点击 创建 浏览 找到 系统镜像文件, 我把它放在了 vmware文件下 设置好信息 , 记…