php 빌드 패키지 저장소 추가

add-apt-repository ppa:ondrej/php

php 설치

apt install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-curl php7.4-mbstring php7.4-gmp php7.4-soap php7.4-zip php7.4-xml
apt install php8.1 php8.1-fpm php8.1-mysql php8.1-gd php8.1-curl php8.1-mbstring php8.1-gmp php8.1-soap php8.1-zip php8.1-xml

#vi /etc/php/8.1/fpm/pool.d/www.conf
user = engineer
group = engineer
security.limit_extensions = .php .php3 .php4 .php5 .php7 .html

502 bad gateway 발생시
;listen = /run/php/php8.1-fpm.sock
listen = 127.0.0.1:9000
#service php8.1-fpm restart

ram 4gb 환경의 pm 설정
; www.conf 파일에서
pm = dynamic
pm.max_children = 20          ; 4GB 환경에 맞게 조정
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 300         ; 메모리 누수 방지

; 메모리 제한
php_admin_value[memory_limit] = 128M
request_terminate_timeout = 300

; 로그 활성화
catch_workers_output = yes
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /var/log/php8.3-fpm.log

nginx 설치

apt install nginx
nginx: [emerg] socket() [::]:80 failed 발생시
=> listen [::]:80 default_server; 바인딩 부분 주석처리

Permission denied 발생시
vi /etc/nginx/nginx.conf
=> user engineer 로 변경
vi /etc/nginx/sites-available/test.co.kr
location ~ \.(php|html)$ {
	include snippets/fastcgi-php.conf;

	fastcgi_pass 127.0.0.1:9000;

	fastcgi_read_timeout 300;
	fastcgi_connect_timeout 60;
	fastcgi_send_timeout 300;

	fastcgi_buffers 8 16k;
	fastcgi_buffer_size 32k;

	proxy_read_timeout 300;
	proxy_buffers 64 16k;
}

설정

vi /etc/php/7.4/apache2/php.ini
short_open_tag = Off
max_input_time = 60 #무제한: -1
memory_limit = 128M #upload 관련
post_max_size = 30M
upload_max_filesize = 20M
max_file_uploads = 10

mysql

vi /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
# service mariadb restart

메모리 swap 2GB 스왑 파일 생성

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 부팅 시 자동 마운트
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다