Webアプリを公開するまでの調査内容まとめ

Synology NAS(DS220+)上にWebサーバを構築し、PHPでWebアプリを作成して公開するまでに調査した内容を忘れないよう以下に纏めておきます。

Synology NAS特有の設定

公開ディレクトリへの書き込み権限

デフォルトでは公開ディレクトリへの書き込み権限がないため設定が必要。

以下を参考にしました。
kb.synology.com

PHPエラーログの出力設定

デフォルトではPHPエラーログが出力されないため設定が必要。

以下を参考にしました。
skdavis.net

所有者/パーミッションの設定

設定する所有者は http:http とし、パーミッションは以下とします。

対象 パーミッション
ディレクト 705
ファイル 604
.htaccess 604
.env 400

以下を参考にしました。
www.nedia.ne.jp
mikimikan.com

所有者/パーミッション再帰的変更

所有者の変更

再帰的にファイル/ディレクトリの所有者を変更する場合、以下のコマンドを実行します。

sudo chown -R [ユーザ]:[グループ] [ファイル or ディレクトリ]

例) foursquare ディレクトリ以下、全てのファイル/ディレクトリの
所有者を http ユーザ 、http グループに変更する場合:

sudo chown -R http:http foursquare

パーミッションの変更

再帰的にファイル/ディレクトリのパーミッションを変更する場合、以下のコマンドを実行します。

sudo find [ディレクトリ] -type d -exec chmod [パーミッション] {} \;
sudo find [ディレクトリ] -type f -exec chmod [パーミッション] {} \;

例) foursquare ディレクトリ以下、全てのディレクトリのパーミッション705 に変更する場合:

sudo find foursquare -type d -exec chmod 705 {} \;

例) カレントディレクトリ以下、全てのファイルのパーミッション604 に変更する場合:

sudo find ./ -type f -exec chmod 604 {} \;

例) カレントディレクトリ以下、全てのPHPファイルのパーミッション604 に変更する場合:

sudo find ./ -name \*.php -type f -exec chmod 604 {} \;

以下を参考にしました。
qiita.com
mirrorshades.jp

本番環境にデプロイする際の composer コマンド

本番環境にデプロイする際、余計なファイルを配置しないよう、以下の composer コマンドを実行します。

composer install --optimize-autoloader --no-dev

以下を参考にしました。
cpoint-lab.co.jp

.htaccess ファイルによるアクセス制限

.htaccess ファイルによって、.env ファイルへのアクセスを制限したい。
検索すると、以下のような書き方をしている記事が多数見つかります。

<Files ".env">
    Order deny,allow
    Deny from all
</Files>

一方、apache 2.4 では、以下のような書き方をします。

<Files ".env">
    Require all denied
</Files>

間違えると 403 Forbidden でエラーとなります。
私の場合、ずっとパーミッション関係を疑い、無駄に時間を浪費してしまった...

以下を参考にしました。
www.softel.co.jp

その他

これら以外にも増えた場合、逐一追記する予定。