エックスサーバーでCakePHP4をcomposerからインストールする方法

エックスサーバーでCakePHP4をcomposerからインストールする方法
2023年10月15日2023年10月16日

XSERVERでのウェブ開発は多くの方に選ばれていますが、CakePHPを始めたばかりの方や、サーバー設定が得意でない方にとっては、少し難しく感じることもあるでしょう。そこで、この記事では、XSERVERにCakePHPをインストールする方法を、わかりやすくゆっくりと説明していきます。

実は、適切な手順で進めば、それほど難しくはありません。記事内では、視覚的にも分かりやすいスクリーンショットや、サンプルコードを交えて、皆さんが迷わず進めるようにサポートします。初心者の方でも、心配せずに取り組むことができる内容となっています。

CakePHP4が動作する環境を準備する

CakePHP4をインストールする前に色々環境を整える必要があります。

どこかのディレクトリに作業用ディレクトリを作成してください。

今回はdeployディレクトリを作成してその中で作業します。

/home/sample/sample.com/deploy

エックスサーバー内のモジュールが古かったりするのでCakePHP4が動作するバージョンのPHPやcomposerをセットアップします。

前提条件

サーバー内にsshコマンドでログインして構築をします。エックスサーバーにsshできることが前提となっていますのでご注意ください。

phpのバージョン変更

コマンドラインのPHPのバージョンは、コントロールパネルから設定したPHPのバージョンが適用されません。

現在のPHPバージョンを確認します。

