ubuntu14.04.5 LTS下安装LMNP环境

前言:不同的服务器有不同的配置方法,比如ubunto与centOS的情况不一样,要按照具体情况而定,由于服务器配置没有一个规范的教程,所以配置过程中可能会出现千奇百怪的问题,下述文档是我在购买的学生机阿里云上能够配置成功的总结,如果出现其他总结最好还是自己百度、谷歌…各种

准备工作

Windows 下载 xshell 用于远程连接服务器 ,下载 xftp 用于传输文件

安装LNMP的方法

方法一:

一键安装: https://lnmp.org/download.html

在服务器终端输入命令(根据更新进行调整)

1
wget http://soft.vpser.net/lnmp/lnmp1.4.tar.gz  

解压

1
tar -zxvf  lnmp1.4.tar.gz

进入解压后生成的文件

1
cd lnmp1.4 

执行安装程序

1
./install.sh

在安装选项中进行版本选择,等待,安装完毕。

方法二:

阿里云一键装机(缺点:貌似会捆绑个phpwind,不过可以快速建站wordpress,教程链接如下

https://help.aliyun.com/document_detail/44595.html?spm=5176.doc43244.6.699.meslKb

方法三:

我的手装

安装nginx

准备工作:

1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install

可能出现的问题

1.sudo: unable to resolve host root(hostname)

解决方案:

1
vi /ect/hosts

增加

1
127.0.0.1 root(yourhostname)

命令Wq!保存

2.E: Unable to locate package update

解决方案:

1
Sudo apt-get update

来更新安装包


下载nginx

1
sudo apt-get install nginx

输入

1
nginx -t 

如果出现

01

或者输入

1
curl http://127.0.0.1 

出现

02

或者直接在浏览器上输入你的公网IP出现

03

则证明nginx安装成功

配置nginx.conf

1
cd /etc/nginx/sites-available

命令ls可以看到default

命令vi default可以看到默认配置

04

这是一个可以参考的标准配置设置

为了防止影响nginx.conf配置,所以我把其中的内容全部注释了

也可以使用rm -rf default 直接把default删除

其中

  • Listen

    是监听的端口号

  • root

    是网站根目录

  • root

    下面是主页设置(大概吧)

  • server_name

    是域名填写

退出编辑,命令cd .. ,回到上级目录/ect/nginx,命令ls可以看到nginx.conf,这是Nginx的配置文件,命令vi nginx.conf ,在http的括号里面输入

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;


server_name server_domain_name_or_IP;
root root directory
index index.html index.htm index.php;

# location / {
# try_files $url $url/ =404;
# }
}

由于location会报错,先注释掉,退出编辑

这时候可以用域名访问网站了(当然前提是你域名备案解析弄好)

ssl证书的配置

https://yundun.console.aliyun.com/?p=cas#/cas/download/214181433450730本人购买的的阿里云服务器,可以参考阿里云上的教程


以下内容来自http://www.linuxidc.com/Linux/2015-05/116933.htm

安装MySQL

1
sudo apt-get install mysql-server

# 连续输入两次相同的密码

安装PHP

1
sudo apt-get install php5-fpm php5-mysql

配置PHP,修改php.ini文件

# 备份php.ini文件

1
cp /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.back

# 取消有安全隐患的pathinfo模式

1
vim /etc/php5/fpm/php.ini

# 将cgi.fix_pathinfo=1 设置为 cgi.fix_pathinfo=0

1
cgi.fix_pathinfo=0

#启动php-fpm

1
sudo service php5-fpm restart

配置Nginx让其使用php-fpm进程

#备份/etc/nginx/sites-available/default文件

1
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.back

#修改defalut文件内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root root directory
index index.php index.html index.htm;

server_name server_domain_name_or_IP;

location / {
try_files $uri $uri/ =404;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_paramSCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

在服务器网站根目录创建一个php文件,命名为info.php输入以下内容

1
2
3
<?php
phpinfo();
?>

保存后退出

在浏览器访问e.g http://**yourId**/info.php

05

出现上图则证明配置php成功

命令命令netstat -tunpl检查安装结果

端口与服务信息说明如下:

  • 9000:

    PHP 进程服务。如果安装的是 Apache,则没有此端口

  • 3306:

    MySQL 服务

  • 80:

    HTTPD 或者 Nginx 服务

  • 21:

    FTP服务

最终我的配置如下

注:

1
return      301 https://$server_name$request_uri;

为设置http自动跳转https

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
      user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
worker_connections 768;
# multi_accept on;
}
http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;

##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##

#include /etc/nginx/naxsi_core.rules;

