网站LNMP架构

L:Linux系统
注意:
a selinux必须关闭 防火墙关闭
b /tmp 1777 mysql服务无法启动
N — nginx服务部署
作用:处理用户的静态请求 html jpg txt mp4/avi
N:nginx
M:mysql
P:php
作用:
1. 处理动态的页面请求
2. 负责和数据库建立关系
M — mysql服务部署 (yum会很慢 编译安装会报错) mariadb
作用:存储用户的字符串数据信息
一、 网站的LNMP架构部署
mysql服务部署:
第一个历程: 安装数据库软件并启动

 [root@ web01 ~]# yum install -y mariadb-server mariadb
 [root@ web01 ~]# systemctl start mariadb.service 
 [root@ web01 ~]# systemctl status mariadb.service 
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-05-23 14:54:30 CST; 2s ago
  Process: 2159 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 2076 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 2158 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─2158 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─2323 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --l.

[root@ web01 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

可以用mysql --help命令来查看具体的使用方法
补充: 数据库初始化过程 (mysql_install_db 初始化命令)
–basedir=path The path to the MariaDB installation directory.
指定mysql程序目录
–datadir=path The path to the MariaDB data directory.
指定数据信息保存的目录
–user=mysql 让mysql管理数据目录 700
信息输出内容:
创建数据库的密码信息:

mariadb已经初始化,下载mysql需要自己初始化一下子。
[root@ web01 ~]# mysql_install_db 
	PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /application/mysql/bin/mysqladmin -u root          password 'new-password'   --- 给本地数据库设置密码
    /application/mysql/bin/mysqladmin -u root -h web01 password 'new-password'   --- 给远程数据库设置密码
	

第二个历程: 给mysql数据库服务设置密码

mysqladmin -u root  password 'kitty123'    --- 设置密码(不是重置密码)  	
[root@ web01 ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)  ---有密码了,权限阻止了
 [root@ web01 ~]# mysql -u root -pkitty123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
以上输入密码是明文的也可以如下操作
 [root@ web01 ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
这样就不是明文,不会被记录下来。

PHP服务部署流程
第一个历程: 更新yum源/卸载系统自带的PHP软件

 [root@ web01 ~]# yum remove php-mysql php php-fpm php-common
Loaded plugins: fastestmirror
No Match for argument: php-mysql
No Match for argument: php
No Match for argument: php-fpm
No Match for argument: php-common
No Packages marked for removal
 [root@ web01 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

warning: /var/tmp/rpm-tmp.qw6WlK: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:epel-release-7-13                warning: /etc/yum.repos.d/epel.repo created as /etc/yum.repos.d/epel.repo.rpmnew
################################# [100%]
 [root@ web01 ~]#     rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
warning: /var/tmp/rpm-tmp.AjdEzL: Header V4 RSA/SHA1 Signature, key ID 62e74ca5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:webtatic-release-7-3             ################################# [100%]

第二个历程: 安装php软件

[root@ web01 ~]# 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
[root@ web01 ~]# systemctl start php-fpm.service 
[root@ web01 ~]# systemctl status php-fpm.service 
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-05-23 15:41:17 CST; 7s ago

第三个历程: 编写配置文件

[root@ web01 ~]# vim /etc/php-fpm.d/www.conf 

在这里插入图片描述修改这里:保证nginx进程的管理用户和php服务进程的管理用户保持一致
组也改了(别忘了)

第四个历程: 启动php服务

[root@ web01 ~]# systemctl start php-fpm 

ps:LNMP架构的原理
用户访问网站—>nginx(fastcgi_pass) --FastCGI–>(php-fpm – wrapper) php (php解析器) —> mysql(读取或写入)

实现LNMP之间建立关系
1、实现nginx + php 建立关系
第一个历程: 编写nginx文件
编写nginx配置文件

[root@ web01 conf.d]# cd /etc/nginx/conf.d/
[root@ web01 conf.d]# vim blog.conf
server {
   listen	80;
   server_name  blog.kitty.com
   location / {
     root  /html/blog;  (这里注意的文件是否齐全,这个目录里是不是有首页文件等。没有的话整一个过来。)
     index index.html;
   }
   location ~ \.php$ {
      root /html/blog;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_pass  127.0.0.1:9000;
       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 nginx

第二个历程: 编写动态资源文件

[root@ web01 blog]# cat /html/blog/test_php.php
<?php
phpinfo();
?> 

第三个历程: 进行访问测试
网站输入blog.kitty.com(失败了,检查发现web01上没装nginx,哭了,白配置一通)重新打开负载服务器,重配
…经过长时间的配置,解决问题终于成功了呜呜呜呜
在这里插入图片描述

实现php + mysql 建立关系

[root@ lb01 ~]# cd /html/www/
[root@ lb01 www]# vim test_mysql.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());
   }
?>

设置了半天这里还是有问题,测试显示页面空白,但是php的测试文件没有一点问题。那位大神读了可以指导一下。

部署搭建网站页面(代码上线)
第一个历程: 获取代码信息(git)—使用开源的网站代码
www网站页面: http://www.dedecms.com/
bbs网站页面: http://www.discuz.net/forum.php
blog网站页面: https://cn.wordpress.org/
wecenter网站页面: http://www.wecenter.com/?copyright(知乎)
第二个历程: 将代码解压,将解压后信息放入到站点目录中
在这里插入图片描述在这里插入图片描述将所有的代码信息移到站点目录下

[root@ lb01 wordpress]# mv ./* /html/www/
[root@ lb01 wordpress]# ll
total 0

第三个历程: 修改站点目录权限

[root@ lb01 www]# chown -R nginx.nginx ./
[root@ lb01 www]# ll -d
drwxr-xr-x. 5 nginx nginx 4096 May 23 19:31 .

第四个历程: 进行网站页面初始化操作
从这里开始,失败了。呜呜呜呜呜,崩溃,明天继续。

================================================
分割
我回来了,经过一上午的巴拉,发现,php有点问题。然后又经过一中午的倒腾,开始继续写我的历程。

在这里插入图片描述终于成功了。
在这里插入图片描述这个也可以了

第五个历程: 对数据库服务进行配置
创建数据库: create databases wordpress;
检查: show databases;
在这里插入图片描述
创建数据库管理用户: grant all on wordpress.* to ‘wordpress’@‘localhost’ identified by ‘oldboy123’;
检查: select user,host from mysql.user
在这里插入图片描述在这里插入图片描述终于算是出页面了,估计大概率是代码问题
在这里插入图片描述半天没找到登录,今天又是蒙蔽的一天!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值