AlmaLinuxにComposerの導入してみる

PHPのパッケージ管理システムとして「Composer」を利用している方は多いのではないでしょうか？

今回はAlmaLinuxにComposerの導入する方法をご紹介致します。

## PHPComposerとは

![php001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3668800/e278896c-b093-4436-534d-7ddf9d788d3c.png)

ComposerはPHPのパッケージ管理システムとなります。

依存関係の管理やパッケージのバージョン管理等を行う事が出来ます。

下記公式サイトとなります。

https://getcomposer.org/

下記githubリポジトリとなります。

https://github.com/composer/composer

## 環境

今回インストールを行う環境は以下となります。

```
cat /etc/almalinux-release 
AlmaLinux release 9.3 (Shamrock Pampas Cat)
```

Apacheのバージョンは以下となります。

```
httpd -V
Server version: Apache/2.4.57 (AlmaLinux)
```

## phpのインストール

始めに「php」のインストールを行います。

下記コマンドを使用しインストールを行います。

```
dnf install php
```

上記を実行すると下記の様に表示されますので「y」を選択しインストールを進めます。

```
Last metadata expiration check: 1:46:03 ago on Fri 28 Jun 2024 09:27:24 PM JST.
Dependencies resolved.
=============================================================================================================================================================================================================================================
 Package                                               Architecture                                    Version                                                                      Repository                                          Size
=============================================================================================================================================================================================================================================
Installing:
 php                                                   x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          7.7 k
Installing dependencies:
 oniguruma                                             x86_64                                          6.9.6-1.el9.5                                                                baseos                                             217 k
 php-common                                            x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          675 k
Installing weak dependencies:
 php-cli                                               x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          3.5 M
 php-fpm                                               x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          1.8 M
 php-mbstring                                          x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          471 k
 php-opcache                                           x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          375 k
 php-pdo                                               x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                           81 k
 php-xml                                               x86_64                                          8.1.27-1.module_el9.3.0+53+44872dd1                                          appstream                                          142 k

Transaction Summary
=============================================================================================================================================================================================================================================
Install  9 Packages

Total download size: 7.2 M
Installed size: 36 M
Is this ok [y/N]: 
```


下記コマンドを使用する事でバージョンを確認する事が出来ます。

```
 php-fpm -v

 PHP 8.1.27 (cli) (built: Dec 19 2023 20:35:55) (NTS gcc x86_64)
```

今回使用するバージョンはphp「8.1.27」となっておりました。

## composerのインストール

次にcomposerのインストールを行っていきます。

インストール詳細は下記をご確認よろしくお願い致します。

https://getcomposer.org/download/

始めにインストール用の一時ディレクトリを作成します。

今回は下記パスにてインストールを行います。

```
mkdir -p /home/Composer
```

次に上記パスに移動します

```
cd /home/Composer
```

次に下記コマンドを使用しインストール用のファイルを取得します。

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

「ls」コマンド使用しファイルの取得を確認します。

下記の様に「composer-setup.php」がディレクトリ内にダウンロードできていれば準備完了です。

```
#コマンド
ls -al

#結果
-rw-r--r--  1  Jun 28 23:23 composer-setup.php
```

次に下記コマンドを使用しcomposerの整合性を確認します。

コマンドは公式サイトより最新の情報を取得してください。

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

下記の様に「Installer verified」と出ていれば問題ないです。


```php
Installer verified
```

問題がある場合は下記の様に「Installer corrupt」と表示されインストールファイルが自動で削除されます。

```php
Installer corrupt
```

次に下記コマンドを使用しインストールを行います。

```php
php composer-setup.php
```

インストールを行うと下記の様に「successfully installed」と表示されます!

```php
All settings correct for using Composer
Downloading...

Composer (version 2.7.7) successfully installed to: /home/Composer/composer.phar
Use it: php composer.phar
```

次に不要なインストールファイルを削除します。
```
php -r "unlink('composer-setup.php');"
```

次に下記コマンドを使用しcomposerファイルを「bin」配下に移動させます。

下記コマンドはroot権限が必要となります。

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

rootに昇格できない場合は「sudo」コマンドを使用し実施してください。

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

以上でインストール完了です。

## インストール確認

最後にインストール確認を行います。

始めに下記コマンド使用しパスを確認します。

```
which composer
```

下記の様に表示されていれば問題ないです。

```php
/usr/local/bin/composer
```

次に下記コマンドを使用しインストールバージョンを確認します。
```php
composer --version
```

今回は下記の様に表示されました。

```php
Composer version 2.7.7 2024-06-10 22:11:12
PHP version 8.1.27 (/usr/bin/php)
```

下記コマンドを使用する事で詳細診断を行う事も出来ます。

```php
composer diagnose
```