LoginSignup
3
1

More than 3 years have passed since last update.

【Laravel】composerインストール時のエラー 内容と対処法。Googleの自動翻訳してませんか?

Posted at

Laravelの導入にあたりPHPのライブラリ管理ツールのcomposerをインストールしようとするとエラーが発生する。

インストールのコードは公式サイトを参照している。

公式サイトのインストール手順

公式サイトより以下コードを使用。

公式サイト(日本語翻訳ページ)
php -r "copy( 'https://getcomposer.org/installer'、'composer-setup.php');" 
php -r "if(hash_file( 'sha384'、 'composer-setup.php')=== '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3'){echo 'インストーラー検証済みphp ');} echo PHP_EOL; " 
php composer-setup.php 
php -r "unlink( 'composer-setup.php');"


解決方法まとめ

エラー解消のために実行することは2つ。

(1) homebrewでopensslのインストール。
(2) Google翻訳を解除し原文のコードを使う。

原文のコード
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

詳細は以下ご参照。


1行目のエラー

$ php -r "copy( 'https://getcomposer.org/installer'、'composer-setup.php');"

Parse error: syntax error, unexpected ''https://getcomposer.org/insta' (T_CONSTANT_ENCAPSED_STRING) in Command line code on line 1

>エラー内容
Parse error: syntax error, unexpected ''https://getcomposer.org/insta' (T_CONSTANT_ENCAPSED_STRING) in Command line code on line 1

これはOpenSSLがインストールされていないために発生するエラー。

macOS 10.12 (Sierra) 以降の macOS では、 デフォルトで OpenSSL がインストールされていない。


解決策

Homebrewをインストールして、opensslをインストールすればOK。

Homebrew公式ページ

#homebrewのインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


#opensslのインストール
brew install openssl

上記実行後に1行目を再度実行すればOK。

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"


2行目のエラー

続いて2行目のコードを実行してもエラーが発生する。

エラー
$ php -r "if(hash_file( 'sha384'、 'composer-setup.php')=== '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3'){echo 'インストーラー検証済みphp ' );} echo PHP_EOL; "

Parse error: syntax error, unexpected ''sha384'' (T_CONSTANT_ENCAPSED_STRING) in Command line code on line 1

>エラー内容
Parse error: syntax error, unexpected ''sha384'' (T_CONSTANT_ENCAPSED_STRING) in Command line code on line 1


解決策

google翻訳した状態でコードを貼り付けたことでシンタックスエラーが発生している。

原文に戻し、実行すればOK。

原文のコード
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

composerのバージョンによってコード内容が異なるため、最新コードは公式ページで確認のこと。


成功した場合
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified

コードが実行されるとInstaller verifiedが表示される。

3行目は問題なし

3行目は指定通りのコードを実行すればエラーが発生せず実行できる。

3行目の処理結果
$ php composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 2.0.8) successfully installed to: /Users/s01386/projects/composer.phar
Use it: php composer.phar

4行目のエラー

こちらも2行目と同じくgoogle翻訳されたことが原因。原文に戻してコードを実行すれば処理できる。

php -r "unlink('composer-setup.php');"

以上でcomposerのインストールが完了。


翻訳後のコード比較

2行目はコード内に日本語が混入しているのでエラー発生はわかるが、4行目のコードは翻訳前後で英語のみのため、全く同じに見える、、

比較
php -r "unlink('composer-setup.php');"   #翻訳前(原文)
php -r "unlink( 'composer-setup.php');" #翻訳後

比較してみると、翻訳後に空白が追加されていることがわかる、、



Google翻訳は便利だけどコードの場合は注意が必要。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1