Help us understand the problem. What is going on with this article?

そろそろ暖かくなってきたし CentOS6 に Laravel5 をインストールしてみた

More than 5 years have passed since last update.

最小構成かな?
またまたvagrant上に構成しています。firewallの設定は割愛します。
vagrant環境は以下の通りです。
OS:CentOS6.5
PHP:5.6.7
MySQL:5.5.43

Vagrantfile

こんな感じ

Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "centos65"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "./data", "/var/www/html"
end

Laravelに必要なもの

PHP:5.4 以上
PHPモジュール:php-mcrypt(えむくりぷとと読むらしい…), php-mbstring, php-pdo, php-mysqlnd, php-tokenizer(これ使ってるのか?)
必要のないものはインストールしません。
これがいまのところベターな構成ではないでしょうか。

PHPをインストール

PHP5.4以上ということですが、せっかくなので5.6をインストールします。

  1. PHP5.6に必要なremiレポジトリを追加します。

    console
    $ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    
  2. PHPと関連モジュールたちをインストール

    console
    $ sudo yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-mcrypt php-mbstring php-pdo php-mysqlnd php-tokenizer
    
  3. 確認

    console
    $ php -v
    PHP 5.6.7 (cli) (built: Mar 19 2015 15:09:09)
    Copyright (c) 1997-2015 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    

Composerを手に入れる

Laravelは基本的にComposerでインストールします。Composerをゲットしましょう。

  1. Composerをローカルインストール

    console
    $ curl -sS https://getcomposer.org/installer | php
    
  2. 今回はグローバルインストールしたいので、すでにPATHが通っているディレクトリに移動させます。

    console
    $ sudo mv composer.phar /usr/local/bin/composer
    
  3. 確認

    console
    $ composer
       ______
      / ____/___  ____ ___  ____  ____  ________  _____
     / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
    Composer version 1.0-dev (921b3a0eba139820716f7aeefb553197c14656d8) 2015-04-15 18:27:04
    

Laravelインストーラーを手に入れる

  1. 公式のインストーラーがあるので、ゲットする。

    console
    $ composer global require "laravel/installer=~1.1"
    
  2. PATHを通す

    console
    $ echo 'export PATH=~/.composer/vendor/laravel/installer:$PATH' >> ~/.bash_profile
    
  3. 設定を反映

    console
    $ source .bash_profile
    
  4. 確認

    console
    $ laravel
    Laravel Installer version 1.2.0
    

Laravelプロジェクトを作成する

  1. さきほどPATHを通したlaravelコマンドを使う

    console
    $ laravel new test
    Crafting application...
    Generating optimized class loader
    Compiling common classes
    Application key [hogehogehogehogehoge] set successfully.
    Application ready! Build something amazing.
    

    今回はtestというプロジェクトを作成しますが、各自変えてください。
    rails ne.. うっ頭が…

動かしてみる

  1. Laravelにはアーチさんという職人がいるそうです。この方がビルトインサーバーもやってくれます。

    console
    $ cd test
    $ php artisan serve --host 0.0.0.0
    Laravel development server started on http://0.0.0.0:8000/
    
    

    artisan【名詞】
    熟練工, (腕のいい)職人
    多分読みはアーチさんではなくアルチザン…

    この状態でhttp://192.168.33.10:8000 にアクセス

    Imgur
    おー
    なんかナウいぞ

Apacheで動かす

  1. 関連モジュールとしてインストールされる記憶があったけど、インストールされていないならインストールする。

    console
    $ sudo yum install httpd
    
    console
    $ sudo service httpd start
    Starting httpd: httpd: apr_sockaddr_info_get() failed for vagrant-centos65.vagrantup.com
    httpd: Could not reliably determine the servers fully qualified domain name, using 127.0.0.1 for ServerName
                                            [  OK  ]
    

    起動した
    ServerName変えろよって怒られる。いつものこと。

  2. 自動起動の設定もしちゃう

    console
    $ sudo chkconfig httpd on
    
  3. 確認
    http://192.168.33.10 アクセス

    Imgur

    ここまではOK
    ここでさっきのLaravelホーム画面みたいなの出したい

