Linux动态网站架构(部署开发php代码)

动态网站架构(部署开发php代码)

  1. 测试能否直接部署nginx
  2. 需要什么服务,及原理
  3. 准备并进行开发测试
  4. 部署代码

概述

静态网站:图片仅仅包含:html,css样式js脚本,图片及视频;nginx直接处理的资源静态资源

  • 只需要web服务器即可:nginx,可以承受较高的访问量;不支持动态的功能注册,评论及静态网站功能单一

  • 浏览器解析(客户端解析),服务端仅仅负责发送

动态网站:动态网站一般是通过开发语言实现:java,php,python,golang

  • 动态资源页面需要,服务器进行处理nginx+php、tomact+数据库处理好结果返回给用户
  • 动态请求需要服务端进行处理与解析,结果给用户

区分静态资源与动态资源:
1.通过url简单、初步判断,网站类型
2.url中包含&或?一般是动态网站

常见动态网站的架构

php:LNMP(LEMP),LAMP,WNMP/WAMP
java:LNMT(Tomact,jetty,weblogic,jboss)
python:LNMP(python,uwsgi)
golang :LNMG(golang)
c、c++:LNM?。

LNM?
linux系统 nginx web服务 mysql、mariadb数据库
lamp a–》apache目前很少用
wnmp/wamp w-windows一般开发使用

lnmp架构过程

在这里插入图片描述

1.数据库

[root@db01 ~]#yum install -y mariadb-server

cd  /tmp

[root@db01 /tmp]#yum localinstall *.rpm
[root@db01 /tmp]#systemctl enable mariadb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@db01 /tmp]#systemctl start  mariadb.service 

检查:
ss -lntup |grep mysql
在这里插入图片描述
ps -ef |grep mysql

  • 数据库安全配置(SQL语句实现,现在通过脚本命令实现)
mysql_secure_installation ##仅仅刚安装的时候运行,进首次运行即可

用于设置root密码,清理用户和清理临时库

在这里插入图片描述
在这里插入图片描述

linux系统的root与数据库的root
2个独立的用户
Linux的root用户进入和管理整个linux系统
数据库的root用户仅仅是用于管理mysql数据库
进入数据库内部
mysql -uroot -p123

在这里插入图片描述

  • 查看
  • 查看系统所有的数据库
    show databases;
  • 查看里的表
    show tables from mysql
    在这里插入图片描述
  • 查看库里的表的user列和host列(列==字段)查看数据库的用户信息
select 字段1,字段2  from 库 .表;

select user ,host from  库.表

show tables from mysql

在这里插入图片描述
在这里插入图片描述
host:白名单
在这里插入图片描述
创建

create database wulin;

在这里插入图片描述
创建用户,后面通过用户管理数据库

grant all               on   wulin.*   to 'wulin'@'localhost'      indentified  by '123';

grant  all              on   wulin.*   to 'wulin'@'172.16.1.%'      indentified by  '123';

grant  所有权限        on    数据库.*   to '用户名'@'白名单'

在这里插入图片描述

数据库白名单:
白名单表示用户可以从哪里进行登录并且使用数据库
一般localhost表示只能在数据库本地使用
可以通过172.16.1.% 进行授权局域网访问,其他局域网机器可以访问数据库
只给个%表示所有人可以访问(不安全)%不包含localhost

删除(危险)

drop database wulin;

删除用户

     drop user 'wulin'@'172.16.1.%' ;

​     drop user 'wulin'@'localhost' ;

在这里插入图片描述
在这里插入图片描述

[root@web01 ~]#yum localinstall -y mariadb-server-5.5.68-1.el7.x86_64.rpm

在这里插入图片描述

php

在这里插入图片描述

php 7.x
#生产环境选择,根据开发书写代码环境
/etc/yum.repos.d/php.repo
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64
enabled = 1
gpgcheck = 0



[root@web01 ~]#yum install -y php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mcrypt php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-pecl-memcached php72w-pecl-redis php72w-pecl-mongodb

启动:nginx,php-fpm

[root@web01 ~]#systemctl enable php-fpm.service 

[root@web01 ~]#systemctl start php-fpm.service 
检查端口和进程
[root@web01 ~]#ss -lntup |grep php

在这里插入图片描述

[root@web01 ~]#ps -ef |grep php-fpm`

在这里插入图片描述
apache与nginx都要读取网站

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

[root@web01 ~]#egrep ‘user|grep’ /etc/php-fpm.d/www.conf

[root@web01 ~]#egrep ‘user|group’ /etc/php-fpm.d/www.conf
在这里插入图片描述

[root@web01 ~]#egrep  -n '^user|^group' /etc/php-fpm.d/www.conf 
8:user = apache
10:group = apache
[root@web01 ~]#vim +8 /etc/php-fpm.d/www.conf 

在这里插入图片描述

nginx

