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.
なんかなんかキーを作成する必要があるみたいで下記のサイトを参照させていただいたら無事に起動しました。インターネット万歳
めでたしめでたし。
※まだドが付くほどのエンジニア素人なのでここがおかしいとかあったら遠慮なくリプライなどくれたらめちゃくちゃうれしいです。。。