su root
sudo yum install -y vsftpd
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
sudo netstat -antup | grep ftp
你的公网ip:21
这个URI,这个后边配置得用sudo useradd 你的用户名
这里再放个我自己设的例子: sudo useradd cxj
sudo passwd 你的密码
输入密码后请按 Enter 确认设置,密码默认不显示。这里的作用很明显了,就是用来个外部访问的,例如在FileZilla中进行访问
/var/ftp/root
为例,这里你随意,但是注意的是必须得有权限才能创建,了解过Linux都是知道的,如果上述按我的省事的来就可以直接创建sudo mkdir /var/ftp/root
这里创建的目录的作用就是你通过FTP工具到服务器的根目录。这里提前看下:
可以看到,左边有个远程站点是/
。这个/
。就是刚才设置的/var/ftp/root
。例如我上传了个myblog
目录,他的实际路径就是/var/ftp/root/myblog
。通过cd
命令就可以进入该目录了:
cd /var/ftp/root
切换目录
ls
列出他下边的目录,也就是list
单词的缩写
sudo chown -R 你的用户名:你的用户名 /var/ftp/root
给个例子:sudo chown -R cxj:cxj /var/ftp/root 注意空格,直接复制下去改就好了
sudo vim /etc/vsftpd/vsftpd.conf
按 i 切换至编辑模式,根据实际需求选择
FTP
模式,修改配置文件vsftpd.conf
:
FTP
可通过主动模式和被动模式与客户端机器进行连接并传输数据。由于大多数客户端机器的防火墙设置及无法获取真实 IP 等原因,建议选择被动模式搭建 FTP 服务
IPv4 sockets
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=YES
配置参数,关闭监听 IPv6 sockets
#listen_ipv6=YES
local_root=/var/ftp/root
allow_writeable_chroot=YES
pasv_enable=YES
pasv_address=xxx.xx.xxx.xx #请修改为您的轻量应用服务器公网 IP
pasv_min_port=8000
pasv_max_port=9000
图省事直接按上述复制即可,然后把
pasv_address
后边改一下即可
这里补充一下这个
pasv_min_port
以及pasv_max_port
。因为FTP服务
他是一个控制端口,也就是21
端口,其他的是数据传输,这设置的是一个范围,这端口的范围都是用来进行数据传输的。我设置8000
-9000
是因为我的项目一般都是需要8000
-9000
,顺便给设置,所以你也可以按需求进行设置
Esc
后输入 :wq
保存后退出。sudo systemctl restart vsftpd
这里可能有个疑问是这个明文的,这里因为我是一直报错是:
FileZilla 登录 ftp 发现一直报错220 (vsFTPd 3.0.2)-AUTH TLS
。改成明文就好了,这个应该是可以整成加密的,有心人可以了解下
Linux
服务器,就稍微介绍下命令epel
的方法来进行安装node进行安装,快捷省事epel
sudo yum install epel-release
node
,所以这里配置一下,你也可以按需求配置curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash
这个完整连接是这样的,12.x表示12版本的,后边的x不是让你自己填的,而真的就是个x,如果你用10版本的,你就改成10.x吧,不够还是自查一下还好,看这里
sudo yum -y install nodejs
node --version
sudo yum install npm --enablerepo=epel
npm --version
sudo yum install git --enablerepo=epel
git --version
git
,到这里应该是知道怎么怎么做了,随便在你喜欢的目录拉取你的项目下来的就行了,这个不赘述。所以这里我使用的通过FileZilla
进行上传,上传方式就是上边的npm install
…vim index.js
index.js
是文件名,随你起什么,想偷懒直接复制8888
是相对我上述设置的8000
-9000
的,你可以改成你自己的就可以了const http = require('http');
const hostname = '0.0.0.0';
const port = 8888;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Esc
,输入:wq
,保存文件并返回node index.js
http://云服务器实例的公网 IP:文件配置的端口号
node
命令启动后,你发现挂着后台,就是那个黑乎乎的窗口,的时候,才可以进行访问你写的东西,而关掉了就不行了,而正常而言应该是一直运行的,即使你关掉,这里就要使用到pm2
了,简而言之,这玩意是让你的程序一直在云端运行npm i pm2 -g
pm2 --version
pm2 start index.js
pm2 start npm --watch --name h5toolsit -- run dev
其中 --watch监听代码变化,--name 重命令任务名称,-- run后面跟脚本名字
bin
目录下会有个www
文件,这玩意通常就是配置启动服务的,例如通过本地的配置文件具体判断开启http
还是https
服务require('babel-polyfill'); // es6语法转换
require('babel-register');// es6语法转换
const app = require('../app');
const ssl = require('../config.json').ssl; // 本地配置文件判断是否开启https
const serverlog = require('serverlog-node');
const logger = serverlog.getLogger('www');
const defaultPort = require('../config.json').index.defaultPort;
var port = normalizePort(process.env.PORT || defaultPort); //本地配置文件端口
app.set('port', port);
let server;
if (ssl.enable) {
// 创建 HTTPS
const https = require('https');
const fs = require('fs');
try {
const privateKey = fs.readFileSync(ssl.key, 'utf8');
const certificate = fs.readFileSync(ssl.cert, 'utf8');
server = https.createServer({
key: privateKey,
cert: certificate
}, app);
} catch (err) {
logger.error('未能成功读取SSL私钥或证书文件!Error:', err); // 日志输出
process.exit(1);
}
} else {
// 创建 HTTP
const http = require('http');
server = http.createServer(app);
}
server.listen(port, () => {
logger.info('the database practice project is listening on port', port, 'with pid', process.pid);
});
server.on('error', onError);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
pm2 start ./bin/www
yum install wget
rpm
后缀的文件即可。明显57
就是版本号了wget http://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-community-server.x86_64
systemctl start mysqld.service
注意
CentOS7 的启动方式和以前不一样,CentOS7 使用了 systemctl
cat /var/log/mysqld.log | grep 'password'
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
这里给个例子
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234567890';
密码你设置太简单的话,会报错的:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这是因为MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格,这里我们注意设置密码 长度要大于8,同时要有数字,大小写,特殊字符
但是因为是自己用,想把密码设置的简单点,例如"12345678"(此处密码长度最少为8位),所以可以将验证级别降低
set global validate_password_policy=0;
Navicat
,资源方面百度一下你就知道,挺好用 use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能在任何host访问
FLUSH PRIVILEGES;
Spring boot
所以需要使用Java
,那就得配置一下,我这里要的是Java1.8
版本的yum -y list java*
java1.8
,直接复制命令就好了。这里再补两个命令yum list installed | grep java 查看系统是否安装过java
yum -y remove java-1.8.0-openjdk* 卸载java
yum install java-1.8.0-openjdk*
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
:PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
java-1.8.0...
那的东西就行了。不过稳妥起见,建议去/usr/lib/jvm/
下看一下有没有这玩意,没有你就找找吧,然后改了,其他直接复制,默认安装到这个路径下的java --version
maven
打包就好了。网上一堆的都是idea配置的,我这里就用sts
吧,idea
配置随便百度一下就有了找不到pom.xml
的bugMaven clean
,然后再Maven install
target
目录下就有该jar
包了java -jar 包名.jar
pm2
了。首先你自行创建一个json
文件,名字随意。这里的name
是一个进程名,通过设置这个名字,可以让pm2
找到管理的目标。创建一个json
文件,这里是blog.json
,复制粘贴以下内容,并放到跟jar
包同一目录下,放同一目录为了省事,你可以随便来,只要改参数中的路径即可{
"name": "blog",
"script": "/usr/bin/java",
"args": [
"-jar",
"blog.jar"
],
"exec_interpreter": "",
"exec_mode": "fork"
}
scritpt
就是就是脚本命令了,就是用的java
命令,稳妥起见建议去/usr/bin
看下是否有该命令,也就是cd /usr/bin
然后ls
pm2 start blog.json
pm2 list
vue
项目,可以看到只有一个name
为npm
,所以启动其他vue项目的时候建议重命名或者用以下方法ps -ux | grep pm2
Daemon
的干掉,前边是进程号,这里是13396,这里看你自己了 kill -9 pid 13396
pm2 start npm – run dev