【対策・解決方法】エラー:php-posix が必要ですが、どのプロバイダーからもインストール できません
こんにちは!インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE)です。
本記事では、CentOS8環境でphpMyAdminをPHP8.1対応でインストールする際に発生する「php-posix が必要ですが、どのプロバイダーからもインストール できません」エラーの原因と解決方法を解説します。完全版のインストール手順は以下の記事をご覧ください。

「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。
エラー内容:php-posix が必要ですが、どのプロバイダーからもインストール できません
エラー:
パッケージ phpMyAdmin-5.2.1-1.el8.remi.noarch には php-posix が必要ですが、どのプロバイダーからもインストール できません
- ジョブの最良アップデート候補をインストールできません
- パッケージ php-process-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-7.3.20-1.module_el8.3.0+2009+b272fdef.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-7.4.30-1.module_el8.7.0+3286+227f3cf0.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-8.0.20-2.module_el8.7.0+3286+6cee236e.x86_64 はモジュラーフィルタリングに一致しません
- パッケージ php-process-8.0.27-1.module_el8.7.0+3401+dfb61c00.x86_64 はモジュラーフィルタリングに一致しません
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
【対策・解決方法】「remi-modular」リポジトリから「php-posix(php-process)」をインストールする
① remiリポジトリをインストールする
まず「remiリポジトリ」をインストールします。このリポジトリが無いと「php-posix(php-process)」のインストールに失敗します。以下のサイトでバージョンが選択できますが、Ver9はOSを9系にする必要があります。
http://rpms.remirepo.net/enterprise/
yum install -y http://rpms.remirepo.net/enterprise/remi-release-8.rpm
② php-posix(php-process)をインストールする
「remi-modular」リポジトリを有効にして php-posix をインストールします。これを入れるだけで前提パッケージのエラーが解消されます。
yum install --enablerepo=remi-modular php-posix -y
正常にインストールされると以下のようなコマンド結果が表示されます。
パッケージ アーキテクチャー バージョン リポジトリー サイズ
インストール:
php-process x86_64 8.1.18-1.el8.remi remi-modular 111 k
インストール済み:
php-process-8.1.18-1.el8.remi.x86_64
完了しました!
そもそもphp-posixとは?
「php-posix」は、PHPプログラムでPOSIX互換システムコールを実行するための拡張モジュールです。POSIXとはPortable Operating System Interfaceの略称で、UNIX系オペレーティングシステムにおいてプログラムが標準的なシステムコールを実行するためのAPIを定義した規格です。php-posixを使用することで、プロセス制御・ファイル操作・シグナル処理・パス名操作といったUNIX系OSの機能をPHPから利用できるようになります。phpMyAdminのインストール時に必要とされるケースがあります。
まとめ
本記事では「php-posix が必要ですが、どのプロバイダーからもインストール できません」エラーの解決方法として、remiリポジトリの導入と yum install --enablerepo=remi-modular php-posix による解消手順を解説しました。同様のエラーで困っている方はTwitterでご連絡ください。
カユラ(@kayura_SE)

コメント