【CakePHP】XserverにCakePHP3.6プロジェクトをアップロードする
スポンサーリンク
ローカル環境(XAMPP)で開発していたプロジェクトが
落ち着いてきたのでいったんサーバにアップしてみることにしました。
以前も使ったことがあったので、Xserver(エックスサーバ)を契約しました。
ということでアップしてみようと思ったのですが、
情報が少なく、はまりました。
以下、メモを残しておきます。
ローカルからリモート環境にファイルをアップできる「WinSCP」を使用したいので、Xserver側でSSH設定が必要です。
※「WinSCP」は別途インストールが必要です。
SSH設定
XserverのサーバパネルからSSH設定を開き、
設定をONにします。
公開鍵認証用鍵ペアの生成で適当な「パスフレーズ」(パスワード)を入力して、登録を確定します。(右隣の「公開鍵登録・設定」は触らなくて良いです。)
その後、秘密鍵をダウンロードします。
サーバにファイルアップロード
「WinSCP」でファイルをアップロードします。
以下のように必要な情報を入力します。
ポートは「10022」にする必要があります。
設定ボタンを押して、SSHの認証で秘密鍵を設定します。
先ほどダウンロードした秘密鍵ファイルを選択します。
ログインボタンを押してパスワードを聞かれたら、先ほどXserver設定したパスワードを入力します。
アップロードするディレクトリ構成は以下のようになります。
/home/サーバID/独自ドメイン/public_html/ に、CakePHPのwebrootの中身を配置します。
/home/サーバID/独自ドメイン/cake/ に、CakePHPのwebroot以外を配置します。
※「cake」ディレクトリは自分で作るのですが、名前は何でも良いみたいです。
/public_html/index.phpを以下のように編集します。
$cakephpRoot = realpath(dirname(__FILE__) . '/../cake'); // Check platform requirements require $cakephpRoot . '/config/requirements.php'; ~ require $cakephpRoot . '/vendor/autoload.php'; ~ // Bind your application to the server. $server = new Server(new Application($cakephpRoot . '/config'));
「'/../cake'」の部分を自分で作成したディレクトリ名にします。
基本的にはこれで動くはずです。
動作確認
実際にブラウザからURLを入力してページを開いてみると、「Asia/Tokyo」のタイムゾーン設定が見つかりません、のようなエラーが出る場合があります。
XserverのMySQLを覗いてみてもmysqlデータベースがなく、sqlファイルをインポートしてタイムゾーンの設定ができないみたいです。
タイムゾーンの設定を見てみると「SYSTEM」という設定になっていました。(JST?)
4時間くらいはまって、仕方ないので、CakePHPの方でapp.phpのdatabaseのタイムゾーンを「SYSTEM」に変えたところ正常に表示することができるようになりました。
色々と問題があるかもしれませんが、まあ表示できたので良しとしましょう。