VPS配置

大部分的教程都可以从DigitalOcean的Tutorials找到。

  • 远程连接
  • 安装LNMP
  • 添加网站
  • Git部署
  • 安装nodejs
  • 安装Ghost

创建新用户

# 创建新用户
adduser demo

# 授予sudo权限
gpasswd -a demo sudo  

远程连接

PuTTY使用SSH Key登录VPS流程,可以参考这篇文章:DigitalOcean的Droplet怎么添加SSH Key和使用SSH Key登录

putty一段时间后变成inactive,怎么办? putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为60.

安装LNMP

一键安装包,有详细安装说明:https://lnmp.org/install.html

其中screen -S lnmp 创建screen会话。

如果网络掉线,可以重新连接,再执行:screen -r lnmp 就会看到你的lnmp安装进程。

如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表。

执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。

LNMP相关软件安装目录

Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/ Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/ PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/

LNMP相关配置文件位置

Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf

添加网站

参考这篇文章:LNMP添加、删除虚拟主机及伪静态使用教程

lnmp vhost add  
# Do you want to add more domain name? (y/n)
y  
# 然后把不带www的域名加上,其它选项视情况决定。

生成的conf文件位于/usr/local/nginx/conf/vhost,你可以修改。
301重定向配置:

server {  
    listen 80;
    server_name arvinxiang.com;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

server {  
    server_name www.arvinxiang.com;
    return 301 $scheme://arvinxiang.com$request_uri;
}

Git部署

可以参考以下教程
英文:How To Set Up Automatic Deployment with Git with a VPS
中文:用git部署网站代码到生产环境VPS

安装nodejs

如果你的nodejs是用来跑ghost,这里可以看到ghost对于nodejs的版本要求:http://support.ghost.org/supported-node-versions/

# 直接安装就好,非root用户需要sudo
apt-get -y install nodejs  
# 安装状态检查
nodejs -v

# 当然还有NPM
apt-get -y install npm  
npm -v  

安装Ghost

参考这篇文章:How To Create a Blog with Ghost and Nginx on Ubuntu 14.04

如果你需要安装包,这里有Ghost各版本下载和release note:https://github.com/TryGhost/Ghost/releases

# 启动
NODE_ENV=production forever start index.js

# 列表
forever list

# 关闭
forever stop xxx

# 重启
forever restart xxx  

常见问题

  1. 命令被killed
    这是因为RAM不够,你可以使用swapfile或者加大VPS的RAM。

  2. NPM install错误: /usr/bin/env: node: No such file or directory
    原因:通过apt-get安装nodejs后没有添加链接,执行ln -s /usr/bin/nodejs /usr/bin/node即可。

  3. 无法使用forever运行ghost
    forever list查看进程,关闭已有进程,重新运行命令。

Arvin Xiang

Read more posts by this author.

Subscribe to Arvin Xiang

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!