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

2024-06-23 15:44

本文主要是介绍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-servercd  /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. 数据库连接问题

这篇关于Linux动态网站架构(部署开发php代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087580

相关文章

linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents