typecho搭建、ssl证书安装以及php5.4升级7.2
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
由于typecho需要php安装mysql扩展,而php7.0后不再支持mysql扩展了,所以我们需要改一下文件。
打开build目录下的config.inc.php
,找到$db = new Typecho_Db('Mysql', 'typecho_');
,将其中的Mysql
改为Pdo_Mysql
,保存即可。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
手动升级需要敲命令,我现在都是用面板。
还没用过面板,有空试试