はじめに
Laravelを初めて使ってみることにしました。一番選ばれている印象が勝手にあります。
時間が許せばPhalconも使ってみる予定です。
ちなみに、私はSymfonyばかり使ってきた人間です。
バージョンはLTS(Long Term Support)の5.5を採用します。
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
完了
こんな超絶シンプル画面が表示されます。
背景が現在白なので全然境目がわからなさそう…。
最後に
この先はLaravelの自体の話になるので、また別の機会に回します。
以上でした!