LoginSignup
2
4

More than 3 years have passed since last update.

Laravelの環境構築(Vagrant、CentOS7、Apache2.4、PHP7.3、Laravel5.8)

Last updated at Posted at 2019-05-19

前説

Laravel Homesteadあるいは、Laradockを使用して手間をかからないでLaravelの環境構築が出来そうですが、今回はベーシックなOS、Webサーバーから一つずつを入れる方法を選びます。まだ手出したことがないLaravel HomesteadとLaradockではつまづくことがありそうですので…

環境

Vagrant 2.2.4
CentOS7
Apache 2.4
Composer 1.8.5
PHP 7.3.3
Laravel 5.8

参照

下記2つの記事を参照して構築しました。
つまずいた点を詳しく書きます。

VagrantでCentOS7+Apache2.4+PHP7.3+Laravel5.7環境構築
https://qiita.com/okdyy75/items/d3492e4ea7136d3b6ffc
CentOS7でLaravel5.4の環境構築
https://qiita.com/minechan1234/items/7e0cbe04bf5f3f405938

VagrantでCentOSサーバー構築

SELinuxを無効

   sudo setenforce 0

SELinuxは有効だとセキュリティ関連で下記のエラー画面が出ます。
スクリーンショット 2019-05-19 10.50.08.png

Vagrant初期設定

    # vagrant 初期化(Vagrantfileの作成)
    vagrant init centos/7
    # vagrant 起動
    vagrant up
    # vagrant ログイン
    vagrant ssh
Vagrantfile
    
    config.vm.box = "centos/7"
    
    config.vm.network "private_network", ip: "192.168.33.10"
    
    config.vm.synced_folder "./html", "/var/www/html",
    owner: "root", group: "root",
    mount_options: ['dmode=777','fmode=777']

config.vm.synced_folderはホストとゲストの同期の設定ですが、ここについてownerと、mount_optionsでは所有者と、権限を指定しています。ここで指定しないとCentOSサーバー内で所有者と、権限を変えても効きません。

CentOSサーバー環境設定

Apacheインストール

   # apacheインストール
   sudo yum install -y httpd
   # Apache起動
   service httpd start

PHPインストール

yumにRemiリポジトリを追加
・Remi
https://rpms.remirepo.net/enterprise/7/

sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

PHP本体 + PHP関連のモジュールをインストール

sudo yum install -y --enablerepo=remi,remi-php73 php php-zip php-devel php-mbstring php-pdo php-xml php-bcmath php-gd.x86_64

ここでphp-gd.x86_64を一緒にインストールしないと写真投稿の機能を実装した時GD Libraryが入っていないよーとおこられます!
スクリーンショット 2019-05-19 13.24.04.png
一緒にインストールすると無事に成功
スクリーンショット 2019-05-19 14.02.54.png

Composerインストール

    #composer.pharと取得
    curl -sS https://getcomposer.org/installer | php
    #パスが通っているディレクトリに持っていく
    mv composer.phar /usr/local/bin/composer
    #確認
    composer

Laravelインストール

    cd /var/www/html
    composer create-project --prefer-dist laravel/laravel blog    

「パーミッションを変更」

    cd blog
    chmod -R 777 storage
    chmod -R 777 bootstrap/cache 

「DocumentRootの変更」
httpd.confファイルについて下記のように変更

「DocumentRoot "/var/www/html"」を
「DocumentRoot "/var/www/html/blog/public"」に変えます。

「Apacheを再起動」

   systemctl restart httpd

補足

filesystemを使って画像をアップしたあと、vagrantを再起動させたら下記のエラー出ました。
スクリーンショット 2019-05-19 13.47.18.png
/public/storageは同期できない原因であるみたいでstorageを消すと無事に同期出来ました。スクリーンショット 2019-05-19 13.55.14.png

2
4
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
2
4