#似たような記事は沢山あるのだけど…
調べたらたくさん出てきますよね。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。
マシン立ち上げ時には自動で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は邪魔なので消しておこう。
#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
DocumentRoot "/var/www/html/mypage01/public"
<Directory "/var/www/html/mypage01">
AllowOverride All
</Directory>
apacheを再起動しホストにアクセスしてみると…
# systemctl restart httpd
なんか失敗してるけど、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
初期画面が表示された!とりあえずLaravelが動き出した!
次の記事から、実際に中身を弄り回してみましょうか。
【次】https://qiita.com/katsuhito_01/items/db5b9581a2b6af6dc803