Synology NAS(DS220+)上にWebサーバを構築し、PHPでWebアプリを作成して公開するまでに調査した内容を忘れないよう以下に纏めておきます。
Synology NAS特有の設定
所有者/パーミッションの設定
設定する所有者は 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
その他
これら以外にも増えた場合、逐一追記する予定。