LoginSignup
3
2

More than 3 years have passed since last update.

【導入編】Vagrantで立てたCentOS7にapacheとphpをインストール。Laravelを動かしてみる。

Last updated at Posted at 2019-06-01

似たような記事は沢山あるのだけど…

調べたらたくさん出てきますよね。VagrantでCentOS7立てて、そこにapacheやらPHPやらぶち込んで、composer入れたらLaravelインストールしてハイ終わり!閉廷!だろうと。情報はたくさんあるだろと。

Qiita内でも他サイトでも似たようなの沢山あるのに、いつも詰まるポンコツな自分。
とりあえず自分が上手くいったやり方を残しておいて、経験の都度メンテという形で書きます。
ど忘れしやすい自分用メモみたいな何某。非常にスカムな内容です。

前提環境

vagrant initでCentOS7を入れ、Vagrantfileをいじり、vagrant upで立ち上がったところ。
apacheも何も入ってないバニラな状態から始めます。

まずはapache入れよう

とにもかくにも、まずはapacheをインストール。
インストールが完了したら早速起動してみる。

# sudo yum install -y httpd
# systemctl start httpd

上手くいったらホストにアクセス。
とりあえずapacheの画面が出れば、まずはOK。
001.PNG
マシン立ち上げ時には自動でapacheが立ち上がるようにしておく。

# sudo systemctl enable httpd.service

PHPも入れておこう

念のため、PHPが入ってないことを確認。
色んなバージョンが混在すると後で混乱する(自分が)。

# yum list installed | grep php

何も出てこなければOK.
remiのリポジトリをインストール。

# sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Complete!が出ればOK
導入するPHP(今回は7.2)の詳細を確認し、インストール実行。
ついでに拡張機能もごっそり入れてしまおう。

# sudo yum info --enablerepo=remi,remi-php72 php
# sudo yum -y install --enablerepo=remi,remi-php72 php
# sudo yum -y install --enablerepo=remi --enablerepo=remi-php72 php php-opcache php-devel php-mbstring php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-gd php-intl php-symfony php php-pdo php-xml php-tokenizer php-pear php-zip

Complete!が出ればOK。
apacheを再起動し、バージョン確認コマンドを叩いて確認。

# sudo systemctl restart httpd
# php -v
PHP 7.2.19 (cli) (built: May 29 2019 11:04:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.19, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans

ついでにルートディレクトリ配下にindex.phpを作成。
以下を記述する。

<?php phpinfo(); ?>

【ホスト】/index.php にアクセスして、phpinfoが表示されてるか確認。出てくればOK。
確認が取れたら、index.phpは邪魔なので消しておこう。
002.PNG

composerを入れる

Laravelやるなら、まずはcomposer。
さっくりダウンロードし、インストール。おわったら消しておく。

# sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"

どこでもcomposerコマンドが叩けるように、composer.pharを/usr/local/bin/の直下に移動。

# sudo mv composer.phar /usr/local/bin/composer

早速composerのバージョン確認コマンドを叩いてみる。
ちゃんと出てくればOK。

# composer -V
Composer version 1.8.5 2019-04-09 17:46:47

Laravelを入れる

例のごとく、インストーラーをダウンロード。

# composer global require laravel/installer

パスをちゃんと通すこと。

# export PATH="/home/ユーザー名/.config/composer/vendor/bin:$PATH"

面倒くさい場合は、.bash_profileをいじって永続的にPATH設定を有効化してしまおう。

# vi /home/ユーザー名/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.config/composer/vendor/bin

プロジェクトを作成したい場所の権限をこじ開け移動。
さっそく作ってみる。

# sudo chmod 777 -R  /var/www/html/
# cd /var/www/html/
# laravel new mypage01

プロジェクトの出来上がり。これらが入っていれば成功。

# cd /var/www/html/mypage01
# ls

以下みたいなのがぞろぞろっと出てくればOK
app        composer.json  database      public     server.php  vendor
artisan    composer.lock  package.json  resources  storage     webpack.mix.js
bootstrap  config         phpunit.xml   routes     tests       yarn.lock

そしてapacheのドキュメントルートを、Laravelプロジェクト配下のpublicに変更。
ついでにAllowOverrideも有効にしておく。

# sudo vi /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/mypage01/public"
<Directory "/var/www/html/mypage01">
    AllowOverride All
</Directory>

apacheを再起動しホストにアクセスしてみると…

# systemctl restart httpd

003.PNG
なんか失敗してるけど、Laravelのエラー出力画面が出た!
あともう一息。

権限をあれこれ設定

公式ドキュメントにある通り、ディレクトリのパーミッションを設定。
プロジェクトファイルの所有者をapacheにして、指定ディレクトリに必要な権限を与える。
https://readouble.com/laravel/5.7/ja/installation.html

# sudo chmod -R 777 /var/www/html/mypage01/storage
# sudo chmod -R 777 /var/www/html/mypage01/bootstrap/cache

これで大体の人は初期画面が表示されるのだけど、自分の場合はなぜかそれでも「ログ書き込むための権限がねえよ」と怒られた。ナンデ?

色々調べたところ、どうもselinuxが邪魔しているらしい。
なので無効化してしまう。

# sudo vi /etc/selinux/config
SELINUX=disabled

マシンを再起動し、ホストにアクセスしてみると…
004.PNG

初期画面が表示された!とりあえずLaravelが動き出した!
次の記事から、実際に中身を弄り回してみましょうか。

【次】https://qiita.com/katsuhito_01/items/db5b9581a2b6af6dc803

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