1.配置PHP+Mysql+Nginx开发环境

参考Centos7下配置PHP + MySQL + Nginx开发环境

注:typecho要求:

  • php5.4以上
  • Mysql, PostgreSQL, SQLite 任意一种数据库支持,并在PHP中安装了相关扩展(mysql即可,如何安装扩展稍后会说)
  • CURL或者Socket扩展支持(curl即可,一般nginx自带)
  • mbstring或者iconv扩展支持(mbstring即可,这个我没有配,不过也正常运行了,应该也是自带)

2.下载安装

下载typecho,目前最新版本为2.4.3

新建目录/var/www,将typecho解压后拷贝到此目录下。(/var/www/build/)

修改nginx.conf,参考安装Typecho

保存并重新加载配置文件

在mysql中新增typecho数据库(如果不提前建库,引导安装的时候会出现数据库无法连接的问题)

访问自己的域名即可出现引导安装页面

注:如果是使用阿里云的服务器,出现无法连接的错误,一般是需要用到的端口没有配置安全组,在阿里云中配置即可(如3306端口)。

3.SSL证书安装

证书申请下来以后,下载,一个.key,一个.pem

把ssl模块编译进nginx,参考Nginx如何安装https-ssl证书 (否则重启nginx服务会报错unknown directive "ssl"

按阿里云的文档修改nginx.conf:Nginx/Tengine服务器安装SSL证书 (此处应该把cert目录移动到conf目录下,否则重启nginx服务会出现error:2006D080:BIO routines:BIO_new_file:no such file这样的错误)

让http链接跳到https,参考:nginx配置ssl实现https访问 小白文

然后重启nginx服务,就安装好了 (这里我还报了一次错could not open error log file,是因为没有权限,命令前面加su就好了)

注:记得放行443端口!

贴一下部分nginx.conf的代码:

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen          80;
        server_name     localhost;
        rewrite ^(.*) https://$host$1 permanent;
    }
    server {
        listen 443;
        server_name localhost;
        root            /var/www/build;
        index           index.php;

        ssl on;
        ssl_certificate   cert/a.pem;
        ssl_certificate_key  cert/a.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php$1 last;
        }

        location ~ .*\.php(\/.*)*$ {
            include fastcgi.conf;
            fastcgi_pass  127.0.0.1:9000;
        }

        access_log logs/name.log combined;
    }
}

其中localhost换成你的域名,a.pem、a.key对应的换成你的下载下来的两个文件的名字,name.log是你存放nginx访问日志的位置。

4.php5.4升级php7.2

参考:CentOS 7升级php5.4到php7.2

由于typecho需要php安装mysql扩展,而php7.0后不再支持mysql扩展了,所以我们需要改一下文件。

打开build目录下的config.inc.php,找到$db = new Typecho_Db('Mysql', 'typecho_');,将其中的Mysql改为Pdo_Mysql,保存即可。

文章目录