ubuntu20.04 LNMP环境搭建

2023-05-16

LNMP环境搭建

文章目录

  • LNMP环境搭建
    • 1 nginx 源码安装
      • 1.1 资源下载
      • 1.2 编译安装
      • 1.3 配置
        • 1.3.1 nginx.conf配置
        • 1.3.2 将nginx添加为系统服务
      • 1.4 验证
    • 2 mariadb 源码安装
      • 2.1 资源下载
      • 2.2 编译安装
  • 各参数的意义
      • 2.3 配置
      • 2.4 验证
    • 3 php-fmp 源码安装
      • 3.1 资源下载
      • 3.2 编译安装
      • 3.3 配置
      • 3.4 验证

首先安装 gcc,g++,make,cmake工具;

1 nginx 源码安装

1.1 资源下载

cd /usr/local/src/
sudo wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
sudo wget https://zlib.net/zlib-1.2.13.tar.gz
sudo wget https://www.openssl.org/source/openssl-3.1.0.tar.gz
sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz

1.2 编译安装

sudo tar zxf pcre-8.45.tar.gz
cd pcre-8.45/
sudo ./configure
sudo make && sudo make install

cd /usr/local/src/
sudo tar zxf zlib-1.2.13.tar.gz
cd zlib-1.2.13/
sudo ./configure
sudo make && sudo make install

cd /usr/local/src/
sudo tar zxf openssl-3.1.0.tar.gz

sudo tar zxf nginx-1.24.0.tar.gz
cd nginx-1.24.0/

sudo ./configure --user=nginx --group=nginx \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-file-aio \
--with-http_realip_module \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.45 \
--with-zlib=/usr/local/src/zlib-1.2.13 \
--with-openssl=/usr/local/src/openssl-3.1.0

sudo make && sudo make install

# 添加nginx组和用户
sudo groupadd -r nginx && sudo useradd -r -g nginx -s /sbin/nologin -d /usr/local/nginx nginx
# 修改配置用户权限
sudo chown -R nginx:nginx /usr/local/nginx

1.3 配置

1.3.1 nginx.conf配置

# 备份配置文件
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.default

# 测试nginx配置是否成功
sudo /usr/local/nginx/sbin/nginx -t
# 停止nginx服务
sudo /usr/local/nginx/sbin/nginx -s stop
# 重启nginx服务
sudo /usr/local/nginx/sbin/nginx -s reload

1.3.2 将nginx添加为系统服务

# 创建文件
sudo vim /lib/systemd/system/nginx.service

添加如下:

[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

说明:

Description=nginx-The High-performance HTTP Server //描述服务
After=network.target remote-fs.target nss-lookup.target //描述服务类别

[Service]
Type=forking //后台运行的形式
PIDFile=/usr/local/nginx/logs/nginx.pid //PID文件的路径
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf //启动准备
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //启动命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload //重启命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop //停止命令
ExecQuit=/usr/local/nginx/sbin/nginx -s quit //快速停止
PrivateTmp=true //给服务分配临时空间

[Install]
WantedBy=multi-user.target //服务用户的模式

# 赋予该文件执行权限
sudo chmod +x /lib/systemd/system/nginx.service
# 在启动服务之前,需要先重载systemctl命令
sudo systemctl daemon-reload
# 启动nginx服务
sudo systemctl start nginx

# 使能自启动 
sudo systemctl enable nginx

1.4 验证

浏览器输入 服务器IP地址 出现如下页面即nginx安装成功
在这里插入图片描述

2 mariadb 源码安装

2.1 资源下载

cd /usr/local/src/
# 下载
sudo wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.5.12/source/mariadb-10.5.12.tar.gz
# 安装依赖
sudo apt install -y libncurses5-dev 

2.2 编译安装

sudo mkdir -p /data/mariadb /var/log/mariadb

# 1.解压
sudo tar zxf mariadb-10.5.12.tar.gz
cd mariadb-10.5.12

# 2.编译配置
sudo cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
-DMYSQL_DATADIR=/data/mariadb \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITHOUT_TOKUDB=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWIYH_READLINE=1 \
-DWIYH_SSL=system \
-DVITH_ZLIB=system \
-DWITH_LOBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost

各参数的意义

参数意义
-DCMAKE_INSTALL_PREFIX是指定安装的位置, 这里是/usr/local/mariadb
-DMYSQL_DATADIR是指定MySQL的数据目录,这里是/data/mariadb
-DSYSCONFDIR是指定配置文件所在的目录,一般都是/etc ,具体的配置文件是/etc/my.cnf
-DWITHOUT_TOKUDB=1这个参数一般都要设置上,表示不安装tokudb引擎,tokudb是MySQL中一款开源的存储引擎, 可以管理大量数据并且有一些新的特性,这些是Innodb所不具备的,这里之所以不安装,是因为一般计算机默认是没有Percona Server的,并且加载tokudb还要依赖jemalloc内存优化,一般开发中也是不用tokudb的,所以暂时屏蔽掉,否则在系统中找不到依赖会出现:CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message), 这样的错误,然后后面那些参数都是可选的,可以加也可以不加,最后的编码建议设置一下,所以编译指令也可以简化成下面这样:
# 3.编译
sudo make && sudo make install

