您的位置:首页 > 运维架构

服务运维及部署

2018-11-28 18:28 288 查看

建立新的账号及密码

给root账户修改密码

$ passwd
[/code]

注意:完成後不要登出系統,使用另一個視窗用新密碼嘗試登入,即使失敗也可以在原來的視窗重複以上步驟。

新建一个账号

  1. $ adduser bigertech
  2. $ passwd bigertech //修改该用户密码
[/code]

工具安装与配置

接下来我们需要给这台服务器安装必备的工具,包括以下几项,本文将给出工具的安装方法及常见问题的解决。

  1. nginx
  2. node
  3. pm2
  4. mysql
  5. vsftpd
  6. firewall

工具:

  1. git
  2. brew
  3. grunt

以上安装均需切入root状态

nginx

nginx需要安装必须的库

1.安装PCRE库

  1. $ cd /usr/local/
  2. $ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz
  3. $ tar -zxvf pcre-8.35.tar.gz
  4. $ cd pcre-8.35
  5. $ ./configure
  6. $ make
  7. $ make install
2.安装zlib库
  1. $ cd /usr/local/
  2. $ wget http://zlib.net/zlib-1.2.8.tar.gz
  3. $ tar -zxvf zlib-1.2.8.tar.gz
  4. $ cd zlib-1.2.8
  5. $ ./configure
  6. $ make
  7. $ make install
3.安装ssl
  1. $ cd /usr/local/
  2. $ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
  3. $ tar -zxvf openssl-1.0.1j.tar.gz
  4. $ ./config
  5. $ sudo make
  6. $ sudo make install
4.安装nginx
  1. $ cd /usr/local/
  2. $ wget http://nginx.org/download/nginx-1.6.2.tar.gz
  3. $ tar -zxvf nginx-1.2.8.tar.gz
  4. $ cd nginx-1.2.8
  5. $ ./configure --prefix=/usr/local/nginx
  6. $ sudo make
  7. $ sudo make install
在--prefix后面接以下命令:
  1. --with-pcre=/usr/local/pcre-8.35 指的是pcre-8.35 的源码路径。
  2. --with-zlib=/usr/local/zlib-1.2.8 指的是zlib-1.2.8 的源码路径。
5.启动

确保系统的 80 端口没被其他程序占用,

$ /usr/local/nginx/sbin/nginx
检查是否启动成功:

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

部分命令如下:

  1. 重启:
  2. /usr/local/nginx/sbin/nginx –s reload
  3. 测试配置文件是否正常:
  4. /usr/local/nginx/sbin/nginx –t
  5. 配置文件位置:
  6. /usr/local/nginx/conf
注意端口是否开启或是否被占用,nginx 无法连接问题排除文档:

http://h2ofly.blog.51cto.com/6834926/1324588

node

下载node:

  1. $ wget http://nodejs.org/dist/v0.12.1/node-v0.12.1.tar.gz
  2. $ tar -zxvf 文件名
  3. $ cd node-v0.12.1
  4. $ ./configure
  5. $ sudo make
  6. $ sudo make install
如果没报错:

输入 node -v 查看node的安装版本

输入 npm -v 查看npm的版本

n是node里面专门管理node版本的模块
$ npm install -g n
$ n stable

pm2

安装

$ npm install pm2@latest -g
常用命令:
  1. $ pm2 start app.js //fork模式启动
  2. $ pm2 delete all/id //删除所有/某个进程
  3. $ pm2 stop all/id //停止
  4. $ pm2 reload all/id //重启
  5. $ pm2 start app.js -i 3 --name bigertech //cluster模式启动,后面的数字表示开启几个进程,--name 后接重命名该进程
  6. $ pm2 logs //查看log日志
  7. $ pm2 kill //杀死进程
具体参考pm2文档

mysql

安装

因部分centos中yum的安装不够全面,本文将使用rpm安装,安装前需查看是否使用其他方法安装过,如果有提示卸载,表示已经使用yum安装myslq。

$ yum remove mysql
  1. 下载安装包
    [ol]mysql-sever
  2. mysql-client
  3. mysql-devel