とりあえずvagrantのsync設定書き換える

vagrant使ってない人は飛ばしてください。

Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "centos65"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "./data", "/var/www/html", owner: "apache", group: "apache", :mount_options => ["dmode=775"]
end

ディレクトリの所有者とグループをApacheに変更しつつ、apacheユーザーとapacheグループのみにread & write権限を付与

console
$ vagrant reload

リロードします。

プロジェクトをドキュメントルートに移動

  1. 普通にmv

    console
    $ sudo mv test/ /var/www/html/
    
  2. vagrant使ってない人はここで権限の設定しとく

    console
    $ sudo chown -R apache:apache /var/www/html/test/
    $ sudo chmod -R 775 /var/www/html/test/
    

Apacheの設定からドキュメントルートとか設定

  1. ドキュメントルートを書き換える

    console
    $ sudo sed -i 's_DocumentRoot \"/var/www/html\"_DocumentRoot \"/var/www/html/test/public\"_' /etc/httpd/conf/httpd.conf
    

    プロジェクト名testの部分は各自書き換えてください

  2. Apache起動するたびに怒られるのでServerNameも書き換える

    console
    sudo sed -i 's/#ServerName www.example.com:80/ServerName 127.0.0.1/' /etc/httpd/conf/httpd.conf
    
  3. .htaccessも許可しとく

    console
    $ sudo sed -i '/<Directory \"\/var\/www\/html\">/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
    

    こいつを変えておかないとルーティングがうまくいかない。

  4. Apache再起動する

    console
    $ sudo service httpd restart
    Stopping httpd:                                        [  OK  ]
    Starting httpd:                                        [  OK  ]
    

    もう怒られない。

  5. 確認
    http://192.168.33.10 アクセス

    Imgur

    おぉ

Laravel触ってみる

  1. http://192.168.33.10/home アクセス

    Imgur

    どうやらScaffoldでユーザー周りは作成されている模様

    右上のRegisterから新規ユーザー作ってみる

    Imgur

    register

    Imgur

    …せやな

データベースに接続する

  1. MySQLをインストールする。

    console
    $ sudo yum install -y --enablerepo=remi mysql-server
    $ sudo service mysqld start
    Starting mysqld:                            [  OK  ]
    

    自動起動しとく

    console
    $ sudo chkconfig mysqld on
    
  2. データベースを作成する

    console
    $ mysql -uroot
    mysql> create database laravel;
    mysql> \q
    Bye
    

    データベース名laravelにしましたが、好きな名前で構いません。

  3. 設定ファイルを作成する

    console
    $ cd /var/www/html/test/
    $ sudo vi .env
    
    .env
    DB_HOST=localhost
    DB_DATABASE=laravel
    DB_USERNAME=root
    DB_PASSWORD=null
    

    DB_DATABASEはさきほどのデータベース名
    それ以外は上記のような形に書き換える

  4. Migrateする

    console
    $ sudo php artisan migrate
    Migration table created successfully.
    Migrated: 2014_10_12_000000_create_users_table
    Migrated: 2014_10_12_100000_create_password_resets_table
    

    これでデータベースにテーブルとかカラムとか作ってくれる
    ほんとrailsっぽい

Laravel触ってみる(2回目)

もっかいRegister

Imgur

はい、ドーン!

Imgur

サインアップできました。
なんかもうお腹いっぱい。

終わりに

これから新卒とか、入学とかでPHP始めようと考えてる人の役に立てばと思う。Laravelのコードはまだ書いてないけど、多分これからLaravel使っていくと思うし、またエラーで悩んだりしたらTips残したい。

IKEA_dless
Web系修行中
cirkit
地域活性化を目的に学生と地域をつなぐサービスを開発・運営しています。
http://www.cirkit.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした