SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

AWS lightsailでダウングレードをするための手順と、php.ini・post_max_sizeとupload_max_filesizeの更新方法【Wordpress】

AWS lightsailでWordPressインスタンスをアップグレードしたのもの、ダウングレード(スケールダウン)するための方法は公式的にありません。

この記事では、WordPress + AWS lightsailで構築されたブログのダウングレード方法についてを記載します。

AWS lightsailでのサーバインスタンスのアップグレードの方法

snapshot(スナップショット)から新しいインスタンスを生成し、静的IPを付与すれば完了。

非常に完結にアップできるので、ありがたい。

が、ダウングレードには一手間必要。

lightsail Wordpressのスケールダウン、ダウングレードする方法

Wordpressをlightsailを利用していて、プランを下げる方法について書きます。

スナップショットから下げる方法はなく、自力で再設定する必要があります。

主に以下の手順となります

  1. インスタンスを新規で起動(料金プランを選択) or 下のプランのスナップショットからインスタンスを作成
  2. WPにログインする。プラグインを追加する
  3. WPのエクスポートをプラグインを用いて行う
  4. 新規起動したインスタンスFilezillaなどでアクセスして「php.ini」ファイルのアップロードサイズの変更をする
  5. 静的IPを変更して、新しいインスタンスにアタッチする
  6. 新規インスタンスでログインをして、プラグインを利用してアップロードする

