在EC2的Amazon Linux 2上建立Laravel 8环境
为自己做的备忘录。
事先声明一下常见问题。
-
- Laravel8 には php7.3 以上が必要!!
- yum で必要なバージョンが入ってくれるとは限らない!!
我们要好好确认一下(自我警示)。
在准备阶段,启动EC2实例。
确认当前所在的区域后,选择「EC2」->「启动实例」。
选择 Amazon Linux 2 AMI (HVM),SSD卷类型。
在安全组中添加 http(80) 和 https(443)。

各种安装
首先,在当前状态下执行yum update。
$ sudo yum update
安装PHP7.3
如果毫无考虑地yum安装php,就会安装5系,这是不可接受的。
可以尝试使用remi,但因为是AmazonLinux2,所以应该使用Amazon Linux Extras。
$ sudo amazon-linux-extras install php7.3
$ sudo yum install php-mbstring php-dom # 追加で必要なものは yum でOK
安装和更改 httpd2.4 的设置
在这里,你可以直接使用 yum 进入。
$ sudo yum install httpd
$ sudo systemctl start httpd # httpd 起動
$ sudo systemctl enable httpd # 以後システム起動とともに httpd も起動
$ sudo usermod -a -G apache ec2-user # ec2-user を apache グループに追加
$ exit # usermod 反映のため一旦ログアウト(ログインしなおす)
$ sudo chown -R ec2-user:apache /var/www # /var/www 以下のオーナー、グループを ec2-user:apache に変更
$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \; # ディレクトリの許可設定を変更
$ find /var/www -type f -exec sudo chmod 0664 {} \; # ファイルの許可設定を変更
对于HTTPS的支持。
$ sudo yum install mod_ssl # mod_ssl をインストール
$ cd /etc/pki/tls/certs # ディレクトリを移動して…
$ sudo ./make-dummy-cert localhost.crt # オレオレ証明書を作成
$ sudo vi /etc/httpd/conf.d/ssl.conf # ssl.conf を開いて、下記の行をコメントアウト
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
$ sudo systemctl restart httpd # httpd 再起動

MariaDB 的安装
我們可以從Amazon Linux Extras 安裝MariaDB。目前最新版本是10.5。由於使用yum安裝會得到5系列,所以這是不可接受的。
$ sudo amazon-linux-extras install mariadb10.5 # mariadb をインストール
$ sudo systemctl start mariadb # mariadb を起動
$ sudo systemctl enable mariadb # mariadb をシステム起動時に起動
$ sudo mysql_secure_installation # mariadb のルートパスワード設定。その他の項目も全てY

MariaDB[(none)」> create database laravel;
准备Laravel8
安装composer。
$ sudo curl -sS https://getcomposer.org/installer | php # composer をインストール
$ sudo mv composer.phar /usr/local/bin/composer # composer.phar を "composer" で動かせるように bin 下へ
克隆 Laravel
确认为8.x。
$ sudo yum install git # git が入っていなかったらインストール
$ cd /var/www # httpd のドキュメントルートへ移動
$ git clone https://github.com/laravel/laravel.git # クローン
更改 httpd.conf 的配置
$ sudo vi /etc/httpd/conf/httpd.conf # DocumentRoot変更、Directoryディレクティブ追加
DocumentRoot "/var/www/laravel/public"
<Directory /var/www/laravel/public>
AllowOverride All
</Directory>
$ sudo systemctl restart httpd # 再起動
在Laravel克隆下获取包裹。
$ cd /var/www/laravel
$ composer update
更改权限以适应需要的地方
$ sudo chmod -R 777 /var/www/laravel/storage
$ sudo chmod -R 777 /var/www/laravel/bootstrap/cache
创建一个名为 .env 的文件。
$ cp .env.example .env
$ vi .env
APP_URL、DB_* を設定
生成应用程序密钥
$ php artisan key:generate
通过迁移和分流来构建数据库
$ php artisan migrate
$ php artisan db:seed
做完
