linux启动php服务_群晖docker 实现nodejs为后端的简单web服务器 并连接数据库

前情摘要:虽然群晖有web station 作为开发简单网页的服务器首选,但是web station 里面最好用的技术栈还是基于LNMP或者LAMP的php开发环境。对于学习nodejs的同学可能丈二和尚,摸不着头脑,到底如何在web station上运行nodejs?可能并不能快速找到相关文档以供解决问题。

而群晖的docker套件正如改革春风,它是各种应用甚至系统的容器,生产力强大,能够安装各种软件和环境,并且可视化界面让我们无需懂得多少代码就能快速构建开发和运行所需环境,本文介绍一种简单的nodejs 运行方法和用docker构建简单的web服务器。

php 的后端大概可以有 LNMP或者LAMP,实际上包括系统linux,Nginx或Apache,数据库mysql或者mariaDB,和PHP开发语言。

而本次采用技术栈为前端容易理解的基于JavaScript的Nodejs (which 替代了PHP),使用json格式的mongoDB which 替代mysql,简单网页暂不需要Nginx和Apache,开发系统选用centos 开发版。

运行容器添加独立的mongoDB和centos.

mongoDB开放映射端口,比如默认27017;centos 映射内部端口80(或者其他)为32770(或其他);

这样就可以通过ip地址:端口的方式访问mongoDB 和 centos的web服务器了。

08bd759e0d9a732c3f4750199d6e2316.png

centos容器详情:

包括

  1. 映射端口和装载路径文件夹到群晖,
  2. 安装部署nodejs
  3. 拷贝代码并最后node app 运行相关代码。

第一步:

baef9438099d1e80c247e07931803248.png
映射端口

0b6dcb668b0304bd13dbb8a3972bfa1f.png
设置服务器存放文件夹

第二步centos下终端安装部署nodejs

b862524d298f1a8ad30b042887c1a837.png

nodejs的直接部署(终端命令)

首先安装 wget:

yum install -y wget

下载 nodejs 最新的 bin 包:

wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz

解压包

xz -d node-v9.3.0-linux-x64.tar.xz
tar -xf node-v9.3.0-linux-x64.tar

部署 bin 文件(让node 全局可用)

因为在根目录安装,路径为~/node-v9.3.0-linux-x64/bin。

ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node
ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm

测试

node -v
npm

输出版本号,则部署 OK:

ac48fc8e9dc039f8d13a63b106587097.png

在www中npm安装所需模块:

包括

3ce558273ecdca629ca731d2fa49ba05.png

npm init安装dependencies或者手动安装四个包

art-template作为页面分离和拼接字符串等的模板引擎,

mongoose 连接mongoDB数据库

router作为路由

serve-static访问照片、css等静态资源。

文件列表(简单模式)

cdc3ffe8e83ee1e9b7431865a415a6c8.png

model 设置数据库连接

public 存放静态资源

route设置路由

views存放art文件,即页面模块

app.js 引入模块和启动服务器。

编写好路由后,cd 到 www文件夹,node app 启动即可运行编写好的网页了。


PS:mongoDB可视化软件:compass

编辑器:vs code

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G时代,工业互联网安全挑战远超消费互联网

来源:工业4俱乐部导读新兴技术带来的机遇同时也面临着挑战。国家互联网应急中心近日发布的《2019 年上半年我国互联网网络安全态势》显示,在工业互联网安全方面,累计监测发现我国境内暴露的联网工业设备数量共计6814个。在上海电气集团的风电…

Ubuntu16.04系统run方式安装nvidia显卡驱动

安装完Ubuntu后系统的字体很大,这是由于显卡驱动造成的 避免sudo apt-get install nvidia-*安装方式造成登录界面循环。 1. ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题…

买书问题

题目:在节假日的时候,书店一般都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。在销售《哈利波特》平装本系列中,一共有五卷,用编号0,1,2,3&#xf…

excel二极管伏安特性曲线_【刘敏蔷老师】半导体二极管的原理及应用

半导体二极管18101113 李莹半导体二极管是十分常见的一种电子器件。像手机屏幕、霓虹灯、收音机等生活常见的器件中都会用到半导体二极管。今天就给大家简单介绍一下半导体二极管的工作原理以及它的应用。No.1什么是二极管?二极管,简单明了的说就是一种只…

SPSS入门学习

