AWS EC2(AmazonLinux) nginxでCakePHP3構築
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
- 接続確認
$ sudo systemctl start nginx
$ 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しか出てこない・・・。
$ yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
Loaded plugins: ovl, priorities
$ yum install mysql-community-server
☆参考(というかまんまこちらの手順を実施させていただきました)
https://skworkspace.net/archives/460
- 接続確認
- パスワードが空ではない!!
- 初回ログイン時にパスワード変更が必要
$ 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
以下、は公式の手順と流れは同じですが、実際にやったことだけ簡略化
sudo vi /etc/php-fpm.d/www.conf
; Note: This value is mandatory.
listen = /var/run/php-fpm/www.sock ← 確認
$ 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の画面が見れる・・・はず?
Author And Source
この問題について(AWS EC2(AmazonLinux) nginxでCakePHP3構築), 我々は、より多くの情報をここで見つけました https://qiita.com/t_n/items/7eb3e1b22c76da42caa5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .