LoginSignup
3
7

More than 3 years have passed since last update.

centos7 に Laravel6をインストール

Last updated at Posted at 2020-03-29

centos7にLaravelを入れるまでの道のりです。

くっそ苦労しました。
たくさんの方の記事を参考にさせていただいた結果、最後に掲載している方々の記事が参考になったので、掲載させていただきます。

環境

  • AWS EC2(t2.micro)
  • centos7
  • Apache2.4系
  • MySQL5.7系
  • PHP7.2系
  • composer

とりあえず必要なもろもろ

一つずつコマンドでやったほうがいいですが、めんどくさいのでシェルスクリプトにで入れます。
$ vi hoge.shとかでファイルを作成すればよいですね。
sudo bash hoge.shで使えます(hogeは適宣変えてください)

centos_lamp.sh
#!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のインスタンスだと、メモリー不足ですよーっていうエラーがでます。
なのでスワップファイルを作成して対処します。

swap.sh
#!bin/bash

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

composerインストール

PHPのパッケージ管理ソフトのcomposerをインストールしていきます。

composer_install.sh
#!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の初期画面が見れるようになります!!!!!
大変でした。
参考にさせていただいた方々ありがとうございます。

参考

3
7
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
3
7