配置nginx指定用户
在这里插入图片描述
重启:
在这里插入图片描述

配置nginx文件及站点目录

[root@web01 ~]#vim /etc/nginx/conf.d/blog.wulinlinux.cn.conf

在这里插入图片描述
检查
在这里插入图片描述

[root@web01 ~]#systemctl reload nginx.service

旧新版本下载:
Release Archive – WordPress.org China 简体中文

https://cn.wordpress.org/download/releases/
在这里插入图片描述
[root@web01 ~]#unzip -t wordpress-6.2.1-zh_CN.zip

[root@web01 ~]#mv wordpress/* /app/code/blog/

[root@web01 ~]#chown -R nginx.nginx /app/code/blog/

部署代码及设置权限

  • 上面进行下载解压,部署代码
  • 页面进行安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    现在用户访问网站—没有防火墙—没有负载–直接到web服务器 —文字内容在数据库-----图片内容未来要放到存储,现在还在web服务器上
    在这里插入图片描述
    未来就把uploads挂载到存储即可!文字未来需要问开发具体放到哪里!

在这里插入图片描述

select * from wulin.wp_posts ;

在这里插入图片描述
在这里插入图片描述

排错与调试

测试nginx静态页面

<?php
phpinfo()
?>
在这里插入代码片
  • 测试php+nginx

  • 测试php+mysql

<?php

数据库地址

$db_host='172.16.1.51';

数据库名称

$db_user='wordpress';

$db_pass='123';

$link_id=mysqli_comment($db_host, $db_usr, $db_pass);

if($link_id){

echo "mysql successful by wulin!\n";

}else{

 echo"connection failed!\n";

}

常见故障

  1. 权限问题
    无法写入wp-config.php文件

解决方式:手动创建wp-config.php文件,

