CentOS 7を使用しています。私はPHP 7をインストールしたいのでそれを使用しましたremi-php
(最新のPHPバージョンyum
は5.4です)。 HTTPDバージョンがyum
古すぎるため、ソースコードから最新のHTTPDバージョンをコンパイルしました。
remi-php
ただし、次のコマンドを使用してインストールしようとすると、HTTPDは非常にシームレスにコンパイルされます。
yum --enablerepo=remi-php71 install php php-cli php-intl php-mbstring php-mcrypt php-mysqlnd
php
をインストールするには、yum
以前のバージョンもインストールされますhttpd
(最新のHTTPDバージョンをコンパイルして使用しましたが)。インストールを続行するとHTTPDでエラーが発生して起動しませんが、インストールを続行しないとファイルをインポートできず、php*.so
Apacheはそのファイルを解析しません.php
。
それでは、php
以前にコンパイルされたApache HTTPDに影響を与えずにそれをインストールする方法は何ですか?私のサーバーに2つのApache HTTPDインスタンスが同時に存在したくありません。これにより、後で問題が発生する可能性があります。
あなたがくれた答えは私にとって大きな助けになります。
ご回答ありがとうございます。
答え1
使用することをお勧めしますソフトウェアコレクション(SCL)の代わりに。少なくともCentOS 7が2024年に終了するまで、サポートされているPHP(最大7.3)およびHTTPd(2.4)バージョンを提供します。まず、SCLリポジトリをインストールします。
yum install centos-release-scl centos-release-scl-rh
その後、PHPとHTTPdのSCLバージョンをインストールできます。
yum install httpd24 rh-php73
これにより、必要な基本的な依存関係が発生します。以下に記載されている他のPHPモジュールをインストールするには、パッケージ名の前に次のものを付けますrh-php73
。
yum install rh-php73-php-cli rh-php73-php-intl rh-php73-php-mbstring rh-php73-php-mysqlnd
7.3用のSCLバージョンが見つからないため、php-mcrypt
自分でビルドする方法を見つける必要があるかもしれません。しかし、これはPHP 7.1では廃止とマークされています、そして必要があります7.2のPHPコアから削除されました。したがって、これはおそらく予想されるものです。 PHPプロジェクトは次の選択肢をお勧めします。
- 使用OpenSSL。これにはサポートが
rh-php73-php-common
あり、依存関係で自動的にインストールされます。 - 使用ナトリウム。これを行うには、追加パッケージである
sclo-php73-php-sodium
。
すべてがインストールされると、設定ファイルが通常の場所にないことがわかります。これは、SCLパッケージが基本パッケージと並列にインストールできるように設計されているためです。
デフォルトパス | SCLパス |
---|---|
/etc/httpd |
/opt/rh/httpd/root/etc/httpd |
/etc/php.ini |
/etc/opt/rh/rh-php73/php.ini |
/etc/php.d |
/etc/opt/rh/rh-php73/php.d |
/var/log/httpd |
/var/log/httpd24 |
HTTPdを開始する準備が整うと、サービス名も異なるように指定されます。
systemctl --now enable httpd24-httpd.service
最後に、バージョン番号に関しては、CentOS 7のほとんどすべてがRHEL 7から直接派生していることに注意してください。バージョン番号自体は少し古いものかもしれませんが、それ以降のバージョンのパッチがバージョン番号にバックポートされることがよくあります。アイデアは、必要なバグとセキュリティ修正を提供しながら、ABIの安定性を維持することです。
答え2
Apache HTTPdのように独自のPHPをコンパイルするか、Centos7のパッケージバージョン(Remiのphp7パッケージとうまく機能します)を使用する必要があります。
yumの外部にランダムなエントリをインストールすると、パッケージデータベースに通知されません。新しいhttpd用のパッケージを作成できますが、CentOSでは依然として深刻なセキュリティ更新プログラムを入手する必要があるため、httpdを使用することをお勧めします。
今コンパイルするすべてはあなたの責任であり、新しいCVEが表示されるたびに脆弱性を追跡し、新しいバージョンをコンパイルする必要があることを覚えておいてください。新しいバージョンでサイトがクラッシュした場合は、原因を見つけてコードを更新する必要があります。多くのことが必要です。