※ $3.5プランのスナップショットからの作成は、サーバの中身(SSLの設定、certbotなども引き継ぐはずなので設定不要 ※ ただ、静的IPを付与したらリダイレクトが終わらずにアクセスできない。

1. インスタンスを用意する

希望のプランのインスタンスを選択し、起動します。

  • 完全新規で作成する
  • スナップショットから作成

以上の2つの選択肢があります。

All-in-One WP Migrationを利用する

プラグインであるAll-in-One WP Migrationを利用します。

エクスポート時に512Mを超えると、課金する必要があるようです。

f:id:Saku-Saku:20210302204714p:plain

エクスポートで「ファイル」を選択して、ダウンロードします。

(今回は400Mぐらいでした。)

移行先のwordpressでインポートの設定をする

移行先でも同様のプラグインを導入してインポートの用意をします。

AWS lightsailでのwordpressのファイルアップロード上限は40Mになっている

しかし、ここで一つの壁が。

ファイルのアップロードサイズが制限されてしまっています。

これを更新しないとアップロードができません。

今回は、FTPソフトを利用してアップロードします。

filezillaでダウンロード・アップロードする。

f:id:Saku-Saku:20210930014429p:plain

接続先の選択は、上記の左上にあるボタンから。

bitnamiに直接アクセスする必要があるので、

  • SSH Key (.pem download)
  • host (ex: 52.000.000.000)

の情報を元にアクセスします。

f:id:Saku-Saku:20210302213734p:plain

.pemはligtsailのトップ、以下の場所からダウンロードできます。

f:id:Saku-Saku:20210302205256p:plain

ダウンロードしたpemファイルを選択して、接続をします。

f:id:Saku-Saku:20210930014913j:plain

bitnamiのパスワード

cat ./bitnami_credentials

php.iniのありか

/opt/bitnami/php/etc/ 配下にあります。

変更する内容

upload_max_filesize = 12M
post_max_size = 13M

これらの値を任意の設定にします。

今回は 512Mにしました。

lightsailのインスタンスの再起動をする

その後、lightsailインスタンスの再起動をします。

再起動をしないと、読み込まれません。

静的IPの付け替え

  • 静的IPを付け替えます
  • ネットワークの分散をしている場合、コントリビュータの変更も必要です

具体的な作業

lightsailの静的IPの画面で、 デタッチの完了 新しいアタッチの完了 をする。

ディストリビューションの方は、

オリジンの付け替えをする

アップロードできるようになるのでインポートする

インポートして、実行すれば完了です。

※ 静的IPをアタッチ前にインポートすると、画像のsrcのURLなどがホスト名を直接指定になってうまく表示されないものがでてくる

参考URL

https://isotropic.co/how-to-increase-the-wordpress-upload-limit-on-an-aws-lightsail-bitnami-installation/

https://kinsta.com/jp/blog/wordpress-maximum-upload-file-size/ https://qiita.com/RHM/items/a80834dafb6a66d25d30

注意点

インスタンスの作成を0からにすると、

http: ホストとなってしまう。

既存のスナップショットからのインスタンス作成をするのが吉。 ($3.5のインスタンスから作成すると全て対応可能)

https周りの設定がしていないと、 All-inoneでのインストール時に不具合がでそう。

インスタンスを0からたてて

インポート、

SSLの設定だけ再度行った。

Really simple SSLプラグインを入れて

chmod 666の対象とする「wp-config.php」だけ 手動で探して更新。

なぞ。

プラグイン画面のReally simple SSLの有効化 を完了して、なんとかなった。

プラグインは、削除する必要があるので

既存と見比べて不要なものを削除する。

regexで、記事のホスト部分をドメインに置換する(これ鬼なので、なんとかならないか。。。?)

結論

ドメインをデタッチ、アタッチしてから、 その状態でインポートする。

新しいインスタンスかつ、アタッチ状態でインポートすれば

ホスト問題などはおこらない

事前にホスト名だけの状態でのチェックは、できないかも?

履歴

2021/9 再度ダウングレード。

$20プランから$5へ。

エクスポート先が、dropboxなどクラウド先を選択可能になっていた。

「ファイル」とすれば通常のファイルとしてダウンロード可能になる。

f:id:Saku-Saku:20210930013307p:plain

GithubActionsでLoadError: libffi.so.6と怒られてRspecが実行できない場合の対処方法

結論

githubactionsでLoadError: libffi.so.6のエラーが出ている場合、

以下を実行させると一応通るようにはなる.

sudo ln -s /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0 /usr/lib/x86_64-linux-gnu/libffi.so.6

原因

github actionsのosのubuntsuを20.4にアップしているのが問題のよう。

gemとかrailsが libffi.so.6をみてて、20.4のubuntsuは7か8をみているようです。

Run bundle exec rails db:schema:load
rails aborted!
LoadError: libffi.so.6: cannot open shared object file: No such file or directory - /home/runner/work/coffee-stands/coffee-stands/vendor/bundle/ruby/2.6.0/gems/ffi-1.14.2/lib/ffi_c.so

f:id:Saku-Saku:20210302172725p:plain

たぶんこれが来たんでしょうね。

対処方法の詳しい版

githubactionsの yarn installとか、bundle installの実行後に、以下をやっておくとlibffi.so.6をみるようになる。

一時的な対応としてはよさそうだけど、根本的によろしくはないと思うので、一時対応をしたいようということで。

参考

https://github.com/ffi/ffi https://www.chazine.com/archives/4166

iOSアプリリリース手順【swift】

iOSアプリのリリース手順まとめ

アーカイブする

上部メニューから、

Product > Archive

で、Distribute App

Validate Appする

検査に手元で通してからuploadになるので、先にValidate App.

エラーがでた。

App Connect

にてマイapp > +

で新しく事前にアプリをつくっておく

App Connectに接続していれば、uploadとかでOK 自動で署名もしてくれる。

RailsにTailwindを簡単に導入する

公式サポート

https://github.com/rails/tailwindcss-rails

で導入が公式だしよさう

./bin/bundle add tailwindcss-rails

./bin/rails tailwindcss:install

の2コマンドで楽々動く。

yarnだとうまく読み込まなかったりしたので、楽。

posgresのバージョンアップ対応

12->13でつまったりしたので、メモ

rails serverで接続できない

posgres 5432エラー的なメッセで進めない。

could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

brew postgresql-upgrade-database

これがとおるとDBのデータもposgres自体も13になって一致して動かせるぽい。

が、動かず

Error: Upgrading postgresql data from 12 to 13 failed!
==> Removing empty postgresql initdb database...
==> Moving postgresql data back from /usr/local/var/postgres.old to /usr/local
Error: Failure while executing;

エラーが。

brew update

してから

brew doctor

brew uninstall --force postgresql

cd /usr/local/var/

rm -rf postgres

initdb /usr/local/var/postgres
-bash: initdb: command not found

 brew install postgresql

brew postgresql-upgrade-database
Error: postgresql data already upgraded!

postgres -D /usr/local/var/postgresが動かない

FATAL: role "postgres" does not exist

のエラーが。

/usr/local/Cellar/postgresql/13.2/bin/createuser -s postgres

で解決。

ref

https://gist.github.com/dnovais/c6c6894b95d764be2aca9736436edd0e

https://qiita.com/Ksk8358/items/6629f597ddf7f4ccd97c

https://qiita.com/sibakenY/items/407b721ad1bd0975bd00

DNS設定を適用するためのカスタムネームサーバ

DSNの設定をする際に疑問に思うのが、どのDNSが適用されるのか、ということです。

google domainsのDNS, AWS lightsailのDNSゾーンの設定があったときに

どちらの設定がどう上書きされて適用されるのかわかりませんでした。

カスタムネームサーバの情報が重要。

カスタムネームサーバによって示されている2つのアドレスを使用することで、どちらが優先的に利用されるかがわかります。

lightsailの情報を適用したい場合は、lightsailのDNSサーバによって示されているカスタムネームサーバの情報を

google domainのDNSの設定画面に入力します。

こうすることで、AWS lightsailの方の設定が優先的にになります。

このボタンに注意

f:id:Saku-Saku:20210202020906p:plain

これをおすと、google domainの設定を優先するように変更されます。

僕はこれを理解しないままクリックして適用してしまい、設定がおかしくなりました。