<?php
/**
 * The base configuration for wordpress
 *
 * The wp-config.php creation script uses this file during the installation.
 * You don'not have to use the web site,you can copy this file to "wp-config.php"
 * and fill in the values.
 *
 * This file contains the folowing configurations:
 *
 * * Dtabase settings
 * * Secret keys
 * * ABSPATH
 *

完成后进行运行安装程序

  1. 数据库连接问题

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

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

相关文章

DHCP原理1-单个局域网出现多个DHCP服务器会发生什么

1. 背景 DHCP全称是Dynamic Host Configuration Protocol。其协议标准是RFC1541&#xff08;已被RFC2131取代&#xff09;&#xff0c;主要实现服务器向客户端动态分配IP地址&#xff08;如IP地址、子网掩码、网关、DNS&#xff09;和配置信息。其系统架构是标准的C/S架构。RFC…

如何写出高效的代码?

1. 优化你的程序&#xff0c;拒绝创建不必要的对象 如果你的变量&#xff0c;后面的逻辑判断&#xff0c;一定会被赋值&#xff1b;或者说&#xff0c;只是一个字符串变量&#xff0c;直接初始化字符串常量就可以了&#xff0c;没有必要愣是要new String(). 反例&#xff1a;…

Redis 的安装与部署

本文为Redis的Linux版单机部署。 上传 redis-3.2.8 源码到 /opt/software/ 解压到 /opt/module/ [huweihadoop101 software]$ tar -zxvf redis-3.2.8.tar.gz -C /opt/module/安装依赖 [huweihadoop101 software]$ sudo yum -y install gcc-c tclRedis是C语言编写的 编译安装…

(南京观海微电子)——DC-DC和LDO的原理及应用区别

LDO: 低压差线性稳压器&#xff0c;故名思意为线性的稳压器&#xff0c;仅能使用在降压应用中&#xff0c;也就是输出电压必需小于输入电压。 优点&#xff1a;稳定性好&#xff0c;负载响应快&#xff0c;输出纹波小。 缺点&#xff1a; 效率低&#xff0c;输入输出的电压…

Linux使用——查看发行版本、内核、shell类型等基本命令

先做快照 虚拟机中编辑网络 关机 普通账户和管理员账户 互相对照 localhost相当于IP 参数: 短格式:以减号(-)开头&#xff0c;参数字母 长格式:以2个减号(--)后跟上完整的参数单词 当前发行版本 [rootserver ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 9.…

.hmallox勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 在当今数字化时代&#xff0c;勒索病毒已经成为网络安全的一大威胁&#xff0c;其中包括了最近出现的.hmallox勒索病毒。这类恶意软件不仅能够对计算机系统进行加密&#xff0c;还会要求用户支付赎金以换取解密密钥&#xff0c;给个人用户和企业带来了严重的…

Java面试题:数据库索引

数据库索引 索引:index 帮助mysql高效获取数据的数据结构,在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树),这些数据结构以某种方式引用(指向数据),这样就可以在数据结构上实现高级查找算法 将数据以树的方式进行存储,提高查找效率 索引的底层结构 使用B树 …

React AntDesign Layout组件布局刷新页面错乱闪动

大家最近在使用React AntDesign Layout组件布局后刷新页面时&#xff0c;页面布局错乱闪动 经过组件属性的研究才发现&#xff0c;设置 hasSider 为 true 就能解决上面的问题&#xff0c;耽搁了半天的时间&#xff0c;接着踩坑接着加油&#xff01;&#xff01;&#xff01; …

XTDrone-多无人机精准降落-配置教程

1 编译AprilTag_ROS AprilTag是一个视觉基准系统&#xff0c;可用于机器人&#xff0c;增强现实和相机校准等。 根据AprilTag可以可靠地计算标签相对于相机的3D位置&#xff0c;方向和ID号。这里我们使用AprilTag的ROS库来实现位姿估计与ID号计算。 编译命令如下&#xff1a; …

Linux 7种 进程间通信方式

传统进程间通信 通过文件实现进程间通信 必须人为保证先后顺序 A--->硬盘---> B&#xff08;B不知道A什么时候把内容传到硬盘中&#xff09; 1.无名管道 2.有名管道 3.信号 IPC进程间通信 4.消息队列 5.共享内存 6.信号灯集 7.socket通信 一、无名管道&a…

基于I2C协议的AHT20温湿度传感器的数据采集

一、I2C总线通信协议 软件I2C 软件I2C&#xff0c;也称为模拟I2C或bit-bang I2C&#xff0c;是一种通过微控制器的通用输入输出&#xff08;GPIO&#xff09;引脚来模拟I2C总线通信的方式。它不依赖于专门的硬件I2C接口&#xff0c;而是通过编程控制GPIO引脚的电平状态来实现I…

我在高职教STM32——LCD液晶显示(3)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

前端开发流程与技术选型

目录 一、简介 二、前端职责 三、开发步骤 四、技术选型 五、页面展示 一、简介 做一个网站时&#xff0c;能看到的一切都是前端程序员的工作&#xff0c;负责网页或者app的结构、样式、用户操作网站时的事件逻辑&#xff08;比如点击一个按钮&#xff09;。 二、前端职…

一、系统学习微服务遇到的问题集合

1、启动了nacos服务&#xff0c;没有在注册列表 应该是版本问题 Alibaba-nacos版本 nacos-文档 Spring Cloud Alibaba-中文 Spring-Cloud-Alibaba-英文 Spring-Cloud-Gateway 写的很好的一篇文章 在Spring initial上面配置 start.aliyun.com 重新下载 < 2、 No Feign…

嵌入式系统中的加解密签名

笔者来了解一下嵌入式系统中的加解密 1、背景与名词解释 笔者最近在做安全升级相关的模块&#xff0c;碰到了一些相关的概念和一些应用场景&#xff0c;特来学习记录一下。 1.1 名词解释 对称加密&#xff1a;对称加密是一种加密方法&#xff0c;使用相同的密钥&#xff08;…

力扣刷题 杨辉三角(使用c++ vector解法)

杨辉三角 题目描述示例1示例2提示:代码 题目描述 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例1 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例2 …

4、SpringMVC 实战小项目【加法计算器、用户登录、留言板、图书管理系统】

SpringMVC 实战小项目 3.1 加法计算器3.1.1 准备⼯作前端 3.1.2 约定前后端交互接⼝需求分析接⼝定义请求参数:响应数据: 3.1.3 服务器代码 3.2 ⽤⼾登录3.2.1 准备⼯作3.2.2 约定前后端交互接⼝3.2.3 实现服务器端代码 3.3 留⾔板实现服务器端代码 3.4 图书管理系统准备后端 3…

【内存管理】页面分配机制

前言 Linux内核中是如何分配出页面的&#xff0c;如果我们站在CPU的角度去看这个问题&#xff0c;CPU能分配出来的页面是以物理页面为单位的。也就是我们计算机中常讲的分页机制。本文就看下Linux内核是如何管理&#xff0c;释放和分配这些物理页面的。 伙伴算法 伙伴系统的…

Visual Studio开发环境搭建

原文&#xff1a;https://blog.c12th.cn/archives/25.html Visual Studio开发环境搭建 测试&#xff1a;笔记本原装操作系统&#xff1a;Windows 10 家庭中文版 资源分享链接&#xff1a;提取码&#xff1a;qbt2 注意事项&#xff1a;注意查看本地硬盘是否够用&#xff0c;建议…

在阿里云使用Docker部署MySQL服务,并且通过IDEA进行连接

阿里云使用Docker部署MySQL服务&#xff0c;并且通过IDEA进行连接 这里演示如何使用阿里云来进行MySQL的部署&#xff0c;系统使用的是Linux系统 (Ubuntu)。 为什么使用Docker? 首先是因为它的可移植性可以在任何有Docker环境的系统上运行应用&#xff0c;避免了在不通操作系…