この記事は?
cakePHP3のwebアプリをローカル環境(xampp)で開発していました。
ひと段落ついたので、そろそろVPSにgit cloneしてローカルから離れてみました。
その時、サーバなどの設定でいろいろと苦労したので、忘備録もかねて注意点をメモしておきます。
前提
VPS : ConoHa
OS : CentOS Linux release 7.3.1611 (Core)
PHP:HP 7.0.20 (cli)
Apache:Apache/2.4.6 (CentOS)
cakePHP3
gitignoreファイルを見てみると、なぜかvendorディレクトリが管理対象外になっています。
これがないと当然動かないので、リモートのプロジェクトにもどうにかしてコピーします。
自分はWinSCPを使ってコピーしました。
httpd.conf
公式ドキュメントにも書いてありますが、DocumentRootは"webroot"にしましょう。
AllowOverrideで、.htaccessの上書きを許可するかどうかを設定しましょう。
ちなみに、以下のようにルートディレクトリで設定したからと言って安心しては以下ません。
<Directory />
Options FollowSYmLinks
AllowOverride All
<Directory>
もしhttpd.confのもっと下の行にサブディレクトリ内での上書き権限をAllowOverride None
とかしてる場所があるかもしれないので気を付けましょう。
自分はそれに気づかず数時間無駄にしました。
.htaccess
ls -la
コマンドで、.htaccessを見つけたら忘れずに設定しましょう。
サブディレクトリに.htaccessを見つけた場合、設定が上書きされるので注意しましょう。
パーミッション
chmod -R 775 appName
で権限を変更することができます。
しかし、gitは「権限の変更」も差分として認識するので、このままだとgit status
したときに大量の差分が出てきてしまいます。
このサイトのやり方に従い、パーミッションは無視するように設定しておきます。
404エラーが出たら
公式ドキュメントに従い、"mod_rewrite"がロードされているかを確認しましょう。
自分はhttpd.confの一番下に、下記を追加しました。
LoadModule rewrite_module modules/mod_rewrite.so
ちなみに、"mod_rewrite"の場所はfind / -name "mod_rewrite"
で探せます。
apache
極稀にあることですが、サーバは確かに起動してますか?
httpd.confの設定を変更した後はリスタートしましたか?
ファイヤーウォール
切らなくて大丈夫です。
systemctl status firewalld
で起動されてるかを確認しましょう。