# 创建mysql组与用户
sudo groupadd -r mysql && sudo useradd -r -g mysql -s /sbin/nologin -d /usr/local/mariadb mysql
# 修改配置用户权限
sudo chown mysql:mysql -R /usr/local/mariadb /data/mariadb /var/log/mariadb

编译出现 g++: internal compiler error: Killed (program cc1plus) 错误处理方法:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile

编译完成后删除

sudo swapoff /swapfile
sudo rm /swapfile

2.3 配置

sudo /usr/local/mariadb/scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
cd /usr/local/mariadb/

编辑配置文件

sudo vim /usr/local/mariadb/my.cnf 

添加如下

[mysqld]
basedir=/usr/local/mariadb/
datadir=/data/mariadb/
port=3306
pid-file=/data/mariadb/mysql.pid
socket=/tmp/mysql.sock

[mysqld_safe]
log-error=/data/mariadb/mysql.log
pid-file=/data/mariadb/mariadb.pid

[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8
sudo cp /usr/local/mariadb/support-files/mysql.server /etc/init.d/mariadb
# 启动及登录mariadb
sudo /etc/init.d/mariadb start

# 数据安全配置
sudo /usr/local/mariadb/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password:
Re-enter new password:
Sorry, passwords do not match.

New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

# 使能自启动
sudo systemctl enable mariadb
# 忘记root密码
flush privileges;
set password for 'root'@'localhost'=password('123456');
flush privileges;

2.4 验证

在这里插入图片描述

3 php-fmp 源码安装

3.1 资源下载

cd /usr/local/src/
# 获取源码
sudo wget https://www.php.net/distributions/php-8.0.3.tar.gz
# 安装依赖
sudo apt-get install -y pkg-config build-essential autoconf bison re2c \
                    libxml2-dev libsqlite3-dev libonig-dev libssl-dev \
                    bzip2 libbz2-dev libcurl4-openssl-dev libxslt1-dev

3.2 编译安装

sudo tar zxf php-8.0.3.tar.gz
cd /usr/local/src/php-8.0.3

sudo ./configure --prefix=/usr/local/php \
--exec-prefix=/usr/local/php \
--with-fpm-user=php \
--with-fpm-group=php \
--enable-zip \
--with-curl \
--with-gettext \
--with-iconv-dir \
--with-libdir=lib64 \
--with-mysqli \
--with-openssl \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear --with-xmlrpc \
--with-xsl --with-zlib \
--with-bz2 --with-mhash --enable-bcmath \
--enable-inline-optimization --enable-mbregex \
--enable-mbstring --enable-opcache --enable-pcntl --enable-shmop \
--enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm \
--enable-xml --enable-fpm --with-freetype-dir --with-gd --with-libxml-dir \
--with-pcre-regex --enable-libxml --enable-zip --with-png-dir --with-jpeg-dir

sudo make all install

# 添加php组和用户
sudo groupadd -r php && sudo useradd -r -g php -s /sbin/nologin -d /usr/local/php php
# 修改配置用户权限
sudo chown -R php:php /usr/local/php

3.3 配置

sudo cp php.ini-production /usr/local/php/lib/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

sudo vim /etc/profile.d/php.sh
export PATH=$PATH:/usr/local/php/bin/
sudo chmod 0777 /etc/profile.d/php.sh && source /etc/profile.d/php.sh
sudo cp sapi/fpm/php-fpm.service /etc/systemd/system/php-fpm.service

sudo /usr/local/php/sbin/php-fpm

# 重新加载服务
sudo systemctl daemon-reload
# 使能php-fpm服务
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

启动报错:
ERROR: failed to open error_log (/usr/local/php/var/log/php-fpm.log): Read-only file system (30)
在这里插入图片描述
修改php-fpm.service中ProtectSystem为false

sudo vim /etc/systemd/system/php-fpm.service
ProtectSystem=false
sudo systemctl daemon-reload
sudo systemctl start php-fpm
sudo systemctl status php-fpm

在这里插入图片描述

3.4 验证

修改nginx配置文件

sudo vim /usr/local/nginx/conf/nginx.conf

添加index.php:

location / {
            root   html;
            index  index.html index.htm index.php;
        }
# nginx.conf中添加
location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
# 重启nginx服务
sudo /usr/local/nginx/sbin/nginx -s reload

/usr/local/nginx/html/目录新建index.php

# php验证安装
sudo vim /usr/local/nginx/html/index.php

并添加:

<?php
echo phpinfo();
?>

修改权限:

sudo chown nginx:nginx /usr/local/nginx/html/index.php

浏览器输入http://服务器IP/index.php,出现如下页面即nginx安装成功。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu20.04 LNMP环境搭建 的相关文章

  • MySql错误1251 - Client does not support authentication protocol requested by server 解决方案

    这是一个简单的权限与安全问题 只需要在 MySQL Shell 中输入两行简单的命令就可以解决问题 从安装目录进入mysql xff0c 找到安装目录 xff0c 点击上面的安装目录 xff0c 输入cmd xff0c 回车 xff0c 进
  • 初学Linux Vim时遇到的坑,为什么操作:wq 无法保存和退出

    Vim是Linux常用的文本编辑器 vim的操作 1 输入命令 vi 文件名 xff0c 进入文本编辑页面 2 输入 a 或者 i 可以编辑内容 3 点击Esc 退出命令模式 4 输入 xff1a wq 保存并退出 xff0c 记得别漏了冒
  • 将tensor转换为numpy

    将tensor转换为numpy span class token keyword import span tensor span class token keyword import span numpy span class token
  • OpenStack配置网络并安装且配置控制器节点

    OpenStack配置网络 右击以管理员模式启动 点击编辑 xff0c 选择启动启动虚拟网络编辑器 如上图所示 xff0c 如果出现桥接模式则是操作正确 下面进入虚拟机中 用户名为 xff1a root 密码 xff1a 123456 进入
  • 疑难杂症:Intellig IDEA启动Tomcat,控制台输出中文乱码(2018.3版本亲测可用)

    找到 IntelliJ IDEA 安装目录下bin目录下 xff0c 修改idea exe vmoptions和idea64 exe vmoptions两个文件 xff0c 在最后一行添加 Dfile encoding 61 UTF 8 修
  • 21.通用型1602液晶显示屏操作方法

    第7章通用型1602液晶显示屏操作方法 7 1液晶概述 液晶显示屏的主要原理是以电流刺激液晶分子产生点 线 面并配合背部灯管构成画面 液晶通常是按照显示字符的行数或液晶点阵的行 列数来命名的 xff0c 比如1602的意思是每行显示16个字
  • 外文文献检索网站

    1 Google scholar 网址 xff1a https scholar google com hk hl 61 zh CN 如今搜索论文的首选 xff0c 可以在这里查看论文统计和引用参考文献 xff0c 还能通过关注作者或者论文获
  • shell-awk的BEGIN和END

    文章目录 一 Awk 的两个特殊模式实例 xff1a 二 Awk高级应用1 if单分支语句2 if双分支语句3 for循环4 while循环 SHELL awk两个特殊模式 xff08 BEGIN 和 END xff09 及awk高级应用
  • HTML5基础知识

    目录 一 初识HTML 二 网页基本标签 2 1标题标签 2 3换行标签 2 4水平线标签 2 5字体样式标签 2 6注释和特殊符号 三 图像 xff0c 超链接 xff0c 网页布局 3 1图像标签 3 2链接标签 3 3块元素和行内元素
  • SQL Server 调用程序集(dll文件)

    1 生成对应的dll项目文件 如下图所示 xff08 示例 xff09 xff1a 2 打开SQL SERVER数据库 xff0c 创建程序集 xff0c 如下操作 找到 程序集 61 右击选中 新建程序集 点击 常规 xff0c 操作如下
  • 树莓派3b+镜像的安装以及常用的登录方式及树莓派换源

    安装镜像 1 xff0c 格式化内存卡用第一个工具 2 xff0c 把镜像写道内存卡中用第二个工具 登录 串口登录 因为树莓派默认的是蓝牙连接 xff0c 我们要断开蓝牙连接 xff0c 打开串口连接 将安装好的sd卡文件夹下的 cmdli
  • 通过kettle工具实现数据清洗与转换(实例)

    一 对文件merge csv进行完全去重 1 使用Kettle工具创建转换repeat transform xff0c 并添加 CSV文件输入 控件 唯一行 xff08 哈希值 xff09 控件以及Hop跳连接线 2 配置 CSV文件输入
  • JavaWed开发环境与搭建

    一 jdk下载与安装 1 下载 xff1a 进入官网 xff08 http www oracle com xff09 下载对应版本即可 2 设置环境变量 需要设置环境变量如下 xff08 JDK安装的位置 xff09 二 TomCat下载与
  • 【树莓派问题】树莓派python虚拟环境无法安装scipy库

    目录 问题描述 问题解决方法 报错关键字 xff1a Building wheel for numpy PEP 517 started Building wheel for numpy PEP 517 still running pip s
  • Codeblocks修改字体

    右上角settings editor general settings choose 选择好之后一路确定OK就可以了 但是大家谨慎改 xff0c 因为20 03版本的会报错 xff0c 就像我这样 xff0c 不知道其他版本修改后会不会有问
  • 论文阅读 MAML (Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks)

    Model Agnostic Meta Learning for Fast Adaptation of Deep Networks MAML 论文阅读 摘要介绍模型不可知元学习元学习问题定义模型不可知元学习算法 MAML种类监督回归和分类强
  • RIPV2动态路由协议—网络基础

    RIPV2动态路由协议 一 实验题目1 IP地址规划2 拓扑搭建3 配置IP地址与环回接口4 RIPV2的配置5 RIP的扩展配置 xff1a 6 成果展示 二 动态路由1 动态路由协议 xff1a 2 动态路由协议的缺点 xff1a 3
  • VC6.0 MFC 单文档 贪吃蛇游戏 基础入门

    贪吃蛇游戏 一 整体思路 1 贪吃蛇对大家来说并不陌生 xff0c 既然要设计贪吃蛇 xff0c 那么我们首先要定义蛇和食物这样两个对象 xff0c 并给它们添加一些成员变量 2 添加虚函数OnInitialUpdate 做一些初始化工作
  • 启动错误求助

    org springframework beans factory UnsatisfiedDependencyException Error creating bean with name 39 userController 39 Unsa
  • C++ 入门(编写第一个C++程序)

    第一章 遇见C 43 43 欢迎进入C 43 43 世界 xff01 1 1 C 43 43 介绍 C 43 43 是在C语言的基础上添加了面向对象和泛型编程的支持 xff0c 它是21世纪最重要的编程语言之一 xff0c C 43 43

随机推荐

  • yield和return的区别-- 超详细

    首先比较下return 与 yield的区别 xff1a return xff1a 在程序函数中返回某个值 xff0c 返回之后函数不在继续执行 xff0c 彻底结束 yield 带有yield的函数是一个迭代器 xff0c 函数返回某个值
  • Linux修改登录密码

    root 权限修改用户名密码 执行 xff1a passwd root 按照提示输入新的密码两次 如果用xshell连接的情况下 xff0c 需要重新验证新的密码 非root 权限修改用户名密码 执行 xff1a passwd userna
  • Ubuntu 更换apt-get源

    Ubuntu最初的apt get源在国外网站 xff0c 因此很多时候通过apt get安装软件速度会很慢 我们可以将apt get源更换成国内镜像源 xff0c 来解决速度慢的问题 更换apt get源主要有以下四个步骤 xff1a 1
  • Loadrunner11安装_简单使用基础教程

    资源均来源于网络 xff0c 若侵权 xff0c 请联系我删除 文章目录 一 Loadrunner11简介 二 Loadrunner11安装教程 三 Virtual User Generator教程 四 Controller教程 五 Ana
  • vue2快速安装环境,创建vue2项目教程(windows)

    1 安装环境 首先首先进入node js xff08 v12 13 0 msi版本 xff0c 最新版可能npm版本太高了 xff0c 会报错 xff0c 不过卸载重新装低版本也行 xff09 官网安装node js xff0c node
  • 树莓派4b安装docker报错解决

    树莓派安装docker参考 xff1a 方法1 xff1a 官方文档 xff08 脚本直接安装 xff09 方法2 xff1a 官方版本中译 xff08 嫌上一个麻烦的可以直接看这个 xff09 方法3 xff1a 非脚本安装方法 方法4
  • 2022创业基础——李家华等章节测试答案以及期末考试答案

    2022创业基础 李家华等章节测试答案以及期末考试答案 资源均来源于网络 xff0c 若侵权 xff0c 请联系我删除 需要的可以到我的阿里云盘下载 xff1a https www aliyundrive com s bkTQKG16TmC
  • java中的&lt;和&gt;分别是什么意思

    今天在做java笔试题的时候 xff0c 有一题出现了这个符号 xff0c 由于我不认识这个符号就做错了 xff0c 题目如下 xff1a 这题的答案是A 而我选了C 后面百度才知道 amp lt 的意思是小于 lt 符号 xff0c 在用
  • 由ip地址和子网掩码求网络号、主机号、广播地址(超详细)

    话不多说 xff0c 直接进入正题 xff0c 如果有概念理解不清楚的话 xff0c 可以去看文章后面的部分 xff0c 我直接在前面给出计算方法 1 用二进制数表示IP地址 在进行计算之前 xff0c 我们首先要学会十进制的IP地址怎么转
  • Arcgis加载在线地图(内涵各种在线地图)

    一 连接在线地图 1 首先打开Arcgis xff0c 找到GIS服务器 xff0c 双击添加WMTS服务器 xff1a 2 在URL框中填入在线地图URL xff1a http xdc at map wmts xff0c 点击获取图层 x
  • SpringBoot+Vue+EasyExcel+MybatisPlus+Lombok前后端分离实现Excel文件导入导出(简单实用版)

    一 前言 文章参考自两位大佬的博客 xff1a http events jianshu io p 4242556280fa https www w3xue com exp article 20228 80302 html 我在此基础上做了补
  • QGIS数据可视化学习笔记04(完结)——POI检索和数据上图

    一 POI数据检索概念 什么是POI检索 xff1f 为什么要使用POI检索 xff1f 有的时候 xff0c 我们可能不知道某个位置的地址 xff0c 比如说北京朝阳图书馆 xff0c 这个位置没有任何部门会去公布位置信息 xff0c 但
  • PYQT5学习笔记05——QObject父子对象API以及案例

    一 父子对象API 我们在这里简单演示一下父子对象API的具体用法以及代码实现 xff0c 父子对象API有五个 xff0c 分别是setParent parent children findChild findChildren xff0c
  • Echarts使用本地JSON文件加载不出图表的解决方法以及Jquery访问本地JSON文件跨域的解决方法

    前言 最近需要做一个大屏展示 xff0c 需要用原生html5 43 css 43 js来写 xff0c 所以去学了一下echarts的使用 在使用的过程中难免碰到许多BUG xff0c 百度那是必不可少的 xff0c 可是这些人写的牛头不
  • [学习笔记]OpenFlow概述(1)

    个人学习笔记 xff0c 出问题请指出下 摘取 图解OpenFLow Openflow协议是由斯坦福大学提出 xff0c 最初的出发点是为了更加轻松地构建用于研究的网络 Openflow的初期设计思想 xff1a 无需设计新的硬件 xff0
  • 最优化理论——可行方向法

    最优化理论 可行方向法 算法思想算法步骤线性约束非线性约束 示例 算法思想 转化为子问题 xff1a 算法步骤 线性约束 非线性约束 示例
  • CSS——高度塌陷以及解决方法

    文章目录 前言 一 什么是高度塌陷 xff1f 二 高度塌陷的解决方法 1 解决方法 2 开启BFC 3 开启BFC的特点 总结 前言 本文主要介绍了高度塌陷产生的原因以及解决方法 一 什么是高度塌陷 xff1f 高度塌陷 在浮动布局中 x
  • 实践:理解镜像构成

    实践 xff1a 理解镜像构成 一 镜像二 容器三 镜像与容器间的关系四 多层存储五 实际操作1 定制Web服务器2 访问结果3 修改网页内容4 查看具体改动 一 镜像 镜像 xff08 Image xff09 xff1a Docker 镜
  • 深度学习知识点整理

    文章目录 数据集基础术语epochbatchNormalization 网络架构参数神经元卷积层例子 池化 pooling overlap预处理数据增强模型并行max pooling全连接层sequential模型SoftMaxSVM有监督
  • ubuntu20.04 LNMP环境搭建

    LNMP环境搭建 文章目录 LNMP环境搭建1 nginx 源码安装1 1 资源下载1 2 编译安装1 3 配置1 3 1 nginx conf配置1 3 2 将nginx添加为系统服务 1 4 验证 2 mariadb 源码安装2 1 资