重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
跟你在本地开发是相同的。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了阜阳免费建站欢迎大家使用!
1、安装指定版悔蠢本的node.js(服务器基本软件的安装)
2、上传代码到服迟前兆务器(可以通过ftp、ssh、git等方式)
3、安装项目依赖的模块
npm install
4、启动应用(也可以通过forever、pm2等工具进行管理)
node ./www/bin
当然,如果你深谙运维之道,可以直接通过docker等方案将运行环境容容器化。
基本的Linux运维知识的话可以参考linuxprobe点抗 。
还有几个需要注意的点:
1、运行权限:注意做好应用之间的隔离(使用低权限用户、文件系统隔离等),避免应用崩溃导致系统宕机等风码租险
2、80端口:通过nginx等进行反向代理,应用本身占用1024后的端口(无需root权限)
先搞明白Hexo博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。
不然只跟着步骤过了一遍,却不知道为什么这么做。
首先看这张架构图:
腊茄
整个流程就是本地将 *.md 渲染成静态文件,然后Git推送到服务器的 repository ,服务器再通过 git-hooks 同步网站根目录。
前提条件: 腾讯云服务器
第一部分 : 服务器环境搭建,包括安装 Git 、 Nginx 配置 、创建 git 用户 。
第二部分 : 本地 Hexo 初始化, 包括安装 NodeJS 、 hexo-cli , 生成本地静态网站
第三部分 : 使用Git自动化部署发布博客
NodeJS 安装可以参考: Linux安装NodeJS
找到以下内容
在下面添加一行
保存退出后改回权限
随后设置Git用户的密码,
切换至git用户腔局野,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
然后就可以执行ssh 命令测试是否可以免密登录
至此,Git用户添加完成
我是用的是lnmp 一键安装包,nginx安装教程一大堆,就不再叙述。主要看nginx配置。
找到nginx的配伍喊置文件,修改配置如下:
首先要安装 hexo-cli ,安装 hexo-cli 需要 root 权限,使用 sudo 运行
然后初始化Hexo程序
等执行成功以后安装两个插件, hexo-deployer-git 和 hexo-server ,这俩插件的作用分别是使用Git自动部署,和本地简单的服务器。
hexo-deployer-git帮助文档
hexo-server帮助文档
使用 hexo new 文章名称 来新建文章,该命令会成成一个 .md 文件放置在 sources/_posts 文件夹。
编辑完毕以后, 使用 hexo g 将 .md 文件渲染成静态文件,然后启动 hexo-server :
现在便可以打开浏览器访问 来查看我们的博客了!
创建一个裸仓库,裸仓库就是只保存 git 信息的 Repository , 首先切换到 git 用户确保 git 用户拥有仓库所有权
一定要加 --bare ,这样才是一个裸库。
在这里我们使用的是 post-receive 这个钩子,当git有收发的时候就会调用这个钩子。 在 ~/blog.git 裸库的 hooks 文件夹中,
新建 post-receive 文件。
保存后,要赋予这个文件可执行权限
然后打开 _config.yml , 找到 deploy
保存后,尝试将我们刚才写的"hello hexo"部署到服务器
访问服务器地址,就可以看到我们写的文章"Hello hexo",以后写文章只需要:
博客就更新咯!~
使用 Git Hook 自动部署 Hexo 到个人 VPS
Hexo 文档
腾讯云linux伺服器安装什么面板 看使用的centos版本
国内比较简单wdcp
网路上还有很多一件安装包比如:lamp ltmp
如何腾讯云linux伺服器安装wdcp面板教程
wget :dl.wdlinux.:5180/lanmp_laster.tar.gztar zxvf lanmp_laster.tar.gzsh install.sh ssh登入后直接使用上述程式码安装
怎么安装腾讯云linux伺服器
为确保安全防护服务正常运转,安全加固元件的安装在购买服务预设为选择状态,通过母盘映象直接安装,无需使用者操作。若使用者在购买云伺服器时未选择安装安全加固元件,请先下载元件,然后进行安装,步骤如下:
Linux系统
第一步:登入云主机,下载安装包到云主机伺服器。
如果您是Linux 64位映象的使用者,请使用如下命令下载哗氏安装包。
wget mirrors.tencentyun./install/sec/agent-X64.zip
第二步:解压安装包
第三步:执行安装指令码:install.sh
返回如下结果则说明安全元件安装成功
[RESULT] sec-agent installed OK.
sec-agent-1.png
返回如下结果则说明安全元件安装失败,请联络客服进行技术支援。
[RESULT] sec-agent install NOT OK.
腾讯云linux伺服器怎么登陆
在本地电脑上面安装xshell或者putty,用这个软体远端连线linux伺服器。想要了解更多关于Linux的资讯和文章请关注《linux就该这么培旁学》。
腾讯云 linux伺服器 怎样登入
我就用的腾讯云伺服器,购买以后,登陆腾讯云,在控制台里面,点开机,等开机后,就可以远端管理了,还可以重置密码等操作,有其他问题可以发私信给我哦~~~
腾讯云linux伺服器能搭nodejs应用吗
由于不做php相关的东西,懒得装apache,干脆利用nodejs搭建一个本地的伺服器用于测试。
nodejs这玩意儿吧,对做前端的介入后端简直就是一把利器。而且目前,nodejs也越来越有商用价值。
nodejs其实是非常底层的,从功能上说,它既是apache也是php。像搭建伺服器这种功能,本来是apache已经封装好的,但nodejs需要我们手动来搭建。其实在实际应用中,我们可以使用现成的框架。但这里,我想手动搭建,也加深一下对伺服器的理解。
Node.Js入门[PDF+相关程式码] :linuxidc./Linux/2013-06/85462.htm
Node.js入门开发指南中文版 :linuxidc./Linux/2012-11/73363.htm
Node.js安装与配置 :linuxidc./Linux/2013-05/配芦橡84836.htm
Ubuntu 编译安装Node.js :linuxidc./Linux/2013-10/91321.htm
我们node执行下面这个档案,我命名为.js,它将建立一个Server并监听3000埠。
var PORT = 3000;
var = require('');
var url=require('url');
var fs=require('fs');
var mine=require('./mine').types;
var path=require('path');
var server = .createServer(function (request, response) {
var pathname = url.parse(request.url).pathname;
var realPath = path.join("assets", pathname);
console.log(realPath);
var ext = path.extname(realPath);
ext = ext ? ext.slice(1) : 'unknown';
fs.exists(realPath, function (exists) {
if (!exists) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.write("This request URL " + pathname + " was not found on this server.");
response.end();
} else {
fs.readFile(realPath, "binary", function (err, file) {
if (err) {
response.writeHead(500, {
'Content-Type': 'text/plain'
});
response.end(err);
} else {
var contentType = mine[ext] || "text/plain";
response.writeHead(200, {
'Content-Type': contentType
});
response.write(file, "binary");
response.end();
}
});
}
});
});
server.listen(PORT);
console.log("Server runing at port: " + PORT + ".");
上面我们还引入了一个mine.js,这是我自己写的,里面储存的是名值对,用于定义不同字尾的档案所对应的返回方式:
exports.types = {
"css": "text/css",
"gif": "image/gif",
"": "text/",
"ico": "image/x-icon",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"js": "text/javascript",
"json": "application/json",
"pdf": "application/pdf",
"png": "image/png",
"svg": "image/svg+xml",
"swf": "application/x-shockwave-flash",
"tiff": "image/tiff",
"txt": "text/plain",
"wav": "audio/x-wav",
"wma": "audio/x-ms-wma",
"wmv": "video/x-ms-wmv",
"xml": "text/xml"
};
fs模组是用于读取档案的,提供读取档案的方法,其实仔细研究文件会发现,它有同步和非同步两种读取方式。fs.exists这个方法网上很多文章写作path.exists,,现在推荐写作fs.exists这个方法。否则会报警:
需要注意的是,不仅浏览器访问档案会形成一次访问,里面连结的js,css等外部档案也会分别形成一次访问。所以,.createServer的回拨其实是在一次页面访问中执行了多次的。我们console.log(realPath)一下就可以看到:
这里并没有加入预设访问index.的功能,所以访问地址要写全:127.0.0.1:3000/index.
如何从Linux环境远端登入腾讯云linux伺服器
在window上面下载putty、securecrt、xshell等客户等应用程式,来连线linx伺服器。
t腾讯云主机的Linux伺服器怎么进入图形介面,好像要安装什么~~
看装的是什么,如果是redhat或者centos,安装的初始没有安装桌面,那你需要用yum源安装“X WINDOWS”,成功后执行init 5,其他linux的发行版我不熟悉。
如何从Windows环境远端登入腾讯云linux伺服器
在window上面下载putty、securecrt、xshell等客户等应用程式,来连线linx伺服器。
想要了解更多关于Linux的资讯和文章请关注《linux就该这么学》。
由于不做php相关的东西,懒得装apache,干脆利用nodejs搭建一个本地的服务器用于测试。枯乱
nodejs这玩意儿吧,对做前端的介入掘败帆后端简直就是一把利器。而且目前,nodejs也越来越有商用价值。
nodejs其实是非常底层的,从功能上说,它既是apache也是php。像搭建http服务器这种功能,本来是apache已经封装好的,但nodejs需判雹要我们手动来搭建。其实在实际应用中,我们可以使用现成的框架。但这里,我想手动搭建,也加深一下对http服务器的理解。
Node.Js入门[PDF+相关代码]
Node.js入门开发指南中文版
Node.js安装与配置
Ubuntu 编译安装Node.js
我们node执行下面这个文件,我命名为http.js,它将创建一个httpServer并监听3000端口。
var PORT = 3000;
var http = require('http');
var url=require('url');
var fs=require('fs');
var mine=require('./mine').types;
var path=require('path');
var server = http.createServer(function (request, response) {
var pathname = url.parse(request.url).pathname;
var realPath = path.join("assets", pathname);
//console.log(realPath);
var ext = path.extname(realPath);
ext = ext ? ext.slice(1) : 'unknown';
fs.exists(realPath, function (exists) {
if (!exists) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.write("This request URL " + pathname + " was not found on this server.");
response.end();
} else {
fs.readFile(realPath, "binary", function (err, file) {
if (err) {
response.writeHead(500, {
'Content-Type': 'text/plain'
});
response.end(err);
} else {
var contentType = mine[ext] || "text/plain";
response.writeHead(200, {
'Content-Type': contentType
});
response.write(file, "binary");
response.end();
}
});
}
});
});
server.listen(PORT);
console.log("Server runing at port: " + PORT + ".");
上面我们还引入了一个mine.js,这是我自己写的,里面存储的是名值对,用于定义不同后缀的文件所对应的返回方式:
exports.types = {
"css": "text/css",
"gif": "image/gif",
"html": "text/html",
"ico": "image/x-icon",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"js": "text/javascript",
"json": "application/json",
"pdf": "application/pdf",
"png": "image/png",
"svg": "image/svg+xml",
"swf": "application/x-shockwave-flash",
"tiff": "image/tiff",
"txt": "text/plain",
"wav": "audio/x-wav",
"wma": "audio/x-ms-wma",
"wmv": "video/x-ms-wmv",
"xml": "text/xml"
};
fs模块是用于读取文件的,提供读取文件的方法,其实仔细研究文档会发现,它有同步和异步两种读取方式。fs.exists这个方法网上很多文章写作path.exists,,现在推荐写作fs.exists这个方法。否则会报警:
需要注意的是,不仅浏览器访问html文件会形成一次访问,里面链接的js,css等外部文件也会分别形成一次http访问。所以,http.createServer的回调其实是在一次页面访问中执行了多次的。我们console.log(realPath)一下就可以看到:
这里并没有加入默认访问index.html的功能,所以访问地址要写全