アラサー転職組の新米エンジニア日記

2017年に未経験からエンジニアになったアラサーです。

CentOS7上でLaravelの環境を構築してみた ~PHP7 ComposerをインストールからLaravelのプロジェクト作成まで~

 

 

Composerはlaravelに必要な構成管理ツール

Laravelでwebアプリ開発したいなって考えててただいま勉強中です。

 

 

Linux⇒CentOS7

[ーーー@localhost htdocs]$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

PHP⇒Version7(無駄なものも入ってるかもです)

[ーーー@localhost htdocs]$ rpm -qa | grep php
php-7.0.28-1.el7.remi.x86_64
php-json-7.0.28-1.el7.remi.x86_64
php-pdo-7.0.28-1.el7.remi.x86_64
php-cli-7.0.28-1.el7.remi.x86_64
php-gd-7.0.28-1.el7.remi.x86_64
php-mbstring-7.0.28-1.el7.remi.x86_64
php-devel-7.0.28-1.el7.remi.x86_64
php-common-7.0.28-1.el7.remi.x86_64

 

 

1、まずはダウンロードサイトからファイルのインストール

 

https://getcomposer.org/download/

上記のページに移動し下にスクロールするとManual Downloadって項目があるのでそこの最新版をコピーしてwgetコマンドをしましょー

 

https://getcomposer.org/download/1.6.3/composer.phar

 

[root@localhost ~]# wget https://getcomposer.org/download/1.6.3/composer.phar

 

カレントディレクトリにファイルがあるはず

[root@localhost ~]# ls -l
合計 1832

-rw-r--r-- 1 root root ---- 2月 1 00:28 composer.phar

 

2、これをcomposerにリネーム&binディレクトリに配置しましょう。

 [root@localhost ~]# mv composer.phar /usr/local/bin/composer

 [root@localhost ~]# ls -l /usr/local/bin/composer
-rw-r--r-- 1 root root 1861877 2月 1 00:28 /usr/local/bin/composer

 

3、これだと実行権限がないのでパーミッションの設定をしましょー

[root@localhost ~]# chmod 755 /usr/local/bin/composer

 

[root@localhost ~]# ls -l /usr/local/bin/composer
-rwxr-xr-x 1 root root 1861877 2月 1 00:28 /usr/local/bin/composer

 

4、composer -Vをコマンドして表示されれば完了ですー

[root@localhost ~]# composer -V
Composer version 1.6.3 2018-01-31 16:28:17

 

5、laravelのをインストール

☆☆まずはrootディレクトリだと怒られるのでユーザーへその後下記をコマンド

 

[ーーー@localhost ~]$ composer global require "laravel/installer=~1.1"

 

この後”Changed current directory to /home/----/.config/composer”

ってメッセージがでて「あれ?」ってなるかもしれませんが、まっとけばインストールが始まります。

 

Writing lock file
Generating autoload files

[ーーー@localhost ~]$

これで完了。

 

6、さてでは簡単なプロジェクトを作成してみますか。

とりあえずwebサーバーのドキュメントディレクトリに移動(/var/www/htdocs⇒httpd.confのDocumentRoot見てね)

[ーーー@localhost ~]$ cd /var/www/htdocs

☆composer create-project laravel/laravel プロジェクト名 --prefer-dist

上記をコマンドして作成できます

[ーーー@localhost htdocs]$ composer create-project laravel/laravel test --prefer-dist
Installing laravel/laravel (v5.5.28)


[ErrorException]
mkdir(): Permission denied

。。。上記の通り怒られます。

ディレクトリのパーミッション変更をしましょー

[ーーー@localhost htdocs]$ sudo chmod 777 /var/www/htdocs

※htdocsはApacheでドキュメントルート

 

再度入力

[ーーー@localhost htdocs]$ composer create-project laravel/laravel test --prefer-dist

 

完成したらドキュメントルート内にtestディレクトリがあるよ

[ーーー@localhost htdocs]$ ls -l
合計 92
drwxrwxr-x 11 ーーー ---4096 3月 16 20:46 test

 

7、さてこのディレクトリに入りartisanコマンドでサーバーを実行してみます

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ここからむちゃくちゃはまりました下記トラブル回避

[ーーー@localhost test]$ php artisan serve
PHP Warning: require(/var/www/htdocs/test/vendor/autoload.php): failed to open
PHP Fatal error: require(): Failed opening required '/var/www/htdocs/test/vendo on line 18

 

この時点でvenderのディレクトリがなくて調べたらcomposer updateしたったらいいねんって感じの記載があったのでしてみたら

[---@localhost test]$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- phpunit/phpunit 6.5.7 requires ext-dom * -> the requested PHP extension do

どうやらレポジトリにphp-xmlをインストールする必要があるみたいでした

それで下記を続いて実行

[root@localhost ~]# yum install  --enablerepo=remi,remi-php71 php-xml

インストール:
php-xml.x86_64 0:7.1.15-1.el7.remi

依存性を更新しました:
php.x86_64 0:7.1.15-1.el7.remi php-cli.x86_64 0:7.1.15-1.el7.remi php-common.x86_64 0:7.1.15-1.el7.remi php-devel.x86_64 0:7.1.15-1.el7.remi
php-gd.x86_64 0:7.1.15-1.el7.remi php-json.x86_64 0:7.1.15-1.el7.remi php-mbstring.x86_64 0:7.1.15-1.el7.remi php-pdo.x86_64 0:7.1.15-1.el7.remi

 

無事に完了。。。長かった。。

 

8、再度手順7のコマンドを打ちます

 

[ーーー@localhost test]$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

 

お。今度は成功・・・と思いきやブラウザでこのURLに飛ぶとエラー画面が表示されました。(一応このコマンドを打った後のターミナルの挙動はこちらであってます)

どうやらダメっぽかったのでここから再度laravelを入れなおすとうっぷグレードされました。笑(手順5を再度やる)

そのあと作成したprojectを削除して再度手順6から同じことをやると手順7終了後、今度はちゃんとブラウザに表示されました。

☆☆補足1

先日この手順で別のマシンで構築したところ手順8のところでコマンド後ブラウザに飛ぶとエラー画面が下記のようなエラーが出ました。

No application encryption key has been specified.

なんかなんかキーを作成する必要があるみたいで下記のサイトを参照させていただいたら無事に起動しました。インターネット万歳

qiita.com

めでたしめでたし。

 

f:id:wakachann:20180316232545j:plain

 

 

 

※まだドが付くほどのエンジニア素人なのでここがおかしいとかあったら遠慮なくリプライなどくれたらめちゃくちゃうれしいです。。。