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