HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

Laravelフレームワークの下準備をVirtualBox + CentOS7で行う

はじめに

Laravelを初めて使ってみることにしました。一番選ばれている印象が勝手にあります。

laravel.com

時間が許せばPhalconも使ってみる予定です。
ちなみに、私はSymfonyばかり使ってきた人間です。

バージョンはLTS(Long Term Support)の5.5を採用します。

laravel.com

5.5のドキュメントのGetting Startedに従って進めていきます。

https://laravel.com/docs/5.5/installation

手順

前提条件

必要なPHPの機能として、下記が要求されています。
Homesteadを使えば別なのですが、今回は使いません。

However, if you are not using Homestead, you will need to make sure your server meets the following requirements:

PHP >= 7.0.0
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension

現在のモジュールを見たい場合は、下記のどちらかのコマンドでみることができます。

$ php -m
$ php --modules

それと、Composerを使うことになるので、ない場合はインストールしましょう。 hrroct.hatenablog.com

Laravelのインストール

参照元に書いてあるとおりですが、下記を実行します。

$ composer global require "laravel/installer"

エラーが出たら随時対応しましょう。
私の場合はPHP extensionのzipがないよと言われました。

  Problem 1
    - laravel/installer v2.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - laravel/installer v2.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for laravel/installer ^2.0 -> satisfiable by laravel/installer[v2.0.0, v2.0.1].

これは普通にyumでインストール可能です。

$ sudo yum install php-zip

私の場合は、PHP7をremiレポジトリを使って入れたので、指定が必要でしたが。

$ sudo yum install --enablerepo=remi,remi-php70 php-zip

改めて実行すると、成功のようでした。

$ composer global require "laravel/installer"
Changed current directory to /home/${USER}/.config/composer
Using version ^2.0 for laravel/installer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

そして指定通り、PATHを通しておきます。

$ vim /home/${USER}/.bash_profile
export PATH=$PATH:$HOME/.config/composer/vendor/bin

ここでようやくインストールが完了です。

$ laravel --version
Laravel Installer 2.0.1

Laravelアプリケーションを作成する

パーミッションの関係もあって、rootで下記を実行してみたのですが。

# pwd
/var/www/html
# laravel new blog

Laravel 5.5系を想定していましたが、5.7系で作成されようとしているようで、エラーが頻発しました。
そこでもう一つの方法でインストールすることに。

composer create-project --prefer-dist laravel/laravel blog "5.5.*"

こちらならバージョンが指定できますし、問題なく成功しました。
ログは長いので省略で…。

php artisan serve

でサーバーを立てることが可能ですが、私の場合は仮想サーバーに立てたApache経由でアクセスさせることに。

そして下記にアクセス。
http://localhost:8080/blog/public/index.php
(私の場合は8080->80になるようポートフォワーディング設定をしております)

※ポートフォワーディングの設定についてはこちらをどうぞ。
hrroct.hatenablog.com

blog/public/.htaccessがきちんと動いていれば、index.phpはつけなくともアクセスできます。
http://localhost:8080/blog/public/

画面左上にこんなエラーが出ていたので、

The stream or file "/var/www/html/blog/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
file_put_contents(/var/www/html/blog/storage/framework/sessions/tEHcnx2EJlGPRhLX4dH1zzrxxs3YXlWTVFY6NTHi): failed to open stream: Permission denied
file_put_contents(/var/www/html/blog/storage/framework/views/e96dfdf9e620607c1c331f2ec0b144a5937ac771.php): failed to open stream: Permission denied

それぞれこんなコマンドで対応。

# chmod 777 /var/www/html/blog/storage/logs/
# chmod 777 /var/www/html/blog/storage/framework/sessions/
# chmod 777 /var/www/html/blog/storage/framework/views/

SELinux関連の可能性もあります。
切り分けのために、下記コマンドで一時的に無効化してみるといいと思います。

setenforce 0

完了

f:id:hrroct:20190105142823p:plain

こんな超絶シンプル画面が表示されます。
背景が現在白なので全然境目がわからなさそう…。

最後に

この先はLaravelの自体の話になるので、また別の機会に回します。
以上でした!