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에 영향을 주지 않고 이를 설치하는 방법은 무엇입니까? 내 서버에 두 개의 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가 나타날 때마다 취약점을 추적하고 새 버전을 컴파일해야 한다는 점을 기억하십시오. 새 버전으로 인해 사이트가 중단되는 경우 원인을 찾아 코드를 업데이트해야 합니다. 많은 일이 필요합니다.