Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

環境構築

Linuxコマンドを勉強しながらCentOSにLaravelをインストールしてみた

main

前回VagrantとVirtualBoxをインストールして仮想マシンの構築をしました。

仮想マシン(VM)の構築

仮想マシンのおかげでCentOSをいじる機会ができました。

せっかくなので今回はLinuxの勉強をしながらLaravelをインストールしてみようと思います。

CentOS6.7で行います。

 

Linux基礎知識

Linux初心者なのでLaravelをインストールする前にLinuxの基本的な知識を身につけようと思います。

まずはソフトウェア(パッケージ)をインストールしたりアンインストールしたりするyumコマンドとrpmコマンドについて。

RedHat系のLinux(CentOS、Fedora)なら使用頻度が多いコマンドです。

しかしyumコマンドとrpmコマンドの違いはなんでしょう?

yumは何かパッケージをインストールする際に、依存するパッケージを全て勝手にダウンロードして、依存関係も全部調べて正しくインストールしてくれます。

rpmにはその機能はありません。

ネットで調べてみるとyumコマンドは内部でrpmコマンドを呼び出しているみたいですね。

【参考サイト】
初心者の頃に知っておきたかった rpm と yum の違いと使い分け

 

上記のサイトを参考にすると基本的にはyumコマンドを使い、yumコマンドが使えない局面のときにrpmコマンドを使うそうです。

yumコマンドを使う際によく–enablerepo オプションを付けRemi、EPELリポジトリを追加していますよね。

このRemi、EPELとは一体何なのか?

僕はリポジトリの意味がわからなかったのですが、リポジトリとはプログラムなどが体系だてて保管されている場所のことだそうです。

Remi、EPEL はyum のリポジトリというもののようです。

【参考サイト】
yum が便利になる RPMforge、Remi、EPEL とは一体何なのか

 

つまりyumでPHPやMySQLなどのソフトをインストールする際にRemiやEPELをオプションで指定してやると、より一層最新のバージョンの種類がダウンロードできるってことですね。

そんなわけで、yumとrpmコマンドを使ってこれからソフトをガンガン入れていくわけですが、いろんなパッケージをいれていくと、どのパッケージを入れたか把握できなくなります。

そんな時、以下のコマンドをたたくとインストールしたrpmパッケージが検索できるので便利です。


#インストールされたrpmパッケージを一覧表示する
rpm -qa | grep [パッケージ名]

今回チュートリアルでRemiがインストールされているかの確認やPHP関連モジュールがインストールされているかの確認をする際に使います。

 

チュートリアル

実現したいこと

  • Vagrant上(CentOS6.7)にLaravel5.2をインストール
  • Laravelスタートページを表示

手順

1. EPEL, Remiのリポジトリを追加


#EPEL、Remiがインストールされているか確認
rpm -qa | grep epel-releas
rpm -qa | grep remi-release

#なかったのでEPEL、Remiリポジトリを追加
#PHP5.6を入れるのにRemiレポジトリは必要

#Centos 6.x 64ビット EPELインストール
sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

#Centos 6.x 64ビット Remiインストール
sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

#インストールされたかもう一度確認
rpm -qa | grep epel-releas
rpm -qa | grep remi-release

EPELとRemiが両方ともインストールされたのが確認できました。

 

2. PHPと関連モジュールをインストール

LaravelはPHPのフレームワークなのでPHPをいれないと動きませんよね。

また、Laravelを動かすためにはいくつかのPHP関連モジュールもインストールしないといけません。

特にプログラミング学習サイト「ドットインストール」によるとphp-xmlをインストールしておかないと上手くいかなくなるみたいです。

yumコマンドでインストールが済んだらphp-xmlがちゃんと入っているか確認します。


#PHP5.6と関連モジュールをインストール
#php-xmlは必要
sudo yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-mcrypt php-mbstring php-pdo php-mysqlnd php-tokenizer php-xml

#php-xmlがインストールされたか確認
rpm -qa | grep php-xml

 

3. Composerをインストール

Laravelではパッケージ(ライブラリ)の依存関係の管理にComposerを使用しています。

Composerのインストールは必須です。

以下のコマンドをたたくとComposerがインストールされます。

curl -sS https://getcomposer.org/installer | php

 

4.Composer経由でLaravelのプロジェクトを作成

Laravelでプロジェクトを作成する方法は2通りあります。

  1. Composer 経由でプロジェクトを作成
  2. Laravel インストーラでプロジェクトを作成

インストーラでは上手くいかなかったのでComposer経由でプロジェクトを作成することにしました。

※Laravelインストーラv1.2.1にはバグがあるみたいです。


#プロジェクト名は"myblog"
php composer.phar create-project --prefer-dist laravel/laravel myblog

 

5. ArtisanコマンドでWEBサーバを走らせる

Artisanコマンドの「Artisan」はフランス語で職人という意味です。

読み方は「アーティザン」と読みます。

#Artisanコマンドを使用するためにプロジェクト(myblog)に移動する
cd myblog

#ArtisanコマンドでWEBサーバを起動させる
php artisan serve --host 192.168.33.10 --port 8000

これでブラウザのURLに

「192.168.33.10:8000」

と入力するとLaravelの画面が表示されます。

 

はまったところ

Laravelインストーラでのインストールが上手くいかない

Laravelインストーラでは何故か上手くいきませんでした。

ネットで調べてみるとLaravelインストーラは使わず、Composer経由でプロジェクト作成がベターみたいです。

プログラミング学習サイト「ドットインストール」でもComposer経由でプロジェクト作成をしていますね。

 

プロジェクトに移動しないとArtisanコマンドが実行されない

ArtisanコマンドでWEBサーバを起動させる際に「そんなコマンドないよ!」と言われて起動できずに困っていました。

SSHの画面に吐き出されたerror文言で検索するとLaravelプロジェクトに移動しないとArtisanコマンドは使えないみたいです。

 

-環境構築