文件名字需根据最新版本,以及服务器安装的系统版本变更,具体可查看网站:http://dev.mysql.com/downloads/mysql/#downloads
  • $ wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.22-1.el7.x86_64.rpm
  • $ wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.24-1.el7.x86_64.rpm
  • $ wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.24-1.el7.x86_64.rpm
  • [/ol]
  • 安装
      $ rpm -ivh MySQL-server-5.6.22-1.rhel5.x86_64.rpm
    1. $ rpm -ivh MySQL-client-5.6.22-1.el7.x86_64.rpm
    2. $ rpm -ivh MySQL-devel-5.6.22-1.el7.x86_64.rpm
    安装正确应显示:
    1. MySQL-server-5.6.22-1.el7 ################################# [100%]
    2. 2015-01-19 11:23:24 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    3. 2015-01-19 11:23:24 17830 [Note] InnoDB: Using atomics to ref count buffer pool pages
    4. ...
    错误信息提示解决方式:

    1. 第一步安装提示缺少依赖
    2. 提示有冲突

    RPM安装后 /etc/中并无mysql.cnf配置文件

    需要从/usr/mysql 中找到cnf文件,将其复制过去,并修改文件名为mysql.cnf

    启动sql

    1. service mysql start
    2. /etc/init.d/mysql start
    [/code]

    启动成功后将mysql添加到自启动

    chkconfig mysql on

    若提示重定向,请尝试:

    1. 启动
    2. systemctl start mariadb.service
    3. 自启动
    4. systemctl enable mariadb.service
    启动后可登陆数据库:
    mysql -u root -p    //-p 表示使用密码登陆
    初次安装将产生随机密码,可在
    /root/.mysql_secret
    文件中查看
    mysqladmin -u root password ‘123456’ -p
    若无法修改,用安全模式登录,手动修改:

    1. 停止mysql

      service mysql stop

    2. 安全模式

      /usr/bin/mysqld_safe --skip-grant-tables & //前面的目录根据安装目录有所不同

    3. 修改密码

      [ol]mysql> update mysql.user set Password=password('lifekit') where User="root" ;
    4. mysql> flush privileges;
    退出安全模式进入尝试重新登陆

    [/ol]

    设置可远程访问

    1. mysql> use mysql; (此DB存放MySQL的各种配置信息)
    2. Database changed
    3. mysql> select host,user from user; (查看用户的权限情况)
    4. +----------------+--------+
    5. | host | user |
    6. +----------------+--------+
    7. | localhost | |
    8. | localhost | root |
    9. | localhost | |
    10. | localhost | mysql |
    11. +----------------+--------+
    12. 6 rows in set (0.02 sec)
    [/code]

    由此可以看出,只能以localhost的主机方式访问、以下设置可远程访问。

    1. mysql> Grant all privileges on *.* to 'root'@'%' identified by 'lifekit'with grant option;
    2. (表示是所有的外部机器,如果指定某一台机,就将%改为相应的机器名;‘root’则是指要使用的用户名,里面的password需要自己修改成root的密码.)
    3. mysql> flush privileges; //运行为句才生效,或者重启MySQL
    4. Query OK, 0 rows affected (0.03 sec)
    5. mysql> select host,user from user; (再次查看用户的权限情况)
    6. +----------------+--------+
    7. | host | user |
    8. +----------------+--------+
    9. | % | mysql |
    10. | % | root |
    11. | localhost | |
    12. | localhost | root |
    13. | localhost | |
    14. | localhost | mysql |
    15. +----------------+--------+
    16. mysql>exit
    至此完成远程访问设置,如还是无法访问,查看3306端口是否开启。

    Vsftpd

    安装

    使用yum命令直接安装

    $ yum install vsftpd
    要使外部可使用ftp登录到该机器需要修改部分配置,配置文件内容详见:

    以下列出常用内容:

    使远程可通过root用户登录:

    将 /etc/vsftpd/中的 userlist以及 ftpusers 中的root去掉

    可能遇到的问题:

    1. 无法启动,重定向,直接用以下命令启动:

    1. ```
    2. $ systemctl start vsftpd
    3. ```
    2. 启动后无法连接,开启21端口防火墙

    3. 无法读取目录,修改配置文件,添加以下:

    1. ```
    2. $ pasv_enable=NO
    3. ```
    **4. 450:读取目录列表失败 **
    可能PASV问题,在vsftpd.conf加上了一句pasv_enable=NO
    5. 500 OOPS:cannot change directory:/home/pmfile
    新建用户后登录报错,刚开始以为是selinux的问题,后来一想不对,其他的帐号都没事,肯定刚才己关闭了selinux,那么就是权限问题了,果然是刚才忘了把权限给虚拟ftp宿主权限了:chown -R ftpuser.ftpuser /home/publicfile
    6. 530错误:Login incorrect.
    可能为密码错误
    7. 外网无法登录,550错误,错误: 读取目录列表失败
    这个问题很是挠头,在做完第二台服务器后让客户先从内网登录,一切都很正常,而从外网登录时就会出现550错误,内网映射没有开放TCP20端口,开放后就OK了
    8. 553 错误 无法创建文件
    1. 临时关闭 selinux
    2. setenforce 0 设置SELinux 成为permissive模式
    配置详解:http://my.oschina.net/accesssoul/blog/61396

    Firewall

    安装

    使用yum命令直接安装

    $ yum install firewall

    常用命令

    1. 开启/重启/关闭
    2. $ systemctl start/restart/stop firewalld
    3. 永久添加端口
    4. $ firewall-cmd --zone=public --add-port=10837/tcp --permanent
    5. 查看一个端口是否永久启动
    6. $ firewall-cmd --zone=public --query-port=10837/tcp --permanent
    7. 查看list
    8. $ firewall-cmd --list-all
    9. 暫時開放某个服務,以ftp为例
    10. $ firewall-cmd --add-service=ftp
    11. 永久開放某个服務
    12. $ firewall-cmd --add-service=ftp --permanent
    13. 永久關閉
    14. $ firewall-cmd --remove-service=ftp --permanent
    15. success
    16. 檢查防火牆狀態
    17. $ firewall-cmd --state
    18. running
    [/code]

    Git

    安装

    Centos上一般都已安装git,若没有则需手动下载包安装

    下载最新的git包

    1. $ wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz
    2. $ tar xzvf git-latest.tar.gz
    3. $ cd git-2011-11-30 #进入目录
    4. $ autoconf
    5. $ ./configure
    6. $ make
    7. $ sudo make install
    检查下安装的版本,大功告成
    $ git --version

    代码拉取

    初次对该服务器进行某个账号的代码拉取需要进行设置

    若是共有仓库直接执行:

    $ git clone  xxx
    若是私有仓库则做以下操作:
    建立用户名和邮箱:
    1. $ git config --global user.name bgdev
    2. $ git config --global user.email bgdev@qq.com
    看看有没有ssh的秘钥文件夹
    $ ls -al ~/.ssh
    没有的话则为这个邮箱创建一个秘钥(过程可能需输入密码):
    $ ssh-keygen -t rsa -C "bgdev@qq.com"
    成功后执行以下代码(过程可能需输入密码):
    1. $ eval "$(ssh-agent -s)"
    2. $ ssh-add ~/.ssh/id_rsa
    查看公钥信息:
    $ cat ~/.ssh/id_rsa.pub
    将获得的公钥信息添加到coding.net中--使用者授权

    接下来可以进行代码的克隆及拉取

    常用命令

    1. 查看分支
    2. $ git branch
    3. * dev
    4. master
    5. 切换分支
    6. $ git checkout master
    7. 日志记录
    8. $ git log
    [/code]

    部分工具需要设置开机自启动

    至少需要开启mysql、firewall、vsftpd、crond、redis的自启动
    1. $ chkconfig --list //查看自启动列表
    2. $ chkconfig mysql on //开启某个应用的自启动
    3. 服务类:
    4. $ systemctl enable vsftpd.service


    作者:chrisxlq
    链接:http://www.jianshu.com/p/508d895a6f48
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    [/code]
    
    
    
    
    
    
    
    
    
                                                
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: