さとうナイトニッポン

やったことのメモとか日々の雑記とか

【Laravel】最新バージョンでないバージョンを指定してプロジェクトを作成する際に嵌った

laravelでプロジェクト作成したときに、色々なくてちょっと泣きそうになったので
もう泣かないようにメモ

プロジェクト作成

プロジェクト作成(今回は古いバージョンを指定するのでインストーラは使用しない)

[hoge@huga /]$cd /var/www/
[hoge@huga www]$ composer create-project "laravel/laravel=5.2.*" gorilla.jp
.
.
.
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/phpunit 5.7.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.

エラー発生。
PHP extension domがなくてphpunit入らないとのこと

[hoge@huga www]$ yum list installed | grep 'php'
php.x86_64                           5.6.34-1.el7.remi               @remi-php56
php-cli.x86_64                       5.6.34-1.el7.remi               @remi-php56
php-common.x86_64                    5.6.34-1.el7.remi               @remi-php56
php-fpm.x86_64                       5.6.34-1.el7.remi               @remi-php56
php-gd.x86_64                        5.6.34-1.el7.remi               @remi-php56
php-mbstring.x86_64                  5.6.34-1.el7.remi               @remi-php56
php-mysqlnd.x86_64                   5.6.34-1.el7.remi               @remi-php56
php-pdo.x86_64                       5.6.34-1.el7.remi               @remi-php56
php-pecl-jsonc.x86_64                1.3.10-2.el7.remi.5.6           @remi-php56
php-pecl-zip.x86_64                  1.15.2-1.el7.remi.5.6           @remi-php56

php-xmlをインストール(php-domが内包されているらしい)
PHPUnit のインストールメモ

[hoge@huga www]# yum install php-xml


エラー: パッケージ: php-xml-5.4.16-43.el7_4.1.x86_64 (updates)
             要求: php-common(x86-64) = 5.4.16-43.el7_4.1
            インストール: php-common-5.6.34-1.el7.remi.x86_64 (@remi-php56)
                php-common(x86-64) = 5.6.34-1.el7.remi
            利用可能: php-common-5.4.16-42.el7.x86_64 (base)
                php-common(x86-64) = 5.4.16-42.el7
            利用可能: php-common-5.4.16-43.el7_4.x86_64 (updates)
                php-common(x86-64) = 5.4.16-43.el7_4
            利用可能: php-common-5.4.16-43.el7_4.1.x86_64 (updates)
                php-common(x86-64) = 5.4.16-43.el7_4.1
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

またしてもエラー。 phpがremiで入っているのにbaseのリポジトリで要求したからっぽい

こちらの記事( CentOSでのphp-xmlのインストールにはまる | 日々雑記)を見て再度試すも失敗

じゃあどれなら入るの?可能パッケージ確認

[hoge@huga www]# yum list available | grep php56
php56-php-xml.x86_64                      5.6.34-1.el7.remi            remi-safe

こいつが行けるらしい

[hoge@huga www]# yum install php56-php-xml.x86_65

.
.
.


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

依存性関連をインストールしました:
  audit-libs-python.x86_64 0:2.7.6-3.el7          checkpolicy.x86_64 0:2.5-4.el7                      environment-modules.x86_64 0:3.2.10-10.el7
  libcgroup.x86_64 0:0.41-13.el7                  libsemanage-python.x86_64 0:2.5-8.el7               libxslt.x86_64 0:1.1.28-5.el7
  php56-php-common.x86_64 0:5.6.34-1.el7.remi     php56-php-pecl-jsonc.x86_64 0:1.3.10-1.el7.remi     php56-php-pecl-zip.x86_64 0:1.15.2-1.el7.remi
  php56-runtime.x86_64 0:2.3-1.el7.remi           policycoreutils-python.x86_64 0:2.5-17.1.el7        python-IPy.noarch 0:0.75-6.el7
  scl-utils.x86_64 0:20130529-18.el7_4            setools-libs.x86_64 0:3.3.8-1.1.el7                 tcl.x86_64 1:8.5.13-8.el7

完了しました!

やった~~🤩🤩🤩🤩🤩
もう一回create project

[hoge@huga www]$ composer create-project "laravel/laravel=5.2.*" gorilla.jp

同じエラー
CentOS6.8+PHP5.6にPHPUnitのインストールではまる | remember the milk php-mcryptがいるらしい

[hoge@huga www]# yum --enablerepo=remi-php56 install php-mcrypt

またも同じエラー

php-xml入れてみる

[hoge@huga www]# yum --enablerepo=remi-php56 install php-xml
Running transaction
  インストール中          : php-xml-5.6.34-1.el7.remi.x86_64                                                                                         1/1
  検証中                  : php-xml-5.6.34-1.el7.remi.x86_64                                                                                         1/1

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

完了しました!

気を取り直して再度create project

[hoge@huga www]$ composer create-project "laravel/laravel=5.2.*" gorilla.jp

Installing laravel/laravel (v5.2.31)
  - Installing laravel/laravel (v5.2.31): Loading from cache
Created project in gorilla.jp
> php -r "copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
.
.
.
.
.
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
> php artisan key:generate
Application key [base64:XXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXX=] set successfully.

いけたっぽい?

storageとbootstrapの権限変更

[hoge@huga gorilla.jp]$ sudo chmod -R 777 bootstrap
[hoge@huga gorilla.jp]$ sudo chmod -R 777 storage

ブラウザからアクセス(ルートディレクトリのserver.phpを参照する)

laravel5

できたーーーーーーー( ;∀;)( ;∀;)( ;∀;)🎉🎉🎉

まとめ

  • PHP Unitインストールするにあたりphp-xmlが無かったからエラーが起きた。
  • php-xmlを入れるためのphp-mcryptがなかったのでphp-xmlがないと言われた。

php-mcryptphp-xml→composerで解決(^▽^)