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

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

インストールのコードは[公式サイト](https://getcomposer.org/download/)を参照している。

##公式サイトのインストール手順
公式サイトより以下コードを使用。

```:公式サイト（日本語翻訳ページ）
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'）;"
```

<br>
##解決方法まとめ
エラー解消のために実行することは２つ。

**(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');"
```

詳細は以下ご参照。


<br>
##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 がインストールされていない。


<br>
###解決策
Homebrewをインストールして、opensslをインストールすればOK。

[Homebrew公式ページ](https://brew.sh/index_ja)

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


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

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

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



<br>
##２行目のエラー
続いて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



<br>
###解決策
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のバージョンによってコード内容が異なるため、最新コードは[公式ページ](https://getcomposer.org/download/)で確認のこと。

<br>

```:成功した場合
$ 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のインストールが完了。


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


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

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


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