前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 16.04 下 Typecho 部署

Ubuntu 16.04 下 Typecho 部署

原创
作者头像
BigNerdCoding
修改2018-03-20 16:00:53
2.1K3
修改2018-03-20 16:00:53
举报
文章被收录于专栏:BigNerdCodingBigNerdCoding
Cover
Cover

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

准备工作

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

代码语言:txt
复制
$ sudo apt-get update
$ sudo apt-get upgrade

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

代码语言:txt
复制
$ sudo apt-get  install nginx php7.0 php7.0-fpm phpmyadmin

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

代码语言:txt
复制
$ sudo systemctl status nginx
$ sudo systemctl status php7.0-fpm

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

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

代码语言:txt
复制
$ locate php.ini 

终端显示结果大致如下:

代码语言:txt
复制
/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 文件进行编辑:

代码语言:txt
复制
$ sudo vim /etc/php/7.0/fpm/php.ini

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

代码语言:txt
复制
upload_max_filesize = 20M;
post_max_size = 40M;
max_execution_time=300;

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

代码语言:txt
复制
$ sudo service php-fpm restart

安装 MySQL 数据库:

代码语言:txt
复制
$ sudo apt-get  install mysql-server mysql-client

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

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

代码语言:txt
复制
$ mysql_secure_installation

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

搭建站点

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

代码语言:txt
复制
$ scp -i sshkey -r file username@ip:filepath

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

代码语言:txt
复制
// 假设目录为 /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 配置文件。

代码语言:txt
复制
// 切换目录
$ cd /etc/nginx/sites-available 

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

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

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

代码语言:txt
复制
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 服务:

代码语言:txt
复制
$ sudo service nginx restart

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

原文地址

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 搭建站点
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档