일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- csrf
- blind sql injection
- 모의해킹
- 세션
- sql injection point
- Error based sql injection
- sql injection
- 웹개발
- file upload
- cors
- cookie 탈취
- Python
- JS
- css
- 로그인페이지
- CTF
- Los
- union sql injection
- 로그인
- JWT
- 게시판 만들기
- php
- Reflected Xss
- 쿠키
- lord of sqli
- 과제
- Cross Site Request Forgery
- MySQL
- lord of sql injection
- XSS
- Today
- Total
Almon Dev
APM 환경에서 PHP가 다운로드 되는 상황 본문
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 |