腾讯云主机 Ubuntu 系统使用 sftp 上传文件

laptop-desk-code.jpg | center | 827x551

概述

经常有操作系统与云服务器间传递文件的需求,通常采用的方式有:搭建ftp服务器、云盘同步工具、winscp、sftp等,其中我比较喜欢winscp 和 sftp 的方式,当然,如果你说两边都装个QQ,同是windows系统的前提下也无可厚非。

今天,介绍的是采用sftp方式与腾讯云Ubuntu系统间同步文件的开启方式。

解决方法

腾讯云主机 Ubuntu 系统默认开通的用户是:ubuntu,
此账户无法使用sftp上传文件。

我们的解决方式是,启用root 账户!

启用前需要修改配置文件

执行命令:

vim /etc/ssh/sshd_config

将下面两个参数修改为 yes

PermitRootLogin yes

PasswordAuthentication yes

修改 root 账户密码

sudo passwd

使用FilleZilla连接云主机

image.png | left | 637x621

更新时间

  • 【2018-5-11 14:52:18】添加背景说明。

相关链接

腾讯云主机 Ubuntu 安装 WordPress

laptop-desk-code.jpg | center | 827x551

概述

Ubuntu 16.04 安装 WordPress 主要分三步:安装 Nginx 并解析域名 ,安装 PHP ,安装 MySQL。在此基础上本文还扩充了添加SSL证书、www跳转到主域名、域名的DNS解析等内容。

安装 Nginx 并解析域名

首先,更新依赖包:

切换到root账户,否则更新包会有如下错误

ubuntu@VM-ubuntu:~$ apt-get update
Reading package lists... Done
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

切换到 root 账户

sudo su

更新依赖包:

apt-get install update

等待更新完毕!安装 Nginx

apt-get install nginx

安装过程中如果提示(Y/N)的时候,一律输入y

此时,在浏览器中输入IP地址,如果安装成功,则可以看到默认的 Nginx 页面:

image.png | left | 714x313

然后,设置域名的DNS解析

image.png | left | 827x517

解析成功后,在浏览器输入域名可以看到刚才的 Nginx 默认页。

最后,修改 Nginx 配置文件

配置文件路径:/etc/nginx/sites-available/default

......

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files uri uri/ =404;
        }

......

修改36行的 root /var/www/html;root /var/www/myblog;

添加SSL证书

申请免费SSL证书:

地址:https://freessl.org/

申请步骤:

输入要申请证书的域名:

image.png | left | 827x356

按照要求,验证域名所有权:

image.png | left | 827x669

验证完成,下载证书文件。

证书文件

证书文件包含两个:

image.png | left | 243x80

这两个文件的含义是:

文件名 内容
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
full_chain.pem 包括了cert.pem和chain.pem的内容
private.key 证书的私钥

一般情况下full_chain.pemprivate.key就够用了

Nginx 安装SSL 证书

创建ssl证书目录:

cd /etc/nginx
mkdir ssl

在此路径下添加两个文件:

root@VM-ubuntu:/etc/nginx/ssl# vim mydomain.crt
root@VM-ubuntu:/etc/nginx/ssl# vim mydomain.key

mydomain.crt 对应文件 full_chain.pem 中的内容。
__mydomain.key __对应文件 private.key 中的内容。

修改站点配置文件,启用SSL证书

编辑站点配置文件:

root@VM-ubuntu:/etc/nginx/sites-available# vim default 

服务器部分,注释掉80端口监听,开启443端口监听并指定SSL证书路径:

