0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOS7にComposerをインストールしよう

Last updated at Posted at 2020-05-28

はじめに

PHPにはComposerが必須だとのことなので、インストールすることにしました。

前提

過去記事のWindows10にVagrantをを入れてCentOS7をインストールしよう(123456)、
ローカルでLAMP環境を構築しよう(01234)で構築した環境を前提とします。

使用ツール

  • Tera Term

Composerとは?

Composerとは、PHPのパッケージ管理システムのこと。
必要なパッケージをコマンド一つでインストールしてくれる便利アイテム。

方法は3種類

1. 公式インストール手順

Composer公式のCommand-line installationのコードを実行する方法です。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

解説

各行でやっていることを簡単に説明します

カレントディレクトリにインストーラーをダウンロード。

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

インストーラーがSHA-384か確認。
たぶん最新版かどうかみたいな話のような気がするので、
この行はバージョンアップとかの際に変わるのかもしれませんね。

php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

インストーラーを実行。

php composer-setup.php

インストーラーを削除。

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

2. 簡易版

上記の公式のインストール手順と同内容を下記コマンドで実行することができます。
こっちのほうが簡単かも?

curl -sS https://getcomposer.org/installer | php

解説

curlコマンド
HTTPアクセスをしてコンテンツを取得できるコマンド。
https://getcomposer.org/installer からインストーラーを取得しています。
-sオプション
ダウンロードの進捗とエラーメッセージを表示しないためのオプションです。
-Sオプション
-sオプションと併用することで、エラーメッセージを表示することができます。
-sオプションのみの使用だと、エラーメッセージが表示されません。
|(パイプ)
|(パイプ)とはコマンドの標準出力を次のコマンドに渡す処理のことです。
curlコマンドで取得したインストーラーをphpコマンドで実行する...ということになるでしょうか。

3. yumを用いたインストール手順

コメントで@ABE_TAKASHIさんにアドバイスいただいた方法です。
yum --enablerepo=remi install composerを使用すると便利とのことで調べてみました。

そのまま実行すると、エラーが出てしまいました。

Error: Package: php-process-5.4.45-18.el7.remi.x86_64 (remi)
           Requires: php-common(x86-64) = 5.4.45-18.el7.remi
           Installed: php-common-7.1.33-8.el7.remi.x86_64 (@remi-php71)
               php-common(x86-64) = 7.1.33-8.el7.remi
           Available: php-common-5.4.16-48.el7.x86_64 (base)
               php-common(x86-64) = 5.4.16-48.el7
           Available: php-common-5.4.45-18.el7.remi.x86_64 (remi)
               php-common(x86-64) = 5.4.45-18.el7.remi
Error: Package: php-pecl-zip-1.18.2-1.el7.remi.5.4.x86_64 (remi)
           Requires: php(api) = 20100412-64
           Installed: php-common-7.1.33-8.el7.remi.x86_64 (@remi-php71)
               php(api) = 20160303-64
           Available: php-common-5.4.16-48.el7.x86_64 (base)
               php(api) = 20100412-64
           Available: php-common-5.4.45-18.el7.remi.x86_64 (remi)
               php(api) = 20100412-64
Error: Package: php-pecl-zip-1.18.2-1.el7.remi.5.4.x86_64 (remi)
           Requires: php(zend-abi) = 20100525-64
           Installed: php-common-7.1.33-8.el7.remi.x86_64 (@remi-php71)
               php(zend-abi) = 20160303-64
           Available: php-common-5.4.16-48.el7.x86_64 (base)
               php(zend-abi) = 20100525-64
           Available: php-common-5.4.45-18.el7.remi.x86_64 (remi)
               php(zend-abi) = 20100525-64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

調べてみると、上記ではphpのバージョンを指定していなかったこと、
php-pecl-zipがインストールされていないことで起こったエラーのようです。
以下のコマンドに修正して実行すると、無事インストールが完了しました。

sudo yum install --enablerepo=remi,remi-php71 php-pecl-zip composer

Composerをどこからでも使えるようにしよう

Slimフレームワークの使い方を知りたくてFirst Application Walkthroughを読んでいると、
プロジェクトのsrcフォルダにComposerをインストールしろと書いてあります。
zipとかのコマンドと違って、1つのサーバーにいくつもプロジェクトがある場合、
プロジェクトごとにこの作業を行わないといけないんでしょうか。

なぜ上記サイトではそうしろと書いてあるかはわかりませんが、
調べてみると、Linuxでは、"/bin/" や "/usr/bin/" などのディレクトリに
「その中の実行ファイルを任意のディレクトリから パス の指定なしに実行できる。」
という許可が与えられているため、
/usr/local/binフォルダにComposerの実行ファイルcomposer.pharを移動させれば、
どのディレクトリからでもComposerを使用することができるようです。

下記コマンドで、パスを通しましょう。

sudo mv composer.phar /usr/local/bin/composer

Composerのインストール確認は以下のコマンドで可能です。

composer -v

ちなみに、3. yumを用いたインストール手順では、パスを通す作業は不要のようです。
以下のコマンドで実行ファイルcomposer.pharを探しても見つからなかったのですが、
インストール確認コマンドをしたらバージョンが表示されました。

find / -name composer.phar

あと、rootユーザーでインストール確認コマンドを実行すると、
Do not run Composeras root/sper user!...と表示されて怒られてしまうので、
ローカルユーザーで実行したほうが良いようです。

参考サイト

Download Composer
hydroculのメモ > コマンドの使い方(Linux) > curl コマンド
パイプ「|」を使って 複数のコマンドを組み合わせる
CentOSにcomposerをインストールする方法
"パスが通っている"とは
CentOS7環境でLaravelを構築する

関連ページ

Windows10にVagrantをを入れてCentOS7をインストールしよう

1. VagrantインストールからVagrantfileを設置まで
2. 仮想マシンの操作
3. WinSCP、Tera Termに秘密鍵でログイン
4. WinSCP、Tera Termにrootユーザーでパスワードログイン
5. zip/unzipをインストール
6. Vagrantにて仮想環境を配布

ローカルでLAMP環境を構築しよう

0. 事前準備
1. Apacheをインストール
2. MySQLをインストール
3. PHPをインストール
4. ファイアウォールとか停止する

0
1
2

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?