mod_rewrite一覧

CakePHP3.6をLAMP・LNMP環境へインストールする

以前の記事で、LAMP/LNMP環境の仮想環境の構築の方法を紹介しました。

Vagrant+VirtualBoxでLAMP環境構築をする(CentOS7/PHP7.2/MySQL5.7)方法について紹介しています。Vagrant+VirtualBoxでLAMP環境構築をする(CentOS7/PHP7.2/MySQL5.7)の環境を構築しようとしている方は参考にしてください。
Vagrant + VirtualBoxでLNMP環境を構築する方法について紹介しています。CentOS7/PHP7.2/MySQL5.7/Nginx1.12.2の環境の環境構築です。LNMPの仮想環境を構築したい方は、参考にしてください。

今回は、この環境を利用して、CakePHP3.6のLAMP/LNMP環境へのインストールの方法について紹介します。

環境

  • CentOS 7.4
    • PHP 7.2.7
    • MySQL 5.7.22
    • Apache 2.4.6(例としてnginx 1.12.2)
  • CakePHP3.6.5

システム要件

CakePHP3を動かすためには、システム要件を満たさないといけません。
今回は、CakePHP3.6をインストールしますが下記のようなシステム要件となっています。

・HTTP サーバー。例: Apache。mod_rewrite が推奨されますが、必須ではありません。
・PHP 5.6.0 以上 (PHP 7.2 も含む)
・mbstring PHP 拡張
・intl PHP 拡張
・simplexml PHP 拡張

PHPバージョンの確認
$ php -v
PHP 7.2.7 (cli) (built: Jun 20 2018 08:21:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.7, Copyright (c) 1999-2018, by Zend Technologies
拡張モジュールの確認
$ php -m | grep -e mbstring -e intl -e SimpleXML
mbstring
SimpleXML

私の環境では、intlがインストールされていなかったのでインストールします。

#導入可能なintl検索
$ yum list | grep intl

$ sudo yum install -y php72-php-intl.x86_64

php.iniに下記のように設定します。

$ vi /etc/php.ini

#追記
extension=php_intl.dll

=>intlの設定についてはこちらも参照ください

Composerのインストール

CakePHP3系はComposerで基本的にインストールします。なので、Composerをインストールします。

新規登録する場合

#rootに
$ sudo -i
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
$ exit
$ composer --version

既にインストール済みの場合

$ composer self-update
$ composer --version

CakePHP3.6のインストール

以下のコマンドを実行すると、必要なモジュールがダウンロードされ、指定した名前でCakePHPのプロジェクトが作成されます。
プロジェクトを作成するディレクトリで実行してください。
[プルジェクト名]は便宜変更してください。

$ composer create-project --prefer-dist cakephp/app [プロジェクト名]

指定したバージョンでプロジェクトを作成するには、以下のように指定します。(バージョン3.6を指定している例です。)

$ composer create-project --prefer-dist cakephp/app:3.6.* [プロジェクト名]
[ErrorException]
mkdir(): Permission denied
こんなエラーの出た方は、sudo chown user-name /var/www/html をCakePHPをインストールするフォルダに実行してください。
[RuntimeException]
Failed to clone https://github.com/cakephp/app.git, git was not found, check that it is installed and in your PATH env.
こんなエラーが出た方は、sudo yum install git の実行をしてください。

WEBアプリケーションの設定

Apacheの場合

CakePHP3.6のインストールができました。
しかし、上記のようなCSSの設定がうまくされない画面が表示される場合があります。そのような際は、下記のような設定が、必要になります。

mod_rewriteが正しくロードされている事を確認

mod_rewriteが正しくロードされているか確認します。ロードされていない場合は、ロードされるよう設定します。

sudo vi /etc/httpd/conf.modules.d/00-base.conf

ファイルを開き、下記の内容のコメントを外すか、追加します。

LoadModule rewrite_module modules/mod_rewrite.so

AllowOverride に All が設定されている事を確認

httpd.confにDocumentRootに対して .htaccess による設定の上書きを許可されているか。確認します。

<Directory /var/www/html>
    Options FollowSymLinks
    AllowOverride All
#    Order deny,allow
#    Deny from all
</Directory>

設定されていない場合は、 AllowOverrideにAllを設定してください。

Apacheの再起動

Apacheを再起動します。

systemctl restart httpd

ドキュメントルートの設定もしておくと良いと思います。

Nginxの場合

Nginxの場合は、下記のようにドキュメントルートの設定を行いましょう。
nginx.conf等のファイルを下記のように設定します。

server {
    〜省略〜
 
    root   /var/www/html/cakephp365/webroot;
    index  index.php;
 
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
 
    〜省略〜
}

ドキュメントルート(rootの設定)は、[プロジェクトのパス]/webrootを指定してください。

nginxの再起動

$ systemctrl restart nginx

上記のようなページが表示されるとCakePHP3.6のインストール成功です。

MySQLの設定

最後にMySQLの設定を行います。

config/app.php

を変更します。

'Datasources' => [
  'default' => [
     ~
     'username' => 'my_app',  //編集する
     'password' => 'secret', //編集する
     'database' => 'my_app', //編集する
     'encoding' => 'utf8',
     'timezone' => 'UTC',
     'flags' => [],
      'cacheMetadata' => true,
      'log' => false,

これで、CakePHP3.6.5のインストールは終了です。
今回の記事では、CakePHP3.6をLAMP環境へインストールする方法について紹介しました。

CakePHP3系を使用し、何か開発しようと思っている方は、参考にしてください。