MENU

Ubuntu 16.04 下 Typecho 部署

Cover
站点购买的时候腾讯只送了 20G 云盘,当我购买第二款机器的时候额度提升到了 50G。加上机器当时使用的是 Ubuntu 14.04 而且使用的是 HTTP 协议,所有最近我将系统重装并开启了全站 HTTPS。下面是整个过程的记录。

准备工作

在重装系统完成后,第一个任务更新软件列表和各类软件。

$ sudo apt-get update
$ sudo apt-get upgrade

接下来就是配置基础的 PHP 环境:

$ sudo apt-get  install nginx php7.0 php7.0-fpm phpmyadmin

检查 nginx 和 PHP 服务的运行情况:

$ sudo systemctl status nginx
$ sudo systemctl status php7.0-fpm

如无异常它应该会出现绿色的 active (running) 的提示。

接下来我们修改 php.ini 中默认的上传附件大小限制。首先就是查找文件位置:

$ locate php.ini 

终端显示结果大致如下:

/etc/php/7.0/cli/php.ini
/etc/php/7.0/fpm/php.ini
/usr/lib/php/7.0/php.ini-development
/usr/lib/php/7.0/php.ini-production
/usr/lib/php/7.0/php.ini-production.cli

接下来我们对 /etc/php/7.0/fpm/php.ini 文件进行编辑:

$ sudo vim /etc/php/7.0/fpm/php.ini

配合 vim 查找命令找到下面几个参数并按需修改:

upload_max_filesize = 20M;
post_max_size = 40M;
max_execution_time=300;

保存配置后我们需要重启 php-fpm 服务:

$ sudo service php-fpm restart

安装 MySQL 数据库:

$ sudo apt-get  install mysql-server mysql-client

安装时候会出现紫色背景的界面设置MySQL的root账户的密码,建议设置一个复杂的密码。

安装完MySQL之后最好运行一次安全配置向导,通过该向导可以检查root账户的密码、禁止MySQL的远程访问、移除匿名用户和测试的数据表等等。

$ mysql_secure_installation

最后,你需要在 MySQL 中创建一个数据库用与站点数据保存。另外,数据库编码方式最好选择 uft8mb4 ,这样才能保证 emoij 表情能够正常显示。

搭建站点

准备工作结束后,接下来就是正式搭建站点了。我们先将 typecho 安装包上传到服务器。

$ scp -i sshkey -r file username@ip:filepath

上传完成后我们需要更改该程序的权限:

// 假设目录为 /home/ubuntu/typecho   
$ sudo chmod 777 /home/ubuntu/typecho   
$ sudo chmod 777 /home/ubuntu/typecho/usr 
$ sudo chmod -R 777 /home/ubuntu/typecho/usr

紧接着将站点证书上传至服务器并拷贝到 /etc/nginx/ssl 目录下。最后,我们修改 Nginx 配置文件。

// 切换目录
$ cd /etc/nginx/sites-available 

// 修改前先备份 default
$ sudo cp default default.bak

// 编辑配置文件
$ sudo vim default

使用下面内容覆盖旧有配置:

server {
    listen      80;
    server_name bignerdcoding.com;
    return 301  https://$host$request_uri;
}

server {
    listen 443;
    server_name bignerdcoding.com;
    ssl on;
    ssl_certificate /etc/nginx/ssl/xxx.crt;
    ssl_certificate_key /etc/nginx/ssl/xxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    root /home/ubuntu/typecho;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    location / {
        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }

    location ~ .*\.php(\/.*)*$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

重启 Nginx 服务:

$ sudo service nginx restart

访问 https:// domin.com/install.php ,完成 Typecho 安装配置。如果不出意外,你的站点已经可以通过域名访问并且支持 HTTPS 协议。