自宅サーバーが申し訳程度に速くなりました
SSD
WordPressのデータベースとかコンテンツとかをSSDに配置しました。
SSDはCrucial MX500 250GBです。
従来はHDDだったので死にかけでした。
リバースプロキシ
Dockerでnginxのリバースプロキシを作りました。
ついでにWordpressもDockerにしときました。
Docker Composeで全部一発で環境が整うものだからすごい。
環境構築に役立つウェブページ集
Docker
横着して古い日本語ポエムを参照すると酷い目に会うので注意しましょう。
About Docker CE | Docker Documentation
https://docs.docker.com/install/#server
Install Docker Compose | Docker Documentation
https://docs.docker.com/compose/install/
WordPress
Quickstart: Compose and WordPress | Docker Documentation
https://docs.docker.com/compose/wordpress/
Increase PHP file upload limit · Issue #10 · docker-library/wordpress · GitHub
https://github.com/docker-library/wordpress/issues/10#issuecomment-88389890
DockerのWordpressでアップロードするファイルの上限を変更する方法が書いてある
Nginx(リバースプロキシ)
サブドメインで分けてる構成なら山ほど見るけど、サブディレクトリで分けてる構成って殆ど見ないよね。
Dockerのコンテナ間で通信させてリバースプロキシを作る – ぐるっとぐりっど
http://grugrut.hatenablog.jp/entry/2017/10/15/214322
Module ngx_http_core_module
https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
リバースプロキシ上でclient_max_body_size
を設定しないと1MB以上のファイルをアップロードできなくて死ぬ。
nginxのproxy_passの注意点 — ぺけみさお
https://www.xmisao.com/2014/05/09/nginx-proxy-pass.html
/
の有無で挙動が変わるので.confをコピペしてると死ぬ。
Let’s Encrypt
GitHub – SteveLTN/https-portal: A fully automated HTTPS server powered by Nginx, Let’s Encrypt and Docker.
https://github.com/SteveLTN/https-portal
多分これが1番簡単にHttps対応できると思います。
NextCloud
GitHub – nextcloud/docker: ⛴ Docker image of Nextcloud
https://github.com/nextcloud/docker
Mastodon
1年前くらいのブームで投稿された日本語ポエムの9割は古くて使えないので要注意。
documentation/Docker-Guide.md at master · tootsuite/documentation · GitHub
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Docker-Guide.md
documentation/Production-guide.md at master · tootsuite/documentation · GitHub
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md
環境構築Tips
リバースプロキシ + サブディレクトリ下で動かすWordpress
仮に/wordpress
というディレクトリでWordpressを動かしたいとする。
ただし、サーバーにはルートディレクトリでWordpressが動いている。
まず、proxy_passの末尾/は必要。
インターネットにある大半のポエムはサブディレクトリを考慮していないので/が無い。
/が無いとうまく動かない。
WordPressが生成するhtmlに入っているリンクなどのパスは、当然ルートディレクトリ直下で動いていること前提のパスになる。
特に何もしてないとリンク切れやリダイレクトループになったりして動かない。
そこで、WordpressサーバーのWordpressを「/wordpress
下にインストールされていると思い込んでいる精神異常者」にしてみる。
1 2 3 |
define('WP_HOME', 'https://example.com/wordpress'); define('WP-SITEURL', 'https://example.com/wordpress'); $_SERVER['REQUEST_URI'] = '/wordpress' . $_SERVER['REQUEST_URI']; |
なお、実際のファイルパスが変わったわけではないし、HTTPサーバーは精神異常者ではないのでリバースプロキシ→Wordpressサーバーでは/wordpress
は付けなくていい。
…