edo1z blog

プログラミングなどに関するブログです

Amazon Lightsail

aws.amazon.com

月額350円から使える月額固定のVPSサーバ。料金従量制で細かいとめんどくさいときによさそう。 Wordpressとかを一瞬でセットアップしたりもできる。今回は、BitnamiというLAMP環境全部ついてるやつを使ってみた。XAMPPみたいな感じだった。 PHP、MySQLが若干だけ古いもののPHP7だし、Apache2.4でNginxではないものの、とりあえず全部設定してあるので非常に楽です。

ほぼエックスサーバ並に設定は簡単かなと思います。若干の難点は、独自ドメインに対するSSL設定がちょっと大変な点ですかね。 エックスサーバが簡単すぎるだけですが、Let'sエンクリプトを普通にダウンロードして、ゴニョゴニョやる必要があります。

httpd.confとか、php.iniとかは下記にいました。

/opt/bitnami/apache2/conf/httpd.conf
/opt/bitnami/php/etc/php.ini

phpmyadminちゃんもいます。

ちなみに、デフォルトだと、アップロードに時間がかかると、下記のような408エラーにすぐなります。20秒もまってくれない感じがあります。 また、アップロードサイズにも40MBという制限がありました。

Request Timeout
Server timeout waiting for the HTTP request from the client.

408エラーに対しては、httpd.confに下記を追加したら、出なくなりました。15とか60というのは秒です(多分)。

RequestReadTimeout header=15 body=60

また、アップロードサイズは、php.iniの下記を修正して、php-fpmを再起動したら大丈夫でした。

post_max_size = 500M
upload_max_filesize = 500M
memory_limit = 512M
max_execution_time = 600

httpdとphp-fpmを再起動するのは下記です。

sudo /etc/init.d/bitnami restart apache
sudo /etc/init.d/bitnami restart php-fpm

Let's Encryptの利用方法について

昔下記にメモりました。といっても古い情報なので、本家サイトも見ます。

blog.logicky.com

certbot.eff.org

やってみる

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-apache 

インストールされた

$ certbot --version
certbot 0.31.0

bitnamiのapacheをとめてから、certbotを動かして証明書を取得する

$ sudo /etc/init.d/bitnami stop apache
$ sudo certbot --apache
$ sudo /etc/init.d/bitnami start apache

これで証明書取得できたし、勝手に証明書を反映までしてくれてるんだけど、Bitnamiではなく、標準のapahceの設定を書き換えてるっぽいので、意味なかった。ちなみに、bitnamiのapacheを止めないで、certbotを実行すると、apache起動しようとしたけどダメだった幽霊のようなプロセスが残っていまして、bitnamiのアパッチが起動できなかったので、プロセスを探してkillしたらできました。

標準のapacheを変えてくれたので、直接的には無意味だったのですが、どう編集したらいいかが分かるのでよかったです。certbotで証明書取得時に、下記のような文字列が出てきますので、ここにあるファイルを開くと、設定内容が書いてあります。

Redirecting vhost in /etc/apache2/sites-enabled/000-default.conf to ssl vhost in /etc/apache2/sites-available/000-default-le-ssl.conf

上記のconfに書いてある設定を、/opt/bitnami/apache2/conf/bitnami/bitnami.conf に書いたら出来ました。

自動更新

ドライランはテストです。

$ sudo certbot renew --dry-run

エラーになりますね。やっぱり、apacheを止めて、renewして、apache restartが必要なようです。

/etc/cron.dに、certbotというファイルがあるので、それをコピーして、certbot_renewというのを作って下記を設定しました。

0 3 1 * * root sudo /etc/init.d/bitnami stop apache; sudo certbot renew >> /var/log/cron.log 2>&1; sudo systemctl restart apache2; sudo systemctl stop apache2; sudo /etc/init.d/bitnami start apache

謎の再起動後の停止をしてますが、なんかcertbotが勝手に起動した標準のapache2を、再起動しないで停止しようとしても止まらなかったんです。。