美文网首页
week16 LNMP 架构-网站代码上线

week16 LNMP 架构-网站代码上线

作者: 刘Huai | 来源:发表于2019-07-27 12:00 被阅读0次

1.架构介绍

L N M P

  • L linux 操作系统
  • N nginx web服务功能
  • M MySQL Mairadb 存放网站
  • P php / Python 处理动态请求

LNMT

  • N nginx 负载功能
  • T tomcat Apache 处理动态请求

环境运行需要注意的地方(系统基础优化)

  1. 防火墙 Selinux 关闭
  2. tmp目录 1777
  3. 设置NFS共享创建站点目录的时候记得更改目录所有者 chown -R

2. 架构功能原理

用户访问网站(静态)------> nginx  # 如果是静态nginx 就可以处理
用户访问网站(动态)------> nginx ------>php>------> mysql (查/写)
# 用户访问网站如果是动态,nginx无法处理传给php 如果还需要读取数据库,会链接数据库服务器进行处理
LNMP

3. 网站 LNMP 搭建过程

第一步:软件安装部署

Mariadb 部署:

yum install -y mariadb-server mariadb

php部署

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
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

yum remove php-mysql php php-fpm php-common #如果要卸载php 运行此命令

Ngxin 部署

更新yum源

vim /etc/yum.repos.d/nginx.repo

复制以下信息到nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
第三步:yum install -y  nginx
yum官方源安装

第二步:软件配置,测试过程

配置内容:

nginx+php 建立关系
php+mysql 建立关系 (使用代码与数据库建立关系)

echo "<?php phpinfo(); ?>" > /html/blog/test_info.php

第三步:网站代码上线

>常见开源模板
>> 博客网站    wordpress
>> www 网站  dedecms
>> 论坛网站   discuss
>> 知乎网站   wecenter

第四步:数据库迁移过程
第五步:实现数据共享存储

4. 网站 LNMP 配置过程

4.1 nginx与php 建立连接

server {
        listen       80;
        server_name  blog.oldboy.com;
        location / {
            root   /html/blog;
            index  index.php index.html index.htm; 首页设置为 .php第一个匹配,匹配不到匹配后边的
        }
        location ~ \.php$ { 匹配 .php结尾的访问,运行以下配置
            root   /html/blog;
            fastcgi_index index.php; nginx 与php 调用接口程序
            fastcgi_pass  127.0.0.1:9000; 将请求传给本地, 9000 端口是 php-fpm 程序的端口号
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_scriptz_name; 
            include fastcgi_params;   --- fastcgi内置变量记录文件 
        }
    }
连接php报错

解决方法:启动php-fpm 检查端口 netstat -lntup |grep 9000

解决方法

4.2 php与mysql 建立连接

 <?php
  $servername = "localhost";    本地主机地址信息
  $username = "root"; 数据库用户名
  $password = "123456"; 密码,数据库密码
# 设置变量
  //$link_id=mysql_connect('主机名','用户','密码');  
  //mysql -u用户 -p密码 -h 主机
                                            
  $conn = mysqli_connect($servername, $username, $password); 调用连接的函数
  if ($conn) {   
        echo "mysql successful by oldboy !\n";  如果正确提示
     }else{
        die("Connection failed: " . mysqli_connect_error()); 如果错误,输出报错原因 
     }
 ?> 
mysql 设置密码
mysqladmin -uroot -p password 'newpassword' 已知密码或没有密码时候可用
登录  mysql -uroot -p123456

5. LNMP 架构代码上线

第一步:获取代码信息

第二步:将代码解压放置站点目录中

第三步:调整站点目录数据权限(可以改为nginx worker进程用户)

chown www.www  /html/blog 
查看 nginx worker进程用户
ps -ef | grep nginx 
nginx 进程用户

检查 php-fpm 运行用户,也需要改为 nginx worker进程用户

php配置文件 /etc/php-fpm.d/www.conf :: user = xxx

vim /etc/php-fpm/www.conf 
user = www
group = www
php配置文件

第四步:进行网站页面初始化配置
创建数据库

1. 先查看数据库中有没有对应的数据库
    mysql -uroot -p(数据库密码)
    show databases; # 数据库每个语句用分号结束,否则不能运行;
2. 创建数据库 
    create database wordpress;
3. 创建用户管理数据库
    grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';
登入数据库
查看是否有wordpress库
创建用户管理数据库
查看是否创建了用户名和密码

访问网站 blog.oldboy.com

网站页面

更换主题上传目录
https://www.themepark.com.cn/ydmlmftybwordpresszt.html

上传主题出错

上传主题出错,在上传附件时时候也可能出现这样的情况如何解决

出现报错的原因是因为服务器限制了上传的大小,只能上传1M 
client_max_body_size 5m; 将此行代码放置到网站虚拟主机配置文件中
/etc/nginx/cong.d/blog.conf 
'注意在全局配置中,不要放到 location 中'
'安装如果提示无法创建目录,检查一下网站目录是否与站点目录属主相同是否都是www'
client_max_body_size 定义了客户端的请求的主体的尺寸多大,只要请求方法是post 就会有请求主体
http://nginx.org/en/docs/http/ngx_http_core_module.html #client_max_body_size
官方链接说明

5.1 数据如何迁移

第一步:备份数据库


mysqldump -uroot -p*** -A             /tmp/mysql-bak.sql
备份命令                -A 全部备份     备份路径

第二步:将数据进行传输

scp -rp /tmp/mysql-bak.sql 172.16.1.51:/tmp 
                          数据库服务器地址

第三步:恢复数据

mysql -uroot -p*** </tmp/msyql-bak.sql
                  标准输入重定向到数据库中

第四步:检查网站页面是否正常

如果出错,提示建立数据库链接错误,查看数据库中指定的库是否允许外网登陆,授权登陆操作如下:
grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by '***';
授权 wordpress库下的所有表的所有权限 给wordpress,允许登陆网段为 172.16.1.0/24 网段        

此时数据库中授权已经完成,但是代码文件中链接数据库的文件还没有修改为新的数据库服务器地址,还需要再代码配置文件中将地址修改为新的数据库服务器地址

\color{red}{代码行中***代表数据库密码}

6. LNMP 架构优化部署

6.1 数据库数据信息迁移

第一步:备份数据

6.2 将数据信息共享存储

7. LNMP架构安全访问

8. LNMP网页伪静态访问

9. 负载均衡服务(nginx)

9.1 如何进行配置

9.2 负载均衡指令模块

9.3 实现架构动静分离

9.4 实现不同客户端显示不同页面

相关文章

网友评论

      本文标题:week16 LNMP 架构-网站代码上线

      本文链接:https://www.haomeiwen.com/subject/bmnsrctx.html