Almon Dev

APM 환경에서 PHP가 다운로드 되는 상황 본문

오류&시행착오/설정

APM 환경에서 PHP가 다운로드 되는 상황

Almon 2024. 10. 19. 13:01

 

APM(Apchae PHP Mysql) 환경을 세팅했을 때 Index.php와 같이 php파일을 요청하면

php가 실행돼서 페이지가 보이는 게 아니라 그냥 다운로드가 되어버리는 경우가 있다고 들었습니다.

 

해결방법 요약

php -v : php 버전 확인

sudo apt update
sudo apt install libapache2-mod-php << 이 뒤에 버전을 붙여줍니다
ex) sudo apt install libapache2-mod-php8.1
sudo a2enmod php8.1
sudo systemctl restart apache2

 


 

원인

Apache가 php를 실행하지 못함

 

해결 방법

Apache 2.4 기준

이 방법은 Apache2.4를 기준으로 작성되었습니다.
아파치 버전 확인은 apachectl -v 혹은 httpd -v 가있습니다.



아파치의 설정파일인 apache2.conf 파일을 열어봅니다.

/etc/apache2/apache2.conf

IncludeOptional mods-enabled/*.load

위와 같이 모듈을 로드하는 부분을 찾았습니다.

IncludeOptional : 아파치가 설정파일을 읽을 때 해당 부분을 포함하여 읽습니다.

                            ( 파일이나 폴더가 없어도 에러를 발생시키지 않음 )

mods-enabled/*.load : mods-enabled 폴더의 .load라는 확장자를 가진 모든 파일을 의미합니다.

 

ls /etc/apache2/mods-enabled/

해당 폴더를 확인하면 php8.1.load 가 있습니다.
제가 사용하면 php가 8.1 버전입니다.

 

vim php8.1.load

LoadModule php_module /usr/lib/apache2/modules/libphp8.1.so

 

libphp8.1.so라는 모듈을 로드합니다.

해당 부분이 있어야만 아파치가 php를 실행할 수 있습니다.

만약 없다면 libapache2-mod-php를 설치해야 합니다.

sudo apt update
sudo apt install libapache2-mod-php8.1

 

설치한 후 모듈을 로드합니다.

sudo a2enmod php8.1

 


 

위에서는 설정 파일을 열어서 확인했지만

훨씬 쉽게 모듈을 확인하는 방법으로는

apachectl -M 가 있습니다.

 


 

그냥 호기심

 

a2enmod는 어떻게 작동할까

ls -alh /etc/apache2/mods-enabled/

설치된 모듈은 mods-available에 저장되고 a2enmod 을 하게 되면 mods-enabled로 심볼릭 링크를 한 뒤

아파치 설정파일이 mods-enabled의 모듈을 로드하는 듯합니다.

'오류&시행착오 > 설정' 카테고리의 다른 글

Request Logger 구현하기  (0) 2024.12.22
PHP 에러 설정  (0) 2024.10.24