nginx1.9.11 php7.0.3 mysql5.7.11
* * * * *
linux为centos6.5,64位
nginx版本为:1.9.11(目前最新版本),官方网站:[http://nginx.org/](http://nginx.org/)
php版本为:7.0.3(目前最新版本),官方网站:[http://php.net](http://php.net)
mysql版本为:5.7.11,官方网站:[http://www.mysql.com/](http://www.mysql.com/)
* * * * *
一.环境准备
* * * * *
~~~
$ yum -y install gcc gcc-c++ autoconf automake libtool make cmake
$ yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
~~~
二.安装nginx
创建用来运行nginx的用户及组
我们创建一个新的用户和用户组来运行nginx,这样可以把nginx和root分开,保证nginx不具备root权限。但是,我们并不希望nginx成为一个真实的可以登陆到远程进行操作的用户,所以,我们并不给它创建家目录,在useradd的时候,用-M参数:
$ groupadd nginx
$ useradd -g nginx -M nginx
-g参数为nginx用户指定了一个组。-M参数保证其不自动生成home目录。
但通过上面的用户创建之后,nginx用户可以通过设置一个密码登陆到服务器,这个不是我们想要的,我们禁用它的ssh登陆权限.禁止用户登陆也很方便,只需要修改配置文件中有关用户和用户组的信息即可。
$ vi /etc/passwd
找到nginx,将后面的 /bin/bash 改为 /sbin/nologin 即可。
OK,用户处理完毕。
编译安装Nginx
前面讲了这么多,都还没有说到重点,接下来我们来编译安装nginx。先进入nginx的官方网站,找到最新版本的tar.gz包的链接,复制链接,然后执行下面的动作:
~~~
$ wget http://nginx.org/download/nginx-1.9.11.tar.gz
$ tar -zxvf nginx-1.9.11.tar.gz
$ cd nginx-1.9.11
~~~
接下来我们需要执行./configure,不同的开发者有不同的习惯,对于刚入门的用户而言,不是很喜欢麻烦的去进行配置,总是希望默认就是最好的,但是实际情况恰好相反,走上linux的道,就请热爱折腾,既然选择编译安装,就请热爱make。
我希望把软件安装在/user/local下面,一个软件一个目录,在以后卸载的时候也比较方便清理。软件的目录也按照linux的目录形式,用conf、etc、sbin、run等进行归类管理,所以,我最终的./configure配置如下:
$ ./configure --prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--with-http_ssl_module \
--user=nginx \
--group=nginx \
--with-pcre \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module
末尾三个是禁用nginx作为邮件代理服务器,我一般只用服务器作为网站或数据库的服务器,所以这里把它们禁用掉,你如果想搭建的是邮件服务器,那么就应该去阅读nginx搭建邮件服务器的教程。
你可以认真阅读一下./configure的结果,看看有没有报错,或者加载的模块是不是都齐全,如果一切OK,那么往下继续,如果感觉不对,可以用./configure --help认真阅读一下。
$ make
$ make install
make的地方有一个小技巧,如果服务器是双核,可以通过-j2来指定用双核进行编译,-j4代表4核编译。
安装到这里就结束了,但是,安装完可没完事儿,nginx还没有运行起来,你可以先去看看安装的结果,并且运行nginx服务器:
$ cd /usr/local/nginx
$ ls
$ sbin/nginx
这样就运行起来了,访问你的服务器ip,看看能否看到ngin的欢迎页面吧。(不要让其他软件占用80端口哦)默认情况下网页文件放在/usr/local/nginx/html下,不符合我们的使用习惯,这个需要修改nginx的配置文件来修改,不过即使不修改,我们也是可以正常使用的,我们就不详细解释nginx的配置了。
nginx服务的载入
但是,make编译安装的软件,可不像yum安装的服务,我们熟悉的service命令并不起效,不然你用service nginx restart试试看。这是因为service调用/etc/ini.d/目录下的程序完成,而该目录下并不存在nginx这个程序。那么这个时候怎么重启nginx呢?如下操作:
$ /usr/local/nginx/sbin/nginx -s reload
这个操作可以重新加载nginx的配置文件,相当于重启(当配置文件出错时,不会重启)。如果一定要重启整个服务,那只能通过杀死nginx进程,然后在运行程序了。
不过为了使用我们熟悉的service操作,这里提供一个[程序](http://pan.baidu.com/s/1jGZuqfO) ,放到/etc/init.d/目录下,并执行:
$ chmod +x /etc/init.d/nginx
$ chkconfig --add nginx
$ chkconfig nginx on
这样就可以通过service nginx restart等方法来操作nginx了。你可以把程序下载下来,简单研究一下,如果你的nginx安装路径和我的不同,还要修改程序开头的变量设置。
#### **PHP7的编译安装**
编译安装php7
在《 lamp升级php至php7 》一文中,我谈到了如何在apache的服务器环境中升级php到7,而到nginx环境下,我们不再使用php的apxs模块,而是直接使用php-fpm模块。接下来,我们来尝试编译安装php7。
安装libxml2,curl,libjpeg,libpng,freetype,libmcrypt
~~~
yum install -y libxml2 libxml2-devel
yum -y install curl-devel
yum -y install libjpeg libjpeg-devel
yum -y install libpng libpng-devel
yum -y install freetype-devel
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -xzvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install
~~~
先从官方网站下载php7,并且解压,由于上面这篇文章已经有了相关步骤,就不做过多详解:
$ wget http://cn2.php.net/distributions/php-7.0.3.tar.gz
$ tar -zxvf php-7.0.3.tar.gz
$ cd cd php-7.0.3
接下来要进行编译前的配置,和上面一篇文章不同,我们不提供apxs参数,相反,我们提供php-fpm相关参数:
~~~
$ ./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \
--with-mcrypt=/usr/include \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache
~~~
配置无误后执行:
$ make
$ make install
同样可以使用-j2哦。如果安装成功,OK,那么php7的安装就OK了。
调整php配置
默认安装好之后,你会发现/usr/local/php7/etc下面没有php.ini文件,这个去哪里要呢?在php7的源码安装包都有。
$ cd /usr/src/php-7.0.0/
$ ls
可以看到有两个php.ini-xxx文件,我们可以分别vi打开来看下,一个是产品模式,一个是开发模式。
~~~
$ cp php.ini-production /usr/local/php7/etc/php.ini
$ vi /usr/local/php7/etc/php.ini
~~~
可以看到php的配置。本文就不做过多的配置解释了。
启用php-fpm服务
上面我们在编译php7的时候,已经将fpm模块编译了,那么接下来,我们要启用php-fpm。但是默认情况下它的配置文件和服务都没有启用,所以要我们自己来搞定。
搞定配置文件:
$ cd /usr/local/php7/etc
$ mv php-fpm.conf.default php-fpm.conf
$ mv php-fpm.d/www.conf.defualt php-fpm.d/www.conf
php-fpm的具体配置我们也不做深入去详解,因为在编译之前./configure的时候,我们都已经确定了一些配置,比如运行fpm的用户和用户组之类的,所以默认配置应该不会存在路径问题和权限问题。
搞定php-fpm的服务载入:
就像上面的nginx一样,我们希望使用service php-fpm start|stop|restart这些操作来实现服务的重启,但没有像nginx那么复杂,php编译好之后,给我们提供了一个php-fpm的程序,不需要我再编写分享了。这个文件放在php编译源码目录中:
$ cd /usr/src/php-7.0.0/sapi/fpm
$ ls
$ cp init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
$ chkconfig --add php-fpm
$ chkconfig php-fpm on
通过上面这个操作,我们就可以使用 sevice php-fpm start 来启用php-fpm了。用 ps -ef | grep php-fpm 看看进程吧。
nginx代理php实现访问
通过上面的操作,nginx和php-fpm服务都被我们跑起来了,但是php-fpm走的是127.0.0.1:9000,外网是无法访问的,而且我们也不可能直接通过php-fpm给外网提供服务,我们用nginx去代理9000端口执行php。
实际上这个过程只需要对nginx进行配置即可,fpm已经在后台运行了,我们需要在nginx的配置文件中增加代理的规则,即可让用户在访问80端口,请求php的时候,交由后端的fpm去执行,并返回结果。
$ vi /usr/local/nginx/conf/nginx.conf
如果你大致了解过nginx的配置,应该能够很快分辨出这个配置文件里面的结构,并且知道server代表一个虚拟主机,要增加虚拟主机就再增加一个server,而且这个conf文件中也给出了例子。那么怎么代理php-fpm呢?找到:
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name;
# include fastcgi_params;
#}
把前面的#注释符号去掉,把script改为$document_root最终如下:
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;
}
这样就OK了,重新载入nginx配置即可
$ service nginx reload
然后到/usr/local/nginx/html去写一个php文档,进行测试吧。
安装mysql
下载
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
解压
tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
创建mysql目录并把解压后的mysql文件转移过去
mkdir /usr/local/mysql
mv mysql-5.7.11-linux-glibc2.5-x86_64/* /usr/local/mysql/
3、在mysql下面创建data数据库文件目录
[root@localhost local]# mkdir mysql/data
4、创建mysql的用户组和用户,并对mysql目录设置用户组和用户
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -rM mysql -g mysql
[root@localhost local]# cd mysql
[root@localhost mysql]# pwd
/usr/local/mysql
[root@localhost mysql]# chown -R mysql .
[root@localhost mysql]# chgrp -R mysql .
5、初始化mysql并启动mysql服务
[root@localhost mysql]# cd /usr/local/mysql/bin
[root@localhost bin]# yum install libaio
Loading mirror speeds from cached hostfile
* base: mirrors.opencas.cn
* extras: mirrors.btte.net
* updates: mirrors.btte.net
包 libaio-0.3.107-10.el6.i686 已安装并且是最新版本
无须任何处理
[root@localhost bin]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
2016-01-09 12:00:28 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-01-09 12:00:33 [WARNING] The bootstrap log isn't empty:
2016-01-09 12:00:33 [WARNING] 2016-01-09T04:00:29.262989Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2016-01-09T04:00:29.264643Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2016-01-09T04:00:29.264653Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
[root@localhost bin]# cd /usr/local/mysql/support-files
[root@localhost support-files]# mv my-default.cnf /etc/my.cnf
[root@localhost support-files]# ./mysql.server start
Starting MySQL. SUCCESS!
6、登录mysql,此版本最新版不许空密码登录,实际上有个初始化密码保存在/root/.mysql_secret这个文件里面,用这个密码第一次登录后,再修改密码。因此先cat查看下初始化密码(随机的,每次安装看到的密码都不一样):
[root@localhost ~]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2016-02-17 23:46:09
yp?was3j4R!p
利用初始化密码:yp?was3j4R!p开始登录mysql:
[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysql -uroot -p:yp?was3j4R!p
7、改mysql的root密码,新密码在此为'123456'
mysql> set password=password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
8.把mysql加服务,设置开机自动启动
[root@localhost mysql]# cp /usr/local/mysql/bin/mysql /usr/bin/
[root@localhost mysql]# mysql -uroot -p
Enter password:
[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@localhost mysql]# chkconfig --add mysql
[root@localhost mysql]# chkconfig --level 2345 mysql on
9.设置字符集为utf8
[root@localhost html]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
- 前言
- mysql8配置文件
- html
- css
- stylus安装与自动编译(转)
- javascript
- 正则文件后缀名
- promise
- git
- 常用命令
- CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis
- linux
- 常用命令
- 配置环境变量
- 压缩解压
- 开机启动程序
- ssh使用帮助
- ssh安装
- FTP安装
- SCP传输文件
- java环境安装(jdk)
- 第12讲 FTP服务器配置
- composer安装
- centos7,php7安装redis
- 定时任务crontab
- mount /project: wrong fs type, bad option, bad superblock on project, missing codepage or helper program, or other error.
- mysql
- 第七十四课:设计SQL语句时常用的MySQL内置函数
- 第十一集 MySQL grant用户授权
- 设置默认字符集为utf8
- mysql插入前判断数据是否存在
- mysqldump导出数据
- 数据库优化--mysql
- 插件
- 框架
- 前端框架
- 后端框架
- Laravel
- 安装composer
- 安装laravel
- artisan命令行工具
- 备注
- DB facade操作数据库
- PhpStorm下Laravel代码智能提示
- 使用查询构造器操作数据库
- 使用Eloquent ORM操作数据库
- laravel时间转时间戳
- laravel中的blade模板引擎之流程控制
- laravel中的blade模板引擎之基础语法
- 模板中的ulr
- laravel之request请求
- laravel之response响应
- laravel之session操作
- laravel之middleware操作
- 表单操作
- 表单验证
- model中一些注意事项
- 文件上传及配置
- 发送邮件
- laravel缓存
- Laravel中的错误与日志
- Laravel中的队列应用
- 关于laravel中表关系的一对一、一对多、多对一、多对多实践(转)
- 密码生成及验证
- laravel 使用验证码
- laravel中的用户认证(Auth)
- laravel解决跨域及使用 Passport 服务做 API 认证
- Laravel 项目部署到云服务器(CentOS 7 系统)
- YII
- YII框架控制器之请求(request)处理
- YII框架控制器之响应(response)处理
- YII框架控制器之session处理
- YII框架控制器之cookie处理
- 视图的创建及数据传送
- 视图的数据安全
- 视图的布局
- 在视图中显示另我一个视图
- 视图的数据块
- 数据模型--单表查询
- 数据模型--单表删除
- 数据模型--单表添加数据
- 数据模型--单表数据修改
- 数据模型--关联查询
- 类的延迟加载
- 类的映射机制
- 组件的延迟加载
- 数据缓存(增删改查)
- 缓存数据的有效期设置
- 数据缓存中的依赖关系
- 片段缓存介绍
- 片段缓存设置
- 片断缓存嵌套
- 页面缓存
- http缓存
- yii2获取字段及字段注释
- yii2 修改默认的控制品和方法
- yii2 AccessControll配置解释
- validate
- 什么是validate
- 入门
- 方法
- 属性
- 高级
- 案例
- 规则
- phpexcel导出表格打开后发现不可取内容
- svn
- linux下搭建svn服务器
- MAC下SVN的常用命令
- nginx
- CentOS6.5下Nginx1.7.4安装记录(转载)
- centos7.3下安装lnmp
- CentOS 7.2 php7 编译安装 posix扩展
- 前后端分离nginx配置文件
- 综合
- lnmp环境安装(nginx1.9.11 php7.0.3 mysql5.7.11)
- grunt&seajs
- grunt安装使用
- tp+layui使用
- 初始化配置
- IconFont 图标
- php
- 时间比较
- 计算两个日期相差天数
- php7新特性
- 非对称加密解密
- php中对象数组互转
- tp5
- 模型操作
- 验证码
- 环境变量ENV
- 软删除
- phpstudy中隐藏入口文件
- tp5.1
- facade
- 中间件
- python
- scrapy
- 常用命令
- centos7.3下安装python3.7+scrapy
- pyinstaller打包遇到的问题
- python导出excel(含插入图片,超链接)
- Centos7安装python3+Selenium+chrome+chromedriver详细
- selenium无界面chromedriver
- pandas数据分析库
- pandas基础Series,DataFrame
- pandas选择数据
- pandas读取及写入文件
- pandas赋值及操作
- pandas处理丢失数据
- django
- django orm模型常用字段及参数
- 爬取视频注意事项
- vue
- vue安装使用常用操作
- webpack简易使用教程及注意事项
- vue备忘录
- vue-resource请求数据
- axios请求数据
- 父子组件之间传值,获取数据方法属性
- 非父子组件传值
- 路由编程式导航
- 路由的嵌套(父子路由)
- 使用vuex
- 最简单的非模块化的vue笔记(转)
- vue中使用mock模拟api请求
- vue操作Vuex流程
- is和:is的区别
- vue2.6引入jquery和bootstrap
- nginx,vue部署前后端分离项目
- vue动态路由和get传值
- C++
- 初始string
- 类属性方法封装
- C++类外定义
- 类外定义代码演示
- 拷贝构造函数
- 构造函数
- 析构函数
- 构造函数初始化列表
- 析构函数代码演示
- swoole
- swoole安装
- centos7下安装jdk安装
- centos7 安装hadoop
- IntelliJ IDEA 常用快捷键
- 编辑器配置
- Ij idea
- phpstorm 格式化 数组换行显示
- phpstorm使用代码片段Live Templates
- PHPstorm中格式化让function的花括号跟在方法名后面,而不是另起一行
- JetBrains 各种IDE使用git技巧
- Java
- Map
- Student类
- MapTest
- ListTest
- springBoot处理http请求
- springboot热部署
- idea编辑器基本设置和使用技巧
- 模式
- 装饰者模式
- spring多个环境配置文件
- 读取配置文件的两种方式和引入configuration-processor
- SpringBoot整合Mybatis
- SpringBoot整合junit单元测试
- springboot整合springDataJPA
- SpringBoot整合Redis
- Spring-Data-JPA
- 主键生成策略
- 静态代码块的形式创建createEntityManagerFactory
- jpa模型或实体类
- jpa增删改查
- JPA的核心配置文件persistence.xml
- JPQL查询
- jpa 学习笔记
- springdatajpa的操作
- 1.pom.xml引入坐标(依赖)
- 2.springDataJpa配置文件
- 3.创建数据库表实体类并配置映射关系
- mybatis学习
- 0.创建maven工程,引入坐标
- 1.mybatis配置文件
- 2.创建实体类
- 3.创建dao(mapper)
- 4.创建mapper文件
- 5.测试
- OGNL表达式
- 局部变量和成员变量
- 面向对象三大特征
- 单元测试
- 注解
- 注解笔记
- TestCheck
- JDBC
- jdbc笔记
- jdbc示例
- JDBC添加记录
- JDBC更新记录
- JDBC删除记录
- JDBC执行DDL语句
- JDBC封装类练习
- JDBC工具类
- JDBC事务笔记
- JDBC事务示例
- JDBC数据库连接池
- JDBC数据库连接池c3p0配置文件
- JDBC数据库连接池c3p0示例代码
- JDBC数据库连接池druid配置文件
- JDBC数据库连接池druid工具类
- JDBC数据库连接池druid示例代码
- JDBCTemplate笔记
- JDBCTemplate示例代码
- JDBC封装类Emp
- spring
- 自定义bean工厂
- spring中的bean
- 创建bean的三种方式之一
- 创建bean的三种方式之二
- 创建bean的三种方式之三
- bean的作用域
- bean对象的生命周期
- 依赖注入之一 构造函数注入
- 依赖注入之二 set方法注入
- 依赖注入之二 set方法注入(复杂类型/集合类型注入)
- IoC注解笔记及示例
- springMVC
- 1.搭建开发环境并测试
- 2.通过配置过滤器解决中文乱码问题
- 3.参数绑定到实体类,集合类
- 4.自定义类型转换器
- 5.常用注解
- 6.SpringMVC返回值类型及响应数据类型
- 6.1设置过滤静态资源,防止被拦截
- 6.2引入json处理包jackson
- 7.文件上传及解决跨域问题
- 8.自定义异常处理和自定义拦截器
- 9.SSM整合
- maven
- 解决依赖冲突的问题
- maven常用操作命令
- 使用nexus搭建私有服务器
- maven生命周期
- springboot-多模块项目搭建
- springBoot+JPA结合操作案例
- 1.pom.xml
- 2.配置
- 3.实体类(domain)
- 4.repository(dao层)
- 5.测试1--简单curd
- 6.测试2---复杂操作
- 7.动态查询(排序分页)
- 8.多表操作: 一对多
- 1.实体类
- 2.repository(dao层)
- 3.测试
- 0.说明
- 9.多表操作:多对多
- 0.说明
- 1.实体类
- 2.repository(dao层)
- 3.测试
- 10.对象导航查询
- android安卓
- adb工具常用命令
- uiautomatorviewer工具使用
- aapt工具
- docker
- docker基础命令
- 创建appium容器以及设置appium容器连接安卓模拟器
- docker commit创造镜像
- 使用dockerfile创建docker镜像
- 共享文件挂载
- windows7下利用docekr搭建nmp环境
- 解决dockerwindows下mysql挂载问题
- docker下配置laravel项目
- Vue2.5开发去哪儿网App 从零基础入门到实战项目
- 3-4计算属性,方法,侦听器
- 4-1组个使用中的细节点 is ref
- 3-1Vue实例
- 3-2Vue实例生命周期函数
- 3-3模板语法
- 3-5计算属性的setter和getter
- 3-6Vue中的样式绑定
- 3-7Vue中的条件渲染
- 3-8Vue中的列表渲染
- 4-2父子组件传值
- 4-3组件参数校验与非Props特性
- 4-4给组件绑定原生事件 native
- 4-5非父子组件间的传值(Bus,总线,或称为发布订阅模式,或称观察者模式)
- 4-6Vue插槽(slot)
- 4-7作用域插槽
- 4-8动态组件与v-once指令 :is
- 5-1Vue中的CSS动画原理
- 5-2在Vue中使用 animate.css 库
- 5-3Vue中同时使用过渡和动画
- 5-4Vue中的 Js 动画与 Velocity.js 的结合
- 5-5Vue中多个元素或组件的过渡
- 5-6Vue中的列表过渡
- 5-7Vue中的动画封装
- 5-8本章小节
- 微信小程序
- 微信小程序引用第三方组件(以安装vant为例)
- 微信小程序云开发--云存储
- 微信公众号
- 微信公众号服务器配置
- workerman GatewayWorker
- gateway worker工作原理
- Ubuntu18.04 开机自动运行某个程序/命令等
- 极客专属的接口协作管理工具api
- vue开发环境配置跨域,一步到位
- nginx配置跨域请求
- h5开发
- swipper
- vue样式穿透
- vue2.6+配置文件vue.config.js
- css伪类/伪元素一览表
- 穿梭框单选demo
- vue中keep-alive与activated
- vue2.6配置跨域,代理转发
- vue中的keep-alive
- 前端兼容
- 富文本
- axios封装
- egg.js接收请求的方式
- eggjs扩展helper
- eggjs中间件使用
- 验证或校验正则大全
- eggjs中cookie
- eggjs路由跳转
- eggjs中session
- 页面元素拖拽效果
- webstorm配置typescript
- node中对mysql封装成同步操作
- node对mssql封装成同步操作
- php获取无限分级最末级的id
- egg
- egg配置第三方中间件
- 开启服务器压缩功能
- egg-view-nunjucks模板原样输出html
- cheerio模块的安装使用方法
- mongoos增,删,改,查
- js--中文转拼音
- 选项功能组合操作
- entity
- dubbo
- 1.centos下快速安装单机Zookeeper
- 2.安装最新版的dubbo管控台
- dubbo笔记
- 3.dubbo与springboot整合
- rabbitmq
- MQ的优势和劣势及应用条件
- 配置文件
- rabbitmq消息可靠性
- 消费端限流
- TTL
- 死信队列
- 延迟队列
- 应用问题:消息可靠性保障
- 应用问题:消息幂等性保障
- xmlns
- docker安装elasticsearch
- springboot整合elasticsearch
- Ribbon负载均衡策略
- 在非空目录下创建git仓库并把目录下文件推送到远端
- 4种常用的rest方式
- springcloud服务熔断
- springcloud服务降级
- linux下自动备份mysql(适用版本5.7.28)
- netty
- ServerBootstrap
- option与childOption
- channelOption常量
- handler()和childHandler()
- localAddress()和remoteAddress()
- 将byteBuffer转为string
- Netty在线学习手册
- protobuf
- mac下安装protobuf
- protobuf3语法
- netty+protobuf结合使用案例1
- 原型设计流程图思维导图工具
- NIO
- NIO快速入门server端
- NIO快速入门client端
- NIO群聊系统Server端
- NIO群聊系统Client端
- 传统方式文件传输-server端
- 传统方式文件传输-client端
- NIO方式传输文件-server
- NIO方式传输文件-client
- 线程
- 线程池
- thymeleaf来构建邮件模板
- 人人开源 renren-fast-vue 安装出错解决办法
- log4j.properties
- logging.properties
- stream().map().sorted().collect(Collectors.toList())
- 基于java的BCC(异或校验)
- 若依(ruoyi-cloud)新建子模块
- jenkins自动部署
- yii自动加载自定义文件
- yii2 response响应配置
- vue项目打包成docker镜像
- docker运行mysql
- 免费的docker镜像服务器
- docker打包springboot项目为镜像
- docker运行redis
- ruoyi-vue 头像
- docker安装portainer
- docker部署mysql8(完善版)