server {
        #listen 80 default_server;
        #listen [::]:80 default_server;

        # SSL configuration
        #
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ssl on;
        ssl_certificate /etc/nginx/ssl/mydomain.crt;
        ssl_certificate_key /etc/nginx/ssl/mydomain.key;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
........

修改完成后,检查配置文件语法并重启服务器:

root@VM-ubuntu:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@VM-ubuntu:/etc/nginx/sites-available# service nginx restart

刷新浏览器后,可以查看证书信息:

image.png | left | 768x660

网站安全性检查

检查网站安全性等级:https://www.ssllabs.com

Test your server:

image.png | left | 760x622

SSL A+配置

生成一个 DH group。

sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

再来就是针对 SSL 做一些自定义的设置:(添加 Security enhancements 中的内容)

 # SSL configuration
        #
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ssl on;
        ssl_certificate /etc/nginx/ssl/rqc.im.crt;
        ssl_certificate_key /etc/nginx/ssl/rqc.im.key;

##### Security enhancements begin

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
        ssl_ecdh_curve secp384r1;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 1.1.1.1 114.114.114.114 valid=300s;
        resolver_timeout 5s;
        add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;

##### Security enhancements end

修改完成后,检查配置文件语法并重启服务器:

root@VM-ubuntu:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@VM-ubuntu:/etc/nginx/sites-available# service nginx restart

重新测试网站SSL等级:

image.png | left | 827x401

http 跳转到 https

默认安装完成之后,如果用户打开 http://mydomain 页面会显示错误,不会自动跳转到https。
解决方式是:多曾加一个 server block,监听 80 端口,返回 301 重定向。

server {

    listen 80 default_server;
    listen [::]:80 default_server;
    server_name mydomain.com www.mydomain.com;
    return 301 https://server_namerequest_uri;

}

设置完成之后,同样检查语法,重启Nginx:

root@VM-ubuntu:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@VM-ubuntu:/etc/nginx/sites-available# service nginx restart

安装 PHP 7.2

首先添加 PPA

sudo apt-get update

sudo apt-get install software-properties-common
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

sudo apt-get update

然后,安装 PHP7.2

sudo apt-get -y install php7.2-fpm php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-xml php7.2-mysql php7.2-cli php7.2-zip php7.2-curl

安装完毕之后配置 php-fpm :

vim /etc/php/7.2/fpm/php.ini

//;cgi.fix_pathinfo=1 改为
cgi.fix_pathinfo=0

安装 MySQL 5.7

输入安装命令:

sudo apt-get install mysql-server

期间需要设置mysql密码
查看安装的版本:

mysql --version

检查MySQL的运行状态:

sudo systemctl status mysql

登录Mysql

$ mysql -u root -p
Enter Password:

在 mysql 执行:

CREATE DATABASE myblog DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE USER 'blogname' IDENTIFIED BY 'blogpwd';

GRANT ALL PRIVILEGES ON myblog.* TO 'blogname';

FLUSH PRIVILEGES;
EXIT;

MySQL 常用命令(了解)

停止MySQL服务:

sudo systemctl stop mysql

MySQL的启动命令:

sudo systemctl start mysql

MySQL重启命令:

sudo systemctl restart mysql

设置MySQl安全服务(了解)

命令行环境执行:

mysql_secure_installation

设置步骤:
1. 第一步是启用密码验证插件 Y
2. 验证级别:2
3. 用户当前的密码强度是50,可以选择修改密码,此处可以选择忽略。
4. 移除匿名用户:y
5. root账户只允许本地登录:y
6. 移除默认的test数据库:y
7. 重新加载权限表

重新配置 Nginx

vim /etc/nginx/sites-available/default

打开配置文件,配置:

server {
    listen 80;
    listen [::]:80;
    root /var/www/wordpress;

    index index.php index.html index.htm index.nginx-debian.html;
    # 注意我们添加了 index.php
    server_name  example.com www.example.com;

    client_max_body_size 100M;

    location / {
        try_files uri uri/ /index.php?args;             }      location ~ \.php {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
         fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;
         include fastcgi_params;
    }
}

安装 WordPress

下载 WordPress 安装包解压后上传到网站目录(此处可参考我的另一篇文章《腾讯云主机 Ubuntu 系统使用 sftp 上传文件》)。

可以在浏览器中一步步按照指示安装。

也可以复制 wp-config-sample.php 修改名称为 wp-config.php

打开 wp-config.php 文件:

配置数据库连接字符串:

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', '数据库名称');

/** MySQL数据库用户名 */
define('DB_USER', '登录用户');

/** MySQL数据库密码 */
define('DB_PASSWORD', '登录密码');

/** MySQL主机 */
define('DB_HOST', 'localhost');

/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');

/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

另外添加如下配置:

/* 配置 WordPress 文件上传 */
define('FS_METHOD', 'direct');
define('FS_CHMOD_DIR', 0777);
define('FS_CHMOD_FILE', 0777);

设置完成,打开浏览器。

相关链接

Ubuntu 下安装oh-my-zsh

默认状况下Termial样式

Ubuntu系统默认状况下的终端样式如下:

Ubuntu default terminal's style

有个知名的神奇:Oh-My-Zsh 可以让终端及美观又实用:

Oh-My-Zsh agnoster theme install powerline font

今天就一步步的记录我安装Oh My Zsh 的过程

安装Oh-My-Zsh

安装Oh-My-Zsh之前必须安装zsh,否则会收到如下提示:

Zsh is not installed! Please install zsh first!

安装zsh:

  1. sudo apt-get install zsh安装zsh
  2. zsh --version确认是否安装成功
  3. sudo chsh -s $(which zsh)设置zsh为默认shell
  4. 注销重新登录

设置完成之后,终端变成如下样式:

ubuntu zsh style

  1. echo $SHELL确认zsh是否是默认SHELL,输出/usr/bin/zsh

安装Oh-My-Zsh

  1. 使用curl方式安装:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  1. 默认安装完成Oh-My-Zsh的样式如下:(重启终端后有效)

First install Oh-My-Zsh UI

  1. Oh-My-Zsh的默认配置文件在:~/.zshrc
  2. 编辑~/.zshrc修改主题为:agnoster,效果:

修改:

Oh-My-Zsh agnoster theme configuration

修改后:

Oh-My-Zsh agnoster theme example

修改Oh-My-Zsh agnoster匹配字体

从上图我们可以明显的发现,显示效果中有乱码,这是因为字体没适配。我们需要下载支持Powerline的字体。

  • 下载地址:https://github.com/powerline/fonts
  • 下载完成双击安装

默认Ubuntu 终端使用的是 Ubuntu mono regular字体 13字号,体会成Ubuntu Mono derivative Powerline字体后,效果如下:

Oh-My-Zsh agnoster theme install powerline font

进一步优化

精简 user@hostname:添加export DEFAULT_USER="username"~/.zshrc中,可以隐藏固定的 user@hostname 信息。

hide username and hostname