はじめに
PHPにはComposerが必須だとのことなので、インストールすることにしました。
前提
過去記事のWindows10にVagrantをを入れてCentOS7をインストールしよう(1、2、3、4、5、6)、
ローカルでLAMP環境を構築しよう(0、1、2、3、4)で構築した環境を前提とします。
使用ツール
- 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. ファイアウォールとか停止する