Contents

typecho 安装相关

Contents
安装环境: Ubuntu 18.04 (root)
  1. 安装 php 以及 php 相关依赖包

    apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl php-sqlite3 sqlite3
  2. 安装 nginx

    apt install nginx	
  3. 配置 nginx/php

    # 1. 安装好 nginx 后,我们编辑站点配置文件,把里面的 server_name 的 example.com 修改成你自己的域名 (当然域名要设置好 A 记录解析到当前服务器上), 当然直接默认地使用 ip 地址也可以.
    vi /etc/nginx/sites-available/default
    
    # 2. 同样编辑站点配置文件 /etc/nginx/sites-available/default ,在 server 的大括号中添加如下内容。
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass             unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
    # 3. 之后重启一下 nginx, 
    systemctl restart nginx.service
    
    # 4. 在 /var/www/html 目录下创建一个 info.php 文件,写入
    <?php
       phpinfo();
    ?>
    
    # 5. 再访问你的域名 /info.php,如果显示 php 版本相关信息页面, 就是成功了。
  4. 开始安装 typecho

    # 在/var/www/html 里面执行 
    wget https://typecho.org/downloads/1.1-17.10.30-release.tar.gz
    tar -zxvf 1.1-17.10.30-release.tar.gz
    mv build typecho
    chown -R www-data:www-data . 
    chmod -R 755 typecho
    
    # 注意: 这个链接是 typecho 正式版的下载链接, 最新版可以在官网里面找到.
    # 如果想要下载 typecho 开发版的, 可以把上面的 wget 语句换成下面的:
    wget http://typecho.org/build.tar.gz
  5. 配置 typecho

    1. 另外还建议修改 */etc/nginx/sites-available/default* 将站点根目录修改为 */var/www/htm*l/type­cho并重启一下 ng­inx。

    2. 之后访问 https://yourdomain/install.php (如果没改根目录的话就是/type­cho/in­stall.php)配置时,数据库名字,用户名,密码都改成之前创建数据库时使用的参数就好,如果没有什么其他的问题,完成几步操作之后便安装成功了。

    3. 伪静态设置

      默认的 type­cho 网页链接中总带着一个 in­dex.php,那么有没有办法把这个链接美化一下呢?我们需要开启 type­cho 的伪静态。首先编辑 ng­inx 的站点文件,在 server 大括号中加入

      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;
      }
      
      # 然后在 typecho 控制面板的设置 / 永久链接中打开启用地址重写功能 (可能会提示不可用,还是选择应用即可) 然后重启一下 nginx。再看,index.php 已经没了。
    4. CDN 保留真实 id

      在 Type­cho 站点根目录里的 con­fig.inc.php 添加如下内容:

      if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
      {
          $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
          $_SERVER['REMOTE_ADDR'] = $list[0];
       }
  6. 如果是 Debian 系统:

    1. 安装 php 和 SQLite3

      #Debian 8系统
      #添加源
      echo "deb http://packages.dotdeb.org jessie all" | tee --append /etc/apt/sources.list
      echo "deb-src http://packages.dotdeb.org jessie all" | tee --append /etc/apt/sources.list
      #添加key
      wget --no-check-certificate https://www.dotdeb.org/dotdeb.gpg
      apt-key add dotdeb.gpg
      #更新系统
      apt-get update -y
      #安装PHP 7和Sqlite 3
      apt-get install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y
      
      #Debian 9系统
      #更新系统
      apt-get update -y
      #安装PHP 7和Sqlite 3
      apt-get install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y
    2. 下载 typecho

      mkdir /typecho && cd /typecho
      #以下为最新稳定版
      wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
      tar zxvf 1.1*
      mv ./build/* ./
      rm -rf 1.1* buil*
      chmod -R 755 ./*
      chown www-data:www-data -R ./*
  7. 总结:

    1. 小问题

      正式版自带的备份功能是有 bug 的, 有可能备份出来的 dat 文件不能够恢复…

      这个时候可以是安装开发版来恢复:

      安全升级方法 其实 Typecho 的升级还是很简单的,开发版官方链接 下载最新的 Typecho 开发版压缩包,解压缩后只需要上传下面的目录和文件即可完成更新升级了。

      /admin/
      /var/
      /index.php
      注意:请千万不要删除/usr/目录,因为这个目录包含了你的主题,插件和上传的文件,它无需被升级
      
      不过,为了保险期间还是第一时间的备份了这两个目录和一个文件的,只要重命名即可了,如:
      
      /admin_bak/
      /var/
      /index.php
      这样以来,就不拍升级造成的可怕后果了,一旦失败只需要删除上传的目录和文件恢复备份的即可。
      
      完成升级后排错
      当你没有进行下面的步骤时,访问前台页面可能回出现错误提示,请不要管他们,直接访问你的 admin 页面,按提示完成升级即可恢复正常。
      
      用一个具有管理员权限的用户登录后台,系统会提示检测到新版本需要升级,点击完成升级按钮即可完成升级。
      
      注意:如果在升级完成后,进入首页出现 500 或其他错误,请进入 admin 页面禁用所有的插件,并启用默认模板。如果正常,请逐步排查插件或模板存在的问题。

      无法登录后台

      Nginx服务器点击前台链接或者后台登录时出现404, not found
      
      官方给的解决方式是一般的出现这种情况时,nginx.conf里的location设置都是类似这样
      
      location ~ .*\.php$
      要支持pathinfo,要改成
      
      location ~ .*\.php(\/.*)*$

      其实都是 Ubuntu 和 Debian 都是系出同门, 基本操作都是一样的.