LoginSignup
1
1

More than 5 years have passed since last update.

AWS EC2(AmazonLinux) nginxでCakePHP3構築

Posted at

Cakephp3構築

以下の環境を構築する手順です。

OS AmazonLinux2
nginx 1.12.1
PHP 7.2
mysqld 5.7.23
  • 前提:httpが繋がる状態であること

nginxのインストール

「amazon-linux-extras」 というAmazonのパッケージライブラリ?を使います。
好きなバージョンを入れたい場合は、yumなどでインストールを行なってください。

  • amazon-linux-extras listでインストールできるバージョンを確認

インストール済みのものは色がつきます。

$ amazon-linux-extras list
  0  ansible2                 available  [ =2.4.2 ]
  1  emacs                    available  [ =25.3 ]
  2  memcached1.5             available  [ =1.5.1 ]
  3  nginx1.12=latest         enabled    [ =1.12.2 ]
  4  postgresql9.6            available  [ =9.6.6  =9.6.8 ]
  5  postgresql10             available  [ =10 ]
  6  python3                  available  [ =3.6.2 ]
  7  redis4.0                 available  [ =4.0.5  =4.0.10 ]
  8  R3.4                     available  [ =3.4.3 ]
  9  rust1                    available  \
        [ =1.22.1  =1.26.0  =1.26.1 ]
 10  vim                      available  [ =8.0 ]
 11  golang1.9                available  [ =1.9.2 ]
 12  ruby2.4                  available  [ =2.4.2  =2.4.4 ]
 13  nano                     available  [ =2.9.1 ]
 14  php7.2=latest            enabled    [ =7.2.0  =7.2.4  =7.2.5 ]
 15  lamp-mariadb10.2-php7.2  available  \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
 16  libreoffice              available  [ =5.0.6.2_15 ]
 17  gimp                     available  [ =2.8.22 ]
 18  docker=latest            enabled    [ =17.12.1  =18.03.1 ]
 19  mate-desktop1.x          available  [ =1.19.0  =1.20.0 ]
 20  GraphicsMagick1.3        available  [ =1.3.29 ]
 21  tomcat8.5                available  [ =8.5.31 ]
  • nginxのインストール
$ sudo amazon-linux-extras install nginx1.12
  • 接続確認
nginx起動.
$ sudo systemctl start nginx
常時ONにしておく.
$ sudo chkconfig nginx on

http://[EC2のIPアドレス]/
にアクセスしてnginxのページがでれば成功

phpのインストール

  • phpのインストール

同様に「amazon-linux-extras」を使います

$ sudo amazon-linux-extras install php7.2
  • phpのモジュールをインストール

cakephp3を使うためのいろいろ。
こちらは「amazon-linux-extras」に無いので「yum」で。

  • インストールするモジュール
    • php-fpm
    • php-devel
    • php-intl.
    • php-mbstring
    • php-xml
まずはモジュールを検索.
$ sudo yum search php-fpm 
〜
============================= N/S matched: php-fpm ==============================
php-fpm.x86_64 : PHP FastCGI Process Manager
インストール.
$ sudo yum install php-fpm.x86_64

各モジュール繰り返し
(* あとから記載したため、インストール漏れがあったらご指摘ください)

  • php-fpm を起動しておく
$ sudo service php-fpm start

mysqlのインストール

デフォルトだと「MariaDB」のインストールになる

$ sudo yum search mysql
〜
============================== N/S matched: mysql ===============================
〜
mariadb.x86_64 : A community developed branch of MySQL

mariadbしか出てこない・・・。

MySQLのリポジトリ追加.
$ yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
Loaded plugins: ovl, priorities
MySQLのインストール.
$ yum install mysql-community-server

☆参考(というかまんまこちらの手順を実施させていただきました)
https://skworkspace.net/archives/460

  • 接続確認
    • パスワードが空ではない!!
    • 初回ログイン時にパスワード変更が必要
mysqldサービス開始.
$ systemctl start mysqld
パスワード確認.
$ sudo cat /var/log/mysqld.log | grep 'temporary password'
ログイン.
$ mysql -uroot -p   # 先ほど確認したパスワードを

ログインできてもパスワードを変更しないと何もさせてくれない・・・
しかも、半角英小文字、半角英大文字、記号、数字がいるという・・・

パスワード変更(例).
set password for root@localhost=password('hogeHoge@123');

cakephp3のインストール

  • composerのインストール
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
  • cakephp3でプロジェクトの作成

最後の「my_app_name」は自分が作りたいプロジェクト名で。
あらかじめプロジェクトを置きたい場所にcdで移動しておきましょう。

$ php composer.phar create-project --prefer-dist cakephp/app my_app_name

* 作成失敗した場合は前項のphpのモジュールのインストールで足りなかったのがあったかもしれません。
モジュールインストールしなおし、プロジェクトをフォルダごと一旦削除(すでにフォルダがあると作成失敗するため)してからやりなおしてください。

cakephp3 を nginx で

nginx は 「.htaccess」をつかわないので、nginx側にちょっと手を入れないといけないです。
(今の状態のままつないでも、スタイルシートもimgも取れずテキストだけ出てる?みたいなページになります)

cakephpの公式にも手順が書いてあります
https://book.cakephp.org/3.0/ja/installation.html#nginx

以下、は公式の手順と流れは同じですが、実際にやったことだけ簡略化

php-fpmの確認.
sudo vi /etc/php-fpm.d/www.conf

  ; Note: This value is mandatory.
  listen = /var/run/php-fpm/www.sock  ← 確認
nginxの変更.
$ sudo vi /etc/nginx/nginx.conf

- root         /usr/share/nginx/html;
+ root         /[プロジェクトのパス]/webroot;
+ index        index.php

  location / {
+      try_files $uri $uri/ /index.php?$args;
  }

+  location ~ \.php$ {
+    try_files $uri =404;
+    include fastcgi_params;
+    fastcgi_pass   unix:/var/run/php-fpm/www.sock;    ★
+    fastcgi_index index.php;
+    fastcgi_intercept_errors on;
+    fastcgi_param SCRIPT_FILENAME 
+    $document_root$fastcgi_script_name;
+  }

★ fastcgi_passの部分はphp-fpmで確認したsockと合わせる
fastcgi_pass unix:[確認したパス]

$ sudo sysmtemctl restart nginx
$ sudo sysmtemctl restart php-fpm

これでcakephp3の画面が見れる・・・はず?

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1