文章目录一、初识——初步上手操作安装软件1、了解.sav——数据文件扩展名2、打开SPSS开始上手进行一些简单操作2.1 导入一个系统自带的数据(1.数据编辑窗口(SPSS Data Aditor)(2.结果输出窗口(SPSS Viewer)(3.程序语句窗口&#…

PPT讲解机器人产业发展现状与未来展望,重磅资料

来源:直观学机械法律顾问:赵建英律师前段时间咱们分享过王喜文博士做的关于《5G》的PPT,大家反映做的很棒,最近王喜文博士在机械工业出版社又出了一本新书:智能:《新一代人工智能发展规划》解读&#xff0c…

Ubuntu设置鼠标灵敏度

Ubuntu中鼠标的使用经常飘,可以设置鼠标的灵敏度 打开终端,输入以下代码,来查找自己鼠标的设备号。 xinput --list 我的鼠标的设备名是 "Logitech G300s Optical Gaming Mouse" 找到鼠标设备对应的ID号,比如我的是11…

全球工业互联网十大最具成长性技术

来源:经济参考报为准确把握全球工业互联网战略方向,及时跟踪工业互联网创新动态及特征态势,前瞻研判工业互联网产业化重大布局,中国工业互联网研究院任近来调研走访了一批在工业互联网相关技术及产业方面具备领先水平和特色的骨干…

python简单选择排序_python 选择排序

原博文 2018-09-21 23:46 − def select_sort(slist): for i in range(len(slist)): x i for j in range(i, len(slist)): if slist[j] < slist[x]: x j... 相关推荐 2019-12-06 14:02 − 学习提纲 生成指定范围的数值列表&#xff0c;语法格式如下&#xff1a; 生成一个包…

Matlab数据类型及预定义

Matlab数据类型 最新的版本会包括更多的类型。 因为Matlab是面向matrix的编程语言&#xff0c;所以&#xff0c;Matlab将任何一个变量都看作一个matrix。如果是一个数 就是1x1的矩阵。 matlab不需要预定义变量&#xff0c;但是 预定义变量可以使循环程序执行更快。 全局变量…

Nature解析中国AI现状,2030年能引领全球吗?

来源&#xff1a;机器之心《Nature》近日的一篇分析文章表示&#xff0c;中国的人工智能研究在质量上进步很快&#xff0c;但是在高影响的论文、人才和伦理上面还需要追赶美国。中国巨大的人口总量帮助人脸检测技术快速进步。中国不仅仅是世界上人口最多的国家&#xff0c;看起…

变量的存储类型(storage class)

变量的存储类型(storage class) 对于变量的存储类型&#xff0c;前面遇到过一些疑惑&#xff0c;再简单的在这里说一下。存储类型是指存储变量值的内存类型&#xff0c;它用来决定存储空间的大小。变量的存储类型决定着变量的存储器和作用域。有三个地方可以用于存储变量&#…

centos7调节虚拟机字体_初次安装虚拟机中Ubuntu16.04系统设置的一些小问题(小白教程)...

也不知道是哪里操作有误&#xff0c;最开始安装成功我的界面是这个样子&#xff0c;之前第一次安装的时候忘记改语言&#xff0c;这次注意到了&#xff0c;直接安装的中文。看着中文实在太舒服&#xff0c;好像设置都变得简单了&#xff1f;一、切换中文输入法&#xff1a;系统…

用半机械器官,打开发育生物学领域的黑匣子

来源&#xff1a;中国生物技术网 随着自然发育中的组织一起生长的微型传感器一小群细胞是如何组织成为心脏、大脑或者肾脏等器官的&#xff1f;这一发育的关键时期&#xff0c;长期以来一直是发育生物学领域的黑匣子。部分原因是因为没有足够小且足够灵活的传感器在不损伤细胞的…

matlab图像边缘检测分析

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 所谓边缘是指其周围像素灰度有变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。物体的边缘是由灰度不连续所反映的。基于边缘的…

python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍

本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 在本文中&#xff0c;我们将介绍从数据集中选择要素的不同方法; 并使用Scikit-learn&#xff08;skl…

Nature子刊批判人工神经网络:先天结构比后天训练更重要,应该借鉴动物大脑...

来源&#xff1a;凹非寺人工神经网络可以从动物大脑中学到什么&#xff1f;最新一期Nature子刊上&#xff0c;就刊登了这样一篇文章。美国冷泉港实验室的神经科学家Anthony M. Zador&#xff0c;对当下人工神经网络的研究思路进行了深刻反思与批判&#xff1a;大多数动物行为不…

matlab的傅里叶变换

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 图像变换&#xff1a; 更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 在 MATLAB 中&#xff0c;一般用二元函数…

笔记一 Redis基础

在cmd 命令中运行redis 运行redis命令 &#xff1a;redis-cli Reids数据结构初探 数据结构有五种 string(字符串)、 list(列表)、set&#xff08;集合&#xff09;、hash&#xff08;散列&#xff09;、zset(有序集合) redis各类型的简单介绍 和最基础的命令 1.string&a…

matlab的四维图像数据可视化

1.颜色来表示第四维 前面已经学了三维图形可视化&#xff0c;所谓三维就是指x轴&#xff0c;y轴&#xff0c;z轴组成了我们的三维&#xff0c;那么第四维用什么来表示呢&#xff0c;我们这里要用颜色来表示第四维&#xff0c;所谓四维图形可视化就是在三维图形可视化的基础上&…