[sample@sv737 ~]$ php -v
PHP 5.4.16 (cli) (built: Nov  1 2019 16:04:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies

PHP5.4.16はCakePHP4はサポートしていません。PHP8.0以上まで上げる必要があります。

下記コマンドを実行してPHP8.xのバージョンのPHPがあるかをチェックします。

[sample@sv737 ~]$ ls -ltr /usr/bin/php8*
lrwxrwxrwx 1 root root 23  9月  5 11:53 /usr/bin/php8.0 -> /opt/php-8.0.30/bin/php
lrwxrwxrwx 1 root root 27  9月  5 11:53 /usr/bin/php8.0-cgi -> /opt/php-8.0.30/bin/php-cgi
lrwxrwxrwx 1 root root 27  9月  5 11:53 /usr/bin/php8.1-cgi -> /opt/php-8.1.22/bin/php-cgi
lrwxrwxrwx 1 root root 23  9月  5 11:53 /usr/bin/php8.1 -> /opt/php-8.1.22/bin/php
lrwxrwxrwx 1 root root 26  9月  5 11:53 /usr/bin/php8.2-cgi -> /opt/php-8.2.9/bin/php-cgi
lrwxrwxrwx 1 root root 22  9月  5 11:53 /usr/bin/php8.2 -> /opt/php-8.2.9/bin/php

PHP8.1とPHP8.2があるようです。今回はPHP8.1をターゲットに設定を進めたいと思います。

デフォルトだとPHP5.4のバージョンを見に行ってしまうので、独自にパスを作成してPHP8.1を見るように設定します。

# ディレクトリ作成
$ mkdir ~/bin

# ディレクトリ移動
$ cd ~/bin

# シンボリックリンク作成
$ ln -s /opt/php-8.1.22/bin/php php

シンボリックリンクが作成できるかlsコマンドで確認します。

[sample@sv737 bin]$ ls -ltr
合計 2796
lrwxrwxrwx 1 sample members      23 10月 15 15:21 php -> /opt/php-8.1.22/bin/php

作成したパスを見てもらう必要があるので「bash_profile 」ファイルを修正します。

優先的に独自の設定を見てもらう必要があるので下記のように修正します。

# ファイルを開く
$ vi ~/.bash_profile

# 修正箇所
#PATH=$PATH:$HOME/bin
PATH=$HOME/bin:$PATH

修正後は必ず設定を更新するコマンドを実行してください。

$ source ~/.bash_profile
sourceコマンドは「.bash_profile」ファイルを変更のたびに実装してください。

PHPのバージョンを確認します。PHP8.1に変更になっていることを確認してください。

[sample@sv737 ~]$ php -v
PHP 8.1.22 (cli) (built: Aug 15 2023 11:02:44) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.22, Copyright (c) Zend Technologies

composerのバージョン変更

次にCakePHP4をインストールするために必要なcomposerの設定をおこないます。

エックスサーバーのデフォルトとしてすでにインストールされていますがバージョン(1.9.1)が古いです。

[sample@sv737 ~]$ composer -V
Composer version 1.9.1 2019-11-01 17:20:17

composerの公式サイトに案内の通りにcomposerをインストールします。

# 公式サイトのコマンドを実行してください
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

bin配下にcomposerを移動させます。

mv composer.phar ~/bin/composer

composerのバージョンが最新になったか確認します。

[sample@sv737 ~]$ composer -V
Composer version 2.6.5 2023-10-06 10:11:52

version 2.6.5と表示されているのでこれで最新を見るようになりました。

CakePHP4のインストール

準備が整ったのでCakePHP4をインストールします。

# 作業ディレクトリに移動
$ ~/sample.com/deploy

# cakePHP4インストール(プロジェクトフォルダ作成なし)
$ composer create-project --prefer-dist cakephp/app:"4.*" .

ご自身のgitからCakePHP4をクローンする場合は下記を実行します。

# 作業ディレクトリに移動
$ ~/sample.com/deploy

$ git clone [リポジトリのURL] .

CakePHP4のファイル群が存在するか確認します。

[sample@sv737 deploy]$ ls -ltr
合計 236
drwxr-xr-x  6 sample members    135 10月 15 11:50 webroot
drwxr-xrwx  5 sample members     64 10月 15 11:50 tmp
drwxr-xr-x  4 sample members     96 10月 15 11:50 tests
drwxr-xr-x  8 sample members    114 10月 15 11:50 templates
drwxr-xr-x  6 sample members    111 10月 15 11:50 src
drwxr-xr-x  2 sample members     30 10月 15 11:50 resources
drwxr-xr-x  2 sample members     30 10月 15 11:50 plugins
-rw-r--r--  1 sample members   1029 10月 15 11:50 phpunit.xml.dist
-rw-r--r--  1 sample members    234 10月 15 11:50 phpstan.neon
-rw-r--r--  1 sample members    207 10月 15 11:50 phpcs.xml
-rw-r--r--  1 sample members    649 10月 15 11:50 index.php
-rw-r--r--  1 sample members   2103 10月 15 11:50 composer.json
drwxr-xr-x  2 sample members     96 10月 15 11:50 bin
-rw-r--r--  1 sample members   1878 10月 15 11:50 README.md
-rw-r--r--  1 sample members 212785 10月 16 00:36 composer.lock
drwxr-xr-x 31 sample members   4096 10月 16 00:37 vendor
drwxr-xrwx  2 sample members     10 10月 16 00:37 logs
drwxr-xr-x  3 sample members    254 10月 16 00:37 config

あとは公開ディレクトリにrsyncコマンドなどを使ってファイルを展開します。

$ rsync -av --exclude='.git' --exclude='config/app_local.php' ~/sample.com/deploy/ ~/sample.com/public_html/
rsyncを実行する前に転送元のパスがあっているか、転送先のパスがあっているか、転送先の上書きされると問題が発生するものはないか十分確認してから実行してください。

上記のrsyncは「config/app_local.php」ファイルは反映しないように除外していますが初回のみ反映するようにしてください。公開ディレクトリ側でデータベースの設定等をおこなってください。

コントロールパネルからPHPの設定を確認

コンソール側はPHP8.1の設定を行いましたが、コントロールパネル側も8.1になっているか確認します。

Webからのアクセスの場合は、コントロールパネルのPHPバージョンが適用されます。

2934927349274123

最後に

エックスサーバーでCakePHP4をインストールする方法を紹介しました。

エックスサーバーのバージョンが古いため、適切なバージョンに切り替える作業が発生しますが、エックスサーバーでもCakePHP4は問題なく動作します。

コメント

コメントを残す

お名前(任意)
コメント:新規