관리 메뉴

웹개발자의 기지개

[PHP] Ubuntu 에서 PHP 설치 - nginx , php.ini 설정하기 본문

PHP

[PHP] Ubuntu 에서 PHP 설치 - nginx , php.ini 설정하기

웹개발자 워니 2025. 7. 21. 11:12

 

apt update

apt upgrade

 

 

PHP 저장소 추가

 

apt install software-properties-common curl gnupg2 wget -y

add-apt-repository ppa:ondrej/php

 

apt update

 

 

 

Ubuntu 22.04 PHP 설치하기

 

1. PHP 7.4 설치

 

apt-get install php7.4 php7.4-fpm -y

apt-get install php7.4-cli php7.4-mbstring php7.4-xml php7.4-gd php7.4-mysql php7.4-curl

 

2. PHP 7.3 설치

 

apt-get install php7.3 php7.3-fpm

apt-get install php7.3-cli php7.3-mbstring php7.3-xml php7.3-gd php7.3-mysql php7.3-curl

 

 

3. PHP 7.2 설치

 

apt-get install php7.2 php7.2-fpm

apt-get install php7.2-cli php7.2-mbstring php7.2-xml php7.2-gd php7.2-mysql php7.2-curl

 

 

4. PHP 8.0 설치

 

apt-get install php8.0 php8.0-fpm

apt-get install php8.0-cli php8.0-mbstring php8.0-xml php8.0-gd php8.0-mysql php8.0-curl

 

 

php -v  확인하기

 

 

 

특정 PHP 버전 삭제하기

apt-get remove php7.2

 

 

특정 PHP 버전의 다른 PHP 확장을 제거

apt-get remove php7.2-*

 

 

참고 : https://ko.linux-console.net/?p=30353

 

 

 

[그 다음으로는 웹서버인 nginx 와 설정하기]

 

필자는  php7.4-fpm 기본으로 설정해보도록 하겠다.

 

php 버전확인

php -v 

 

php가 실행중인지 확인

sudo systemctl status php7.4-fpm

 

sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm

 

/etc/nginx/sites-available/default 또는 특정 사이트의 conf 파일을 수정한다.

/etc/nginx/sites-available/naver.com

 

sudo nano /etc/nginx/sites-available/naver.com

 

conf 파일 수정

server {
    listen 80;
    server_name naver.com;

    root /var/www/naver.com/html;
    index index.php index.html index.htm;

 

    access_log /var/log/nginx/gbindex.access.log;
    error_log /var/log/nginx/gbindex.error.log;


    location / {
        try_files $uri $uri/ =404;
    }

    # PHP 처리
    location ~ \.(php|html)$ {
        include snippets/fastcgi-php.conf;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

 

 

php.ftm 소켓이 /run/php/php7.4-fpm.sock 경로에 있는지 확인

ls /run/php/php7.4-fpm.sock

 

 

nginx 구성 테스트확인 및 리스타트한다.

 

sudo nginx -t

sudo systemctl restart nginx

 

 

[ php 확장자 뿐만아니라 html 파일도 PHP 문법적용시키기 ]

 

(1) sudo nano /etc/nginx/sites-available/naver.com  conf 파일내에

    location ~ \.(php|html)$ {
        include snippets/fastcgi-php.conf;

        # 직접 SCRIPT_FILENAME을 정확히 지정
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

추가한다.

 

(2) sudo nano /etc/php/7.4/fpm/php.ini 에서 

cgi.fix_pathinfo = 1 

 

(3) sudo nano /etc/php/7.4/fpm/pool.d/www.conf 

security.limit_extensions = .php .html

 

(4) sudo systemctl restart php7.4-fpm

sudo nginx -t
sudo systemctl reload nginx

 

 

[ php.ini PHP 환경설정 수정하기 ] 

 

sudo nano /etc/php/7.4/fpm/php.ini

 

----------

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log

short_open_tag = On

max_execution_time = 60
memory_limit = 512M
upload_max_filesize = 50M
post_max_size = 100M

file_uploads = On

date.timezone = "Asia/Seoul"

--------

 

파일 수정후에 
sudo systemctl restart php7.4-fpm 

 

 

 

 

 

Comments