CentOS7快速配置nginx node mysql8.0
目录:
(一)基础准备
(二)安装node
(三)安装nginx
(四)安装mySql8.0
(五)整体配置
(六)安装PM2守护进程
(一)基础准备
1.1 概述
服务器操作系统为 centos7.4,目的是配置nodejs服务器,用于微信小程序的服务端。
1.2 名词
1. putty : 远程连接linux服务器命令行的工具,如果你在服务器旁边就无需使用了。
本文用于登陆到服务器执行配置命令。
2. FileZilla : 远程连接linux服务器可视化上传文件的工具。
本文用于上传网站文件,及修改配置文件。
3. Nginx : 是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器。
本文中用于单IP配置多个网站。
4. Node.js : 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
后期的开发软件就基于node
5. MySQL : Mysql是流行的关系型数据库管理系统
6. https: 是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
https的默认端口是443, 就像http默认端口80一样,使用的时候不用加端口号。
7. websocket : 约定了一个通信的规范,通过一个握手的机制,客户端(浏览器)和服务器(webserver)之间能建立一个类似tcp的连接,从而方便c-s之间的通信。
使用类似 ws://127.0.0.1 连接
8. PM2 node.js的守护进程
(二)安装node
首先连上centos服务器,使用putty或其他的方式。
node安装基本方法就是下载最新版的node压缩包,解压到服务器,建立全局映射软连接。比如可以下载到本地解压后用FileZilla上传到服务器。
以下通过命令行进行安装。
1、wget下载node.js安装包。
wget https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.xz
// 本文安装node9.11.1版本,如果其他版本可以自己换
2、 解压文件。
tar xvf node-v9.11.1-linux-x64.tar.xz
3、移动文件到 /usr/local/node文件里
mkdir -p /usr/local/node // 新建文件夹
mv /root/node-v9.11.1-linux-x64/* /usr/local/node/ // 将文件移动到/usr/local/node下。
4、到此node和npm只能在 /usr/local/node/bin文件下使用,要想node和npm全局有效,可以通过创建软连接。
ln -s /usr/local/node/bin/node /usr/local/bin/node // 创建node软连接
ln -s /usr/local/node/bin/npm /usr/local/bin/npm // 创建npm软连接
如果文件想换个目录,可以先删除软连接,在创建软连接:
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
5、查看node和npm版本
node -v
npm -v
如果返回版本号,就可以确定是安装成功了。node的安装方法有很多,另一种常见的是编译安装,编译安装相对较复杂些,
(三)安装nginx
安装方法有很多,这里是用的yum安装的
// 添加CentOS 7 Nginx yum资源库
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
// 安装最新版
yum install -y nginx
检查nginx是否安装成功
nginx -t // 有下面提示代表安装成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
启动nginx
systemctl start nginx.service // 启动nginx
systemctl stop nginx.service // 停止nginx
systemctl restart nginx.service // 重启nginx
systemctl enable nginx.service // 设置开机启动
nginx启动后在浏览器中输入http://外网IP地址,你就可以看到一个nginx页面
(四)安装mySql8.0
MySQL 8.0是自5.7之后的新版本.本文的安装采用yum在线安装的方式,也可以使用编译安装
a)配置MySQL8.0的安装源.
在mysql官网上找到源,打开网址: https://dev.mysql.com/downloads/repo/yum/
进入下一个页面,鼠标指向红色圈住的链接,可以找到对应的地址
搞到源了,就可以执行安装了
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
//可以跳过wget,yum安装时候会自动下载,如果比较慢,还是先wget吧。
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-server-8.0.11-1.el7.x86_64.rpm
b)安装MySQL 8.0
yum install mysql-server
c)启动Mysql服务.
service mysqld start
d)查看MySQL的状态.
service mysqld status
e)查看mysql为root用户生成的临时密码
grep "A temporary password" /var/log/mysqld.log
使用mysql生成的'root'@'localhost'用户和密码登录数据库,并修改 其密码,具体命令
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
修改密码策略:(先要修改临时密码,才能查看密码策略,才能修改为简单密码!!!)
1、查看当前密码策略
show variables like '%password%';
2. 修改密码策略,也可以在/etc/my.cnf文件添加validate_password_policy配置
set global validate_password.length=1; //虽然设置=1,结果也是最小4位,mysql的限制
set global validate_password.policy=0;
3. 修改为简单的的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
4.刷新权限;
flush privileges;
5. 查看认证方式
SELECT host,user,plugin,authentication_string FROM mysql.user;
最主要的是mysql8登录的密码协议发生了变更,使用mysql命令行客户端完全可以登录,之前编写的程序不能登陆,提示错误。显示的意思为“认证协议“错误。
修改认证方式,使用传统的认证
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypass';
// update mysql.user set authentication_string = password(‘你准备设置的密码’) where user = ‘用户名’;
常用指令:
create database 数据库名;
导入:source /root/wwwroot/Dump20180420.sql; (假设我这里文件在/root/wwwroot/Dump20180420.sql)
注意mysql导出sql文件的时候,将所有表名变成了小写。导入之后可能已有的程序找不到表。
需要 在/etc/my.cnf 文件添加大小写敏感配置
mysql 区分大小写
lower_case_table_names=1 大小写不敏感,表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
最后重启一下MySql服务即可
service mysqld restart
导入数据的时候注意大小写问题 linux将sql中表名变成了小写
而原先设计的mysql数据库中,表名是用大小写来间隔单词的,是大小写敏感(mysql部署在linux上)
(五)整体配置
5.1 配置网站目录
我这里将网站放在了root目录下面,注意修改root目前的权限为755。新建目录及修改权限的操作我是通过FileZilla连接建立的。
在root目录下面建立wwwroot文件夹用于存放网站文件。
在wwwroot目录下面建立www.acctc.com文件夹,
在wwwroot目录下面建立www.open3rd.com文件夹,
这两个文件夹用于放置不同域名的网站内容,后面要配置到nginx里面。
5.2 配置nginx
nginx配置:
nginx配置文件为 /etc/nginx/nginx.conf
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:3000; # 本地node启动的端口为3000
}
}
将proxy_pass 的值改为 http://127.0.0.1:3000, 3000的端口号为本地node启动的端口号。
重启nginx
systemctl restart nginx.service
在浏览器中输入http://IP地址,进行测试
(六)安装PM2守护进程
npm install pm2 -g
建立软连接
sudo ln -s /usr/local/node/bin/pm2 /usr/bin/pm2
开始运行
pm2 start /root/wwwroot/www.acctc.com/app.js
查看列表
pm2 list
将当前执行列表保存到开机运行
pm2 save
CentOS7快速配置nginx node mysql8.0的更多相关文章
- virtualBox安装centos7并配置nginx php mysql运行环境
virtualBox安装centos7并配置nginx php mysql运行环境 一:virtualBox安装centos7并进行基础设置 1.下载dvd.iso安装文件,下载地址:https:// ...
- CentOS7.4 源码安装MySQL8.0
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...
- Ubuntu 16.04 LTS 安装配置 Nginx 1.10.0 Php7.0-FPM
1. 安装Nginx,Php-7.0 ~$ sudo add-apt-repository ppa:nginx/stable ~$ sudo apt-get update ~$ sudo apt-ge ...
- macOS,安装+配置+激活:MySQL8.0 + Navicat Premium12
作者的电脑是10.13.3,些许配置偏差请自行略过 本文是学习探讨途径,请勿滥用,后果自负 MySQL8.0 篇章 官网http://www.mysql.com/downloads/ 下载即可,无需激 ...
- Centos7上配置nginx的负载均衡
前言 在配置nginx负载均衡前.我们需要明白几个名词的概念 注: 如果不小心忘了tomcat和nginx的启动,关闭命令,可参考写在文章最后的命令 一 重要的概念理解 1 什么是nginx呢? Ng ...
- 阿里云 CentOS7.2 配置FTP+Node.js环境
本人小白,写下这篇博客意在记录踩过的坑,大神请绕道~ 准备工作 安装自己喜欢的连接软件(一般是putty或者xshell),本人选择的是xshell,软件如图 : 通过软件中的ssh连接连接上已经购买 ...
- Centos7安装配置Nginx
Nginx 安装 系统平台:CentOS 7.4 64位. 一,安装编译工具及文件 yum -y install make zlib zlib-devel gcc-c++ libtool openss ...
- Centos7.4 配置之MySQL 8.0【转】
首先查看Mysql最新版本, 此时,目前最新版本为8.0. 开始安装前需要一些准备工作. 1,将本地的MariaDB或者已经安装的MySQL其他版本卸载. (一)卸载本地的本地的MariaDB: 由于 ...
- 在 CentOS7 上配置 nginx 虚拟主机
创建配置文件保存目录,其中 sites-available 用来实际保存配置文件,sites-enabled 用来保存符号链接 : mkdir /etc/nginx/sites-available m ...
随机推荐
- js实现短暂提示框
业务场景:当鼠标移入某元素时,显示提示框进行介绍.当鼠标移除时,会自动消失.引入ToolTip.js和ToolTip.css 主方法:ToolTip.show(需要提示的元素id, 随意不重复即可, ...
- New UWP Community Toolkit - ImageEx
概述 UWP Community Toolkit 中有一个图片的扩展控件 - ImageEx,本篇我们结合代码详细讲解 ImageEx 的实现. ImageEx 是一个图片的扩展控件,包括 Ima ...
- JAVA_SE基础——36.static的实际应用
什么时候定义静态函数 如果功能内部没有访问到非静态数据(对象的特有数据.那么该功能就可以定义为静态) P.S. 静态方法作为类和接口的重要组成部分,可以通过类名或接口直接访问,通常将那些使用频率较高的 ...
- django报错Manager isn't accessible via UserInfo instances
出现这种错误是因为调用模型对象时使用了变量名,而不是对象名(模型类),例如: user = UserInfo()user_li = user.objects.filter(uname=username ...
- thinkphp调试技巧
调试的经验:很多时候程序调试不出来,但是又找不出错误,往往是拼写错误可能是很小的拼写错误,很难看出,或者多了一个空格,比如在配置路由的时候'URL_ROUTER_ON '=true,这样设置就会错误, ...
- 使用pie.htc时Border-radius的兼容
如果一个图层中(navin)使用了pie.htc来对ie6,7,8进行兼容,如若上一层(navwrap)的样式中有背景的属性,则此层 (navin) 在ie6,7,8中背景颜色不显示.如下图:此部分的 ...
- Linux网络配置(setup)
新装的Linux系统,想要快捷的网络配置,首选setup命令. 1.设置setup为中文. echo LANG="zh_CN.UTF-8" > /etc/sysconfig/ ...
- python 进程 线程
进程 线程 操作系统 为什么要有操作系统? 操作系统:操作系统是一个用来协调,管理和控制计算机硬件和软件资源的系统程序.位于底层硬件与应用软件之间 工作方式:向下管理硬件 向上提供接口 切换 1.出现 ...
- 目标检测算法YOLO算法介绍
YOLO算法(You Only Look Once) 比如你输入图像是100x100,然后在图像上放一个网络,为了方便讲述,此处使用3x3网格,实际实现时会用更精细的网格(如19x19).基本思想是, ...
- 多线程编程、java图形用户界面编程、Java I / O系统
线程概述 进程:是一种 “自包容”的运行程序 线程是进程当中的一个概念,最小处理单位 THread类.Runnable接口.Object类 创建新执行线程有两种方法:1:一种方法是将类声明为Threa ...