> 백엔드 개발 > PHP 튜토리얼 > Linux에서 여러 PHP 버전 사용

Linux에서 여러 PHP 버전 사용

Barbara Streisand
풀어 주다: 2024-11-27 09:14:10
원래의
422명이 탐색했습니다.

Using Multiple PHP Version on Linux

이 게시물에서는 여러 PHP 버전을 사용하는 방법에 대해 설명합니다. 때로는 서로 다른 기술과 PHP 버전을 사용하여 서로 다른 앱 프로젝트를 진행해야 하는 경우가 있습니다. 예를 들어, 서로 다른 버전의 PHP를 실행하는 Laravel 11 PHP8 및 CodeIgniter 4 PHP7 프로젝트를 실행하려고 합니다. 실제로는 Docker 컨테이너를 사용하는 더 간단한 방법이 있지만 이에 대해서는 다음 게시물에서 다루도록 하겠습니다. 지금은 호스트에서 여러 PHP를 설치, 구성 및 실행하는 방법에 대해 설명하겠습니다.

그럼 먼저 Apache2를 사용하여 웹서버를 설정하고 사용할 PHP를 설정해야 합니다.

apt install apache2
로그인 후 복사
로그인 후 복사

PPA 저장소에서 설치할 것이므로 먼저 저장소를 추가해야 합니다

apt-get install software-properties-common -y
로그인 후 복사
로그인 후 복사

이 기능은 add-apt-repository 명령을 실행할 때 유용합니다. 다음으로, 다음 명령을 사용하여 저장소를 추가하세요

add-apt-repository ppa:ondrej/php
로그인 후 복사
apt update -y
로그인 후 복사

PHP 버전 7.2를 설치합니다

apt-get install php7.2 php7.2-fpm php7.2-mysql libapache2-mod-php7.2 libapache2-mod-fcgid -y
로그인 후 복사

그런 다음 내 vps가 Ubuntu 24.04이고 기본값이 PHP 8.3이므로 PHP 버전 8을 설치합니다. 버전을 지정하지 않고 설치하려면 다음과 같습니다.

apt-get install php php-fpm php-mysql libapache2-mod-php libapache2-mod-fcgid -y
로그인 후 복사

php-fpm 실행

systemctl start php7.2-fpm
로그인 후 복사
systemctl start php8.3-fpm
로그인 후 복사

그런 다음 여러 PHP 버전을 사용할 수 있도록 다음 모듈을 활성화하세요

a2enmod actions fcgid alias proxy_fcgi
로그인 후 복사

그런 다음 Apache 서비스를 다시 시작하여 모든 변경 사항을 적용합니다.

systemctl restart apache2
로그인 후 복사

자, 계속해서 웹 서버에 가상 호스트를 설정해 보겠습니다.

mkdir /var/www/app1
mkdir /var/www/app2
로그인 후 복사

권한과 소유자도 설정하세요

chown -R www-data:www-data /var/www/app1
chown -R www-data:www-data /var/www/app2
chmod -R 775 /var/www/app1
chmod -R 775 /var/www/app2
로그인 후 복사

apache2에서 사이트 사용 가능 구성을 계속 진행하고 먼저 구성 파일을 생성합니다.

저희는 도메인이 없기 때문에 가상호스트와 포트를 구분하겠습니다. php7.2를 실행하는 포트 80과 php8.3을 실행하는 포트 90

nano /etc/apache2/sites-available/app1.conf
로그인 후 복사

그런 다음 다음 구성을 붙여넣으세요

+<VirtualHost *:80>
+     ServerAdmin app1
+     ServerName app1.com
+     DocumentRoot /var/www/app1
+     DirectoryIndex info.php

+     <Directory /var/www/app1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>

    <FilesMatch \.php$>
        # From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server
+         SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
    </FilesMatch>

     ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log
     CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined
</VirtualHost>
로그인 후 복사

PHP 버전 8용 다른 구성 파일 만들기

nano /etc/apache2/sites-available/server2.conf
로그인 후 복사

구성도 붙여넣으세요

+<VirtualHost *:90>
+     ServerAdmin site2
+    ServerName site2.com
+     DocumentRoot /var/www/app2
+     DirectoryIndex info.php

+     <Directory /var/www/app2>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>

    <FilesMatch \.php$>
        # From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server
+         SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
    </FilesMatch>

     ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log
     CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined
</VirtualHost>
로그인 후 복사

녹색 섹션에는 우리의 조건과 필요에 따라 변경해야 할 여러 구성 라인이 있습니다

그런 다음 구성이 잘못된지 테스트하고 구문이 올바른지 확인하여 다음 단계로 진행할 수 있습니다

apachectl configtest
로그인 후 복사

다음으로 가상호스트 구성을 활성화합니다

a2ensite app1.conf
a2ensite app2.conf
로그인 후 복사

기본 구성을 비활성화하는 것을 잊지 마세요

a2dissite 000-default.conf
로그인 후 복사

가상호스트에서는 다른 포트를 사용하기 때문에 먼저 등록을 해야 합니다.

nano /etc/apache2/ports.conf
로그인 후 복사

내가 녹색으로 색칠한 행에 추가

apt install apache2
로그인 후 복사
로그인 후 복사

모든 작업이 완료되었으면 서버를 다시 시작하고 테스트만 하면 됩니다

apt-get install software-properties-common -y
로그인 후 복사
로그인 후 복사

IP 주소와 포트에 접속하여 테스트해 보세요. phpinfo() 함수를 포함하는 info.php 파일을 생성하는 것이 좋습니다. 각 문서 루트에 있습니다.

테스트를 위해 http://ip-server:port에 접속하세요

이 정보가 유용하길 바라며 행운을 빕니다

위 내용은 Linux에서 여러 PHP 버전 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