TksLab

IT系ブログ

【CakePHP】XserverにCakePHP3.6プロジェクトをアップロードする

スポンサーリンク

ローカル環境(XAMPP)で開発していたプロジェクトが

落ち着いてきたのでいったんサーバにアップしてみることにしました。

 

以前も使ったことがあったので、Xserver(エックスサーバ)を契約しました。

 

ということでアップしてみようと思ったのですが、

情報が少なく、はまりました。

 

以下、メモを残しておきます。

ローカルからリモート環境にファイルをアップできる「WinSCP」を使用したいので、Xserver側でSSH設定が必要です。

※「WinSCP」は別途インストールが必要です。

 

SSH設定

XserverのサーバパネルからSSH設定を開き、

設定をONにします。

f:id:tkslab:20190124233259p:plain

 

公開鍵認証用鍵ペアの生成で適当な「パスフレーズ」(パスワード)を入力して、登録を確定します。(右隣の「公開鍵登録・設定」は触らなくて良いです。)

その後、秘密鍵をダウンロードします。

f:id:tkslab:20190124233340p:plain

 

サーバにファイルアップロード

「WinSCP」でファイルをアップロードします。

以下のように必要な情報を入力します。

ポートは「10022」にする必要があります。

f:id:tkslab:20190124232901p:plain

 

設定ボタンを押して、SSHの認証で秘密鍵を設定します。

先ほどダウンロードした秘密鍵ファイルを選択します。

f:id:tkslab:20190124233942p:plain

 

 ログインボタンを押してパスワードを聞かれたら、先ほどXserver設定したパスワードを入力します。

 

アップロードするディレクトリ構成は以下のようになります。

/home/サーバID/独自ドメイン/public_html/ に、CakePHPのwebrootの中身を配置します。

f:id:tkslab:20190124234253p:plain

 

 /home/サーバID/独自ドメイン/cake/ に、CakePHPのwebroot以外を配置します。

※「cake」ディレクトリは自分で作るのですが、名前は何でも良いみたいです。

f:id:tkslab:20190124234651p:plain

 

/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」に変えたところ正常に表示することができるようになりました。

 

 色々と問題があるかもしれませんが、まあ表示できたので良しとしましょう。