centos7にLaravelを入れるまでの道のりです。
くっそ苦労しました。
たくさんの方の記事を参考にさせていただいた結果、最後に掲載している方々の記事が参考になったので、掲載させていただきます。
環境
- AWS EC2(t2.micro)
- centos7
- Apache2.4系
- MySQL5.7系
- PHP7.2系
- composer
とりあえず必要なもろもろ
一つずつコマンドでやったほうがいいですが、めんどくさいのでシェルスクリプトにで入れます。
$ vi hoge.sh
とかでファイルを作成すればよいですね。
sudo bash hoge.sh
で使えます(hoge
は適宣変えてください)
#!bin/bash
#とりあえず必要なものいろいろ
yum -y update #update
yum install -y vim #vim
yum install -y epel-release #epelリポジトリ
yum install -y fish #fishシェル
yum install -y httpd #Apache2.4
yum install -y wget #wgetコマンド
yum install -y unzip #unzip
# mysql5.7
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum install -y mysql-community-server
# ApacheとMySQLの自動起動
systemctl start httpd mysqld
systemctl enable httpd mysqld
#PHP7.2系インストール
yum -y update
yum remove -y php*
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-zip php-mysql
スワップファイル作成
このままcomposerをインストールするとt2.micro
のインスタンスだと、メモリー不足ですよーっていうエラーがでます。
なのでスワップファイルを作成して対処します。
#!bin/bash
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
composerインストール
PHPのパッケージ管理ソフトのcomposer
をインストールしていきます。
#!bin/bash
yum -y update
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
そののちにLaravelインストーラを入れていきます。
$ composer global require "laravel/installer"
パーミッションを変更していきます。
$ cd /var/www/
$ sudo chown -Rv root:$USER .
$ sudo chmod -Rv g+rw .
Laravelのプロジェクトを作成
プロジェクトを作成していきます。
今回作成するblog
とします。
$ cd /var/www/html
$ composer create-project --prefer-dist laravel/laravel blog "6.*"
これで/var/www/html/
にblog
というディレクトリが作成され、Laravel6系がインストールされます。
/etc/httpd/httpd.conf
を編集して、ドキュメントルートを変更します。
設定ファイルを変更する前に、必ずファイルをバックアップしましょう。痛い目をみます。
$ cp /etc/httpd/httpd.conf /etc/httpd/httpd.conf-org
$ sudo vim /etc/httpd/httpd.conf
Documentroot "/var/www/html/blog/public"
public
をつけないとだめでした
設定ファイルを書き換えたら再起動します。
なにか問題があると、再起動に失敗します。
$ sudo systemctl restart httpd
次に、パーミッションを変更していきます
$ chmod -R 777 /var/www/html/blog/storage
$ chmod -R 777 /var/www/html/blog/bootstrap/cache
ここでhttp://インスタンスのIP
にアクセスしても、なんだかエラーが出てしまうんですよねー
エラー画面をスクショするのは忘れました。がこんな感じのエラーが出てました
The stream or file "/var/www/html/blog/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
んーよくわからないのでGoogle先生で調べたら、SELinuxを無効にすると良いみたいです。
SELinux無効化
SELinuxが有効になっているかは以下のコマンドで調べられます。
$ getenforce
# 結果
Enforcing
有効になってました
無効にします。
$ cp -piv /etc/selinux/config /etc/selinux/config-org
$ vim /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled #これにします
OS再起動します
shutdown -r now
これでやっとLaravelの初期画面が見れるようになります!!!!!
大変でした。
参考にさせていただいた方々ありがとうございます。