安装完Pleroma之后就是安装wordpress了
原本打算标准安装,实际操作一下发现PHP的设置很麻烦,而且wordpress又需要MySQL 5.6+ 或 MariaDB 10.1+,对postgreSQL的支持不是很好。
偏偏Pleroma使用的是postgreSQL。一台服务器运行两种数据库软件资源占用太大。
勉强一下倒不是不能让Wordpress使用postgreSQL,但是过于麻烦了。
所以这里就选择了docker。简单到令人惊讶,只需3个步骤。
1.安装docker
可以参考 Docker —— 从入门到实践,跳过一切麻烦步骤,直接官方一键脚本
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
启动docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
设置一下用户,把当前用户加入允许使用docker的docker组
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
最后跑一下测试看看是不是成功了
$ docker run --rm hello-world
输出了一大堆东西Hello from Docker!之类的,就成功了
2.部署并启动wordpress
参考知乎,一个文件解决
先安装docker-compose
apt install docker-compose
选择合适的目录创建一个文件
docker-compose.wordpress.yml
内容如下
|
运行
docker-compose -f docker-compose.wordpress.yml up -d #后台运行
docker-compose -f docker-compose.wordpress.yml down #停止并删除服务
wordpress 就运行在了8000端口,访问ip:8000即可看到 但是这么使用不安全,也很麻烦。
前面我安装了pleroma,过程中已经一并安装了nginx,并设置好了https证书,所以只需直接使用nginx做一个反代 如果没有https证书,现场领一个
certbot certonly --standalone --preferred-challenges http -d 域名
然后继续步骤 创建文件wordpress.conf放置在/etc/nginx/conf.d/
server { server_name blog.根域名; listen 443 ssl http2; listen [::]:443 ssl http2; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; ssl_trusted_certificate /etc/letsencrypt/live/根域名/chain.pem; ssl_certificate /etc/letsencrypt/live/根域名/fullchain.pem; ssl_certificate_key /etc/letsencrypt/根域名/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; ssl_prefer_server_ciphers off; # In case of an old server with an OpenSSL version of 1.0.2 or below, # leave only prime256v1 or comment out the following line. ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; # the nginx default is 1m, not enough for large media uploads client_max_body_size 16m; ignore_invalid_headers off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://127.0.0.1:8000; } } |
最后重启一下nginx,收工
systemctl restart nginx