##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##

#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

server_name domain name;

return 301 https://$server_name$request_uri;
}
server{
listen 443;

server_name domain name;
#root /usr/share/nginx/html;
root root directory;
index index.html index.htm index.php;

#error_page 404 /404.html

ssl on;
ssl_certificate xxx.pem;
ssl_certificate_key xxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location / {
try_files $uri $uri/ =404;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root domain name;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}

location /nginx_status
{
stub_status on;
access_log off;
}

location ~ /.well-known {
allow all;
}

location ~ /\.
{
deny all;
}
}
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}

以下是一键下载nginx.conf的配置文件,同样可以通过命令nginx -t 找到nginx.conf 的位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
user  www www;

worker_processes auto;

error_log /home/wwwlogs/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
{
use epoll;
worker_connections 51200;
multi_accept on;
}

http
{
include mime.types;
default_type application/octet-stream;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;

sendfile on;
tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";

#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

server_tokens off;
access_log off;

server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name domain name
index index.html index.htm index.php;
root root directory;

#error_page 404 /404.html;

listen 443;
ssl on;
ssl_certificate xxx.cem;
ssl_certificate_key xxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

include enable-php.conf;

location /nginx_status
{
stub_status on;
access_log off;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}

location ~ /.well-known {
allow all;
}

location ~ /\.
{
deny all;
}

access_log /home/wwwlogs/access.log;
}
include vhost/*.conf;
}

补充

1
sudo apt-get install php5-curl

安装PHP第三方依赖

配置root 及应用账号权限

创建新用户

命令 adduser lifengjun

命令 两次输入密码

给用户配置权限

命令 gpasswd -a lifengjun sudo

命令 sudo visudo 打开sudoers.tmp

增加下述内容 lifengjun ALL=(ALL:ALL) ALL

image013

Ctrl + x , Shift + Y , 回车

命令 service ssh restart

重启一个命令行,ssh lifengjun@youIp

输入密码后就可以链接到服务器了

主机用户的密码添加

命令:sudo passwd

主机名操作

查看主机名

命令 hostname

修改主机名

命令hostname 新主机名

重启终端

配置本地无密码SSH登录

转载自http://www.aiezu.com/system/linux/xshell_ssh_public-key_login.html

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法。

使用密钥登录分为3步:
1、生成密钥(公钥与私钥);
2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;
3、配置ssh客户端使用密钥登录。

一、生成密钥公钥(Public key)与私钥(Private Key)

打开Xshell,在菜单栏点击“tools”,在弹出的菜单中选择“新建用户密钥生成向导”,如下图:

image015

弹出“新建用户密钥生成向导”对话框,在“密钥类型”项选择“RSA”公钥加密算法,“密钥长度”选择为“2048”位密钥长度,如下图:

image016

点击“下一步”,等待密钥生成

image017

继续下一步,在“密钥名称”中输入Key的文件名称,我这里为“key”;在“密码”处输入一个密码用于加密私钥,并再次输入密码确认,如下图:

image018

点击“下一步”,密钥生成完毕(公钥格式选择SSH2-OpenSSH格式),这里显示的是公钥,我们可以复制公钥然后再保存,也可以直接保存公钥到文件,如下图。私钥这里不显示,可以在“用户密钥管理者”导出到文件:

image019

点击“保存为文件”按钮,将公钥(Public key)保存到磁盘,文件名为“key.pub”,备用。

二、上传公钥(Public Key)到服务器:

​ 使用到Xshell登录到服务器,进入到“/root/.ssh/”目录,运行rz命令(如果没有rz命令,运行sudo apt-get install lrzsz安装),将key.pub发送到服务器,然后运行如下命令,将公钥(Public Key)导入到“authorized_keys”文件:

1
2
3
4
5
6
7
8
9
1. [root@localhost ~]# cd /root/.ssh/
2. [root@localhost .ssh]# rz
3. rz waiting to receive.
4. [root@localhost .ssh]# cat me.pub >> authorized_keys
5. [root@localhost .ssh]# chmod 600 authorized_keys
6. [root@localhost .ssh]# ls
7. authorized_keys known_hosts me.pub
8. [root@localhost .ssh]# cat authorized_keys
9. ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4VCOWFrARc1m3MfEAL50v2Z2siavO3Ijpr/LZ00EZah8EjfZhqjAc/agkljyXmNGpVDpRdtlYco8h3P5vegXOEgKcX74fDYm0vNdVABVD1XSD8ElNyLTCCNk7rZJbi3htJox3Q1n0vnMmB5d20d9occkAx4Ac94RWNS33EC5CszNTMgAIn+uZl0FlQklS1oSyWFahSTWyA6b33qG7Y5E4b6J/caObnPx6EgtBrgi97gXJHZWyYlGrpWmUuhPqs5XToRB08CVxAyzewtq1MXv0p+Po4L1pbHLRf+TSoZ5RSBZZjY4/JMAzdXHNtnAyO0j0VNGbBXKUcNSAHZ

image020

三、配置Xshell使用密钥认证方式登录到服务器:

​ 打开Xshell,点击“New”按钮,弹出“新建会话属性”对话框,在“连接”栏目中,输入刚刚配置好公钥(Public Key)的IP地址和端口,如下图所示:

image022

image024

点击左侧的“用户身份验证”,切换到认证栏目,在“方法”选择“Public Key”认证,用户名输入“root”(公钥是放在root目录下的.ssh文件夹中),在“用户密钥”中选择我们刚才生成的私钥“key”,“密码”中输入私钥的加密密码。

image025

点击确定,Xshell配置ssh免密码登录配置完成。

附录:linux ssh-keygen命令生成密钥:

其实,linux下的ssh-keygen下也可以生成密钥,在linux下输入ssh-keygen -t rsa,在提示下,输入密钥的名称(这里为key)和私钥加密密码,既完成密钥生成。生成的两个文件中,“key”为私钥,“key.pub”为公钥。如下图所示:

image026

修改服务器默认登录端口(:22)(!important防火墙也要修改)

命令 vi /etc/ssh/sshd_config 找到Port 22

image028

修改为大于1024(0-65536)(因为0-1024通常是系统进程占用的端口)比如说4000

移动到最后一行,添加一行 AllowUsers lifengjun(个人感觉加了这条命令之后root变成了未注册,谨慎!!!)

image030

保存退出

命令sudo service ssh restart重启ssh服务

此时新建一个本地shell,再次登录就会失败

image031

此时想用xshell登录服务器的4000端口就需要重新配置

新建会话属性

image032

image033

方法public key或者keyword都是可以的,当然public key前提是你配置过免密码登录

image035

然后如果是阿里云的话不要忘记配置安全组打开4000端口

回到xshell新建会话

image036

image037

最终可以登录进入4000端口

配置iptables和Fail2Ban增强安全防护

准备:

命令 sudo apt-get update

命令sudo apt-get upgrade

命令 sudo vi /etc/iptables.up.rules新建文件

编辑如下文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
*filter



\# allow all connections

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT



\# allow out traffic

-A OUTPUT -j ACCEPT



\# allow http https

-A INPUT -p tcp --dport 443 -j ACCEPT

-A INPUT -p tcp --dport 80 -j ACCEPT



\# allow ssh port login

-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT



\# ping

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT



\# log denied calls

-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7



\# drop incoming sensitive connections

-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set

-A INPUT -p tcp --dport 80 -i eht0 -m state --state NEW -m recent --update --second 60 --hitcount 150 -j DROP



\#reject all other inbound

-A INPUT -j REJECT

-A FORWARD -j REJECT



COMMIT

保存退出

命令 sudo iptables-restore < /etc/iptables.up.rules

命令 sudo ufw enable激活防火墙i

命令 sudo ufw status查看是否激活

打印出Status: active 证明防火墙已经被激活

配置防火墙路径设置开机自动启动

命令 sudo vi /etc/network/if-up.d/iptables

编辑脚本

1
2
3
4

\#!/bin/sh

iptables-restore /etc/iptables.up.rules

保存退出

命令sudo chmod +x /etc/network/if-up.d/iptables

Fail2ban

命令sudo apt-get install fail2ban

打开配置文件

命令sudo vi /etc/fail2ban/jail.conf

查看状态

命令sudo service fail2ban status

开启/停止sudo service fail2ban start/stop

搭建服务器的Node.js环境

同样给出阿里云一键安装及部署上线教程https://help.aliyun.com/document_detail/50775.html?spm=5176.doc43244.6.715.DHu5FY

下面是手装教程

命令sudo apt-get install vim

命令sudo apt-get install open

命令sudo apt-get install ssl

命令sudo apt-get install build-essential

命令sudo apt-get install libssl-dev

命令sudo apt-get install wget

命令sudo apt-get install curl

命令sudo apt-get install git

以上为安装依赖

安装nvm

命令wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

来自https://github.com/creationix/nvm

将nvm加入环境变量

1
2
3
4
5
source ~/.nvm/nvm.sh

source ~/.profile

source ~/.bashrc

安装node.js 8.9.4

命令nvm install v 8.9.4

制定版本

命令nvm use v 8.9.4

命令nvm alias default v8.9.4

查看Node的版本

命令node -v

打印出v8.9.4

通过指定使用淘宝的镜像进行下载npm

命令 npm --registry=https://registry.npm.taobao.org install -g npm

查看版本

命令npm -v

增加系统文件结构数目??

命令echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl –p

安装cnpm(网络太慢才使用)

命令npm --registry=https://registry.npm.taobao.org install -g cnpm

查看版本

命令cnpm -v

工具包安装(i是install的缩写)

npm i pm2 webpack gulp grunt-cli -g

在根目录下新建一个文件server.js

键入

1
2
3
4
5
6
7
8
9
10
11
var http = require("http");

http.createServer(function (req, response) {

response.writeHead(200, {'content-Type':'text/plain'});

response.end('Hello world\n');

}).listen(8081);

console.log('Server running at 8081 port');

保存退出

命令sudo vi /etc/iptables.up.rules

暂时添加配置

1
2
3
4
5
-A INPUT -p tcp --dport 443 -j ACCEPT

-A INPUT -p tcp --dport 80 -j ACCEPT

-A INPUT -p tcp --dport 8081 -j ACCEPT

保存退出

重新载入配置

命令sudo iptables-restore < /etc/iptables.up.rules

命令 node server.js启动

如果用ip地址访问要关闭ssl证书服务

命令vi /ect/nginx/nginx.conf

找到ssl on后在前面输入一个#以注释,然后保存退出

在服务器上输入http://youip:8081即可访问

使用pm2让将nodejs跑起来(pm2:node部署和进程管理工具)

Pm2 常用命令:https://www.douban.com/note/314200231/
安装全局

命令npm install pm2 -g

启动服务

命令pm2 start xxx.js

列出服务器的服务

命令pm2 list

查看详细信息

命令pm2 show name

查看服务器实时信息

命令pm2 logs

配置nginx反向代理nodejs端口

准备工作:移除apache服务

命令sudo service apache2 stop

命令sudo service apache stop

命令udate-rc.d -f apache2 remove

命令sudo apt-get remove apache2

测试首先关闭ssl证书服务

命令vi /ect/nginx/nginx.conf

找到ssl on后在前面输入一个#以注释,然后保存退出

进入nginx配置下的目录

命令cd /ect/nginx/conf.d

创建新的文件

命令sudo vi lifengjun-xin-8081.conf

输入一下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
upstream lifengjun{

server 127.0.0.1:8081;

}

server{

listen 80;

server_name 47.94.157.241;



location / {

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forward-For &proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_set_header X-Nginx-Proxy true;

proxy_pass http://lifengjun;

proxy_redirect off;

}

}

保存退出

命令nginx -s reload重启服务器

在浏览器中输入你的ip,前提是你用pm2启用了server.js的服务

然后就可以看到Hello World从而实现了nginx反向代理node.js端口

补充

nginx.conf 中有一项

image038

image039

拿掉注释后reload

image040

隐藏nginx版本

MongoDB的安装

浏览器打开https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

按照里面的步骤安装

命令sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv0C49F3730359A14518585931BC711F9BA15703C6

命令echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

(ubuntu14.04)命令echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

命令sudo apt-get update

命令sudo apt-get install -y mongodb-org

开启MongoDB

命令sudo service mongod start

停止MongoDB

命令sudo service mongod stop

重启MongoDB

命令sudo service mongod restart

判断是否开启成功(查看日志)

命令cat /var/log/mongodb/mongod/log

或者输入

命令mongo

查看是否有版本打印

若连接失败,需要更改防火墙允许端口

命令sudo vi /etc/iptables.up.rules

编辑输入

1
2
3
4
5
#mongodb connect

-A INPUT -s 127.0.0.1 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT

-A OUTPUT -d 127.0.0.1 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

保存退出

命令sudo iptables-restore < /etc/iptables.up.rules重载

命令mongo启动

如何更改MongoDB默认端口

命令sudo vi /ect/mongod.conf

找到port更改即可,然后防火墙再更改端口,重新载入防火墙配置

重启Mongodb

命令sudo service mongod restart

开启服务默认端口为27017

如果使用别的端口登录如(18888,阿里云记得添加安全组)

命令为 mongo --port 18888

往线上MongoDB导入单表数据或数据库

首先用xftp将压缩打包好的数据传输到根目录下

命令mongorestore -p 22 -d indust-app ./indust-app-backup

查看数据

命令mongo

命令use indust-app

命令show table

命令db.creations.find({})

看到数据导入成功