Macでも・・・Windowsでも・・・開発環境を構築できない場合、Cloud9しかないかなあ〜と思ったのでやってみました。
ミドルウェア達は手動で入れます。
マシンスペック
- Mac mini 2018
- macOS Catalina(10.15.x)
- Intel Core-i7 3.2GHz 6コア
- メモリ 32GB
- SSD 512GB
Laravel環境
- Nginx 最新版
- PHP(PHP-FPM) 7.2.x
- MySQL 5.7
- Composer 最新版
- Laravel 5.6
やること
- Cloud9でLaravel環境構築
- ミドルウェア達は手動構築
AWS Cloud9の準備
下記を参考に準備する。
AWS Cloud9+Docker ComposeでLaravel環境を構築その壱#AWS Cloud9の準備
ミドルウェアなどの準備
PHPインストール
PHPはインストール済み。
$ php -v
PHP 7.2.24 (cli) (built: Oct 31 2019 18:27:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
でも、Laravelを動かすライブラリが不足してるので、インストールし直す。
$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum -y install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-gd php-xml php-pecl-mcrypt php-mysqlnd php-fpm php-pecl-zip php-bcmath
・・・
Complete!
Nginxインストール
$ sudo vi /etc/yum.repos.d/nginx.repo
★点線内をコピペ
---
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
enabled=0
gpgcheck=0
---
:wq
$ sudo yum -y --enablerepo=nginx install nginx
設定ファイルの編集
PHP-FPM
/etc/php-fpm.d/www.conf
$ sudo vi /etc/php-fpm.d/www.conf
★下記を点線内に編集
user = apache
group = apache
listen = /run/php-fpm/www.sock
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
---
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
---
:wq
Nginx
/etc/nginx/conf.d/default.conf
$ sudo vi /etc/nginx/conf.d/default.conf
★全行を削除
:%d
★点線内をコピペ
---
server {
listen 8080;
server_name laravel.cloud9;
charset UTF-8;
access_log /var/log/nginx/access.log;
location / {
root /home/ec2-user/environment/laravel/public;
try_files $uri /index.php?$query_string;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /home/ec2-user/environment/laravel/public;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
---
:wq
起動および自動起動設定
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Nginxが/home/ec2-user配下を実行できるようにする
$ chmod 701 /home/ec2-user
MySQLインストール
MariaDBのアンインストール
$ rpm -qa | grep aria
mariadb-common-10.2.36-1.amzn2.0.1.x86_64
mariadb-config-10.2.36-1.amzn2.0.1.x86_64
mariadb-libs-10.2.36-1.amzn2.0.1.x86_64
mariadb-10.2.36-1.amzn2.0.1.x86_64
$ sudo yum -y remove mariadb*
$ sudo rm -rf /var/lib/mysql
MySQLインストール
$ sudo rpm -Uvh https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
$ sudo yum -y install --enablerepo=mysql57-community mysql-community-server
$ mysqld --version
mysqld Ver 5.7.30 for Linux on x86_64 (MySQL Community Server (GPL))
$ sudo systemctl enable mysqld.service
$ sudo systemctl start mysqld.service
$ sudo grep 'temporary password' /var/log/mysqld.log
2020-06-14T11:56:34.296676Z 1 [Note] A temporary password is generated for root@localhost: XXXXXX
$ sudo mysql_secure_installation
Enter password for user root: XXXXXX
★パスワードは「英字小文字、英字大文字、数字、記号」の組み合わせにしたら通る
例)cloud9#CLOUD9
New password: cloud9#CLOUD9
Re-enter new password: cloud9#CLOUD9
〜 以降の質問は全て y で回答し、パスワード聞かれたら上記パスワードを入力する 〜
All done!
データベース作成など
$ mysql -u root -p
Enter password: cloud9#CLOUD9
★DB:hoge、USER:fuga、PASSWORD:cloud9#CLOUD9(※好きなのに変える)
mysql> create database hoge default character set utf8 collate utf8_general_ci;
mysql> CREATE USER fuga@'%' IDENTIFIED BY 'cloud9#CLOUD9';
mysql> GRANT ALL ON hoge.* TO fuga@'%';
mysql> CREATE USER fuga@'localhost' IDENTIFIED BY 'cloud9#CLOUD9';
mysql> GRANT ALL ON hoge.* TO fuga@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
Composerインストール
$ curl https://getcomposer.org/installer | php
$ sudo mv -i composer.phar /usr/local/bin/composer
$ composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.0.13 2021-04-27 13:11:08
・・・
Laravelインストール
プロジェクト作成
$ composer create-project --prefer-dist laravel/laravel laravel "5.6.*"
パッケージ追加とパーミッション変更
$ cd laravel
$ composer require --dev barryvdh/laravel-ide-helper
$ composer require --dev squizlabs/php_codesniffer
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
データベース接続設定
.env
$ vi .env
★下記を点線内に編集
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
↓
---
DB_DATABASE=hoge
DB_USERNAME=fuga
DB_PASSWORD=cloud9#CLOUD9
---
:wq
マイグレーション&シーダー実行
$ php artisan migrate:fresh --seed
キャッシュとか色々クリアするシェル作成&実行
bin/clear-laravel.sh
$ mkdir bin
$ vi bin/clear-laravel.sh
★下記を点線内をコピペ
---
# !/bin/bash
php artisan view:clear
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
composer dump-autoload
php artisan ide-helper:generate
php artisan ide-helper:models -N
php artisan ide-helper:meta
---
:wq
$ chmod 755 bin/clear-laravel.sh
$ bin/clear-laravel.sh