ubuntu 部署手札

适用于ubuntu 16.04

apt-get换源

系统设置
->软件和更新
->下载自
->选择chine
->mirrors.aliyun.com/ubuntu

选择国内源后再更新语言库及其他更新操作会快更多!

转成中文及添加中文输入法

系统设置
->语言支持
->[新系统会提示语言支持需更新之类的先更新]
->添加或删除语言
->选择中国(简体) or [Chinese Simplified]
->应用到整个系统
->键盘输入法系统选择fcitx
->重启完成

命令行

进程

#表示查看所有进程里CMD是java的进程信息, -aux 显示所有状态, grep 是搜索
ps -aux | grep java

# 杀进程
kill [pid]
killall [name]
## example
killall nginx

# 添加新目录
mkdir

# 删除目录下所有文件
rm -R [dir] 

# 创建文件
touch [filename]

# 当前路径
pwd

# 使用root权限
sudo

# 切换用户
su [user]

# 查看用户组
groups 

# 添加用户组 及 用户权限
sudo groupadd -g 315 mysql  
sudo useradd -u 315 -g mysql -d /var/lib/mysql -M mysql

# 下载同名文件
curl -O https://raw.github.com/emmetio/pyv8-binaries/master/pyv8-linux64-p3.zip
# 下载并命名文件
curl -o newname.zip https://raw.github.com/emmetio/pyv8-binaries/master/pyv8-linux64-p3.zip

# 这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz 
tar -czf all.tar.gz *.jpg 
 
# 这条命令是将上面产生的包解开。
tar -xzf all.tar.gz

解决运行shell存在\r问题,win下编辑的文档会包含\r
实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)
安装完即可,现在你已经可以进行文本格式的转换了。

sudo apt-get install tofrodos 

安装proxychains

用于代理,在要使用的命令行前键入proxychains即可

# install 
sudo apt-get proxychains
# use 
proxychains curl http://uxfeel.com

安装mongo

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
#Ubuntu 16.04
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org

添加服务
(Ubuntu 16.04-only) Create systemd service file
Create a new file at /lib/systemd/system/mongod.service with the following contents:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

让mongo可以远程连接

查看ip使用情况

$ sudo netstat -nputl

修改 mongodb.conf

$ vi /etc/mongodb.conf

将以下配置

bind_ip: 127.0.0.1
port: 27017

改为

bind_ip: 0.0.0.0
port: 27017
auth: true

重启mongo

$ sudo service mongodb restart
$ sudo service mongodb status

MongoDB的启动和关闭
https://docs.mongodb.com/mast...

添加管理权限

by mongoDB 3.0
添加管理员

$ mongo
> use admin
> db.createUser(
  {
    user: "buru",
    pwd: "12345678",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

查看用户

> show users

修改服务,添加上--auth参数让mongo启动用权限管理

# /lib/systemd/system/mongod.service
ExecStart=/usr/bin/mongod --quiet --auth --config /etc/mongod.conf

重启mongo

$ sudo service mongodb restart
$ sudo service mongodb status

http://ibruce.info/2015/03/03...

安装nginx

创建文件/etc/apt/sources.list.d/nginx.list并键入

deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

更新并安装nginx

sudo apt-get update
sudo apt-get install nginx

如果提示W: GPG error: http://nginx.org/packages/ubuntu xenial Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY $key
需要运行以下代码($key是错误提示中有提及的)

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
sudo apt-get update
sudo apt-get install nginx

nodeJS前面搭建一层nginx的场景和必要性

当80端口已经给nginx占用,而已服务器存在多个网站和服务时还是有必要用nginx的

编辑nginx配置

# vi /etc/nginx/nginx.conf

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

    sendfile        on;

    keepalive_timeout  65;


    server {
        listen       80;
        server_name  uxfeel.com www.uxfeel.com;

        location / {
            proxy_pass   http://localhost:8080;
        }
    }

}

查看nginx状态

$ systemctl status nginx.service

启动nginx

$ systemctl start nginx.service

反向代理websockets

http {

    // ...省略

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    server {

        listen       3102;  #监听3102 
        server_name localhost;

        location / {
            proxy_pass http://localhost:3100; #代理3100 

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }

    // ...省略
}

安装php

使用ppa增加源:
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php7.0 php7.0-mysql php7.0-curl php7.0-json php7.0-cgi

然后可以查看php版本:
php -v

关于php5.4--php5.6版本
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get -y install php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip

安装mysql

$ sudo apt-get install mysql-server

当什么都没填,包括root密码设置等,会生成默认用户及密码在以下文件

$ cat /etc/mysql/debian.cnf

安装nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
# 重开终端
# 查看线上node版本
nvm ls-remote
# 安装node
nvm install v6.11.0
# 设为默认
nvm alias default v6.11.0
# 显示本地版本
nvm ls
# 使用其他版本,前提记得安装
nvm install v4.4.4
nvm use v4.4.4

nvm加速

nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢,

好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从淘宝的 node dist 镜像下载:

$ NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install 0.12.7
# 于是你就会看到一段非常快速进度条:
######################################################################## 100.0%
Now using node v0.12.7

如果你不想每次都输入环境变量 NVM_NODEJS_ORG_MIRROR, 那么我建议你加入到 .bashrc 文件中:

# nvm
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
source ~/git/nvm/nvm.sh

安装chrome 稳定版

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable

linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
快速搭建 Node.js 开发环境以及加速 npm
Nginx反向代理Websocket
nginx配置location总结及rewrite规则写法
nginx proxy_pass 后面的url 加与不加/的区别
绝对详细!Nginx基本配置、性能优化指南
nodejs博客的nginx配置
(转)Nginx反向代理设置 从80端口转向其他端口
Nginx配置upstream实现负载均衡

搭建hexo博客

hexo 服务器
How do I configure pm2 to run hexo?

遭遇的问题's

npm 安装的全局命令无法使用问题

原因就是node的路径没有加入到系统变量

//得到node路径
$ npm config get prefix
$ vim /etc/profile
//在文档最后,添加:
export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
//保存,退出,然后运行:
$ source /etc/profile

http://www.520bu.com/index.ph...

mongod使用service启动不能的问题

ubuntu 部署手札_第1张图片
sudo service mongod start不能有效生效,问题可能是文件夹/var/log/mongodb/var/lib/mongodb没设置mongodb:mongodb用户组权限
设置了估计就可以

cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .

http://stackoverflow.com/ques...

你可能感兴趣的:(运维,数据库,php)