상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 웹서버구축을 위한 스크립트 언어 설치 및 설정 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
웹 서버에서 스크립트 언어를 구동하려면 언어별 런타임 설치, 웹 서버 모듈(또는 별도 프로세스) 연동, 그리고 설정 파일 조정을 거쳐야 합니다. 아래에서는 대표적으로 PHP, Python(WSGI), Node.js 환경을 순서대로 설명합니다. 모든 예시는 Ubuntu 계열(apt 기반) 혹은 CentOS(RPM 기반)에서 크게 차이가 없도록 명령어와 경로를 함께 제시합니다. 1. PHP 환경 구성 먼저 PHP 자체와 웹 서버 연동 모듈 혹은 PHP-FPM(FastCGI Process Manager)을 설치합니다. Ubuntu에서는 sudo apt update && sudo apt install php php-fpm CentOS 계열에서는 sudo yum install epel-release sudo yum install php php-fpm 처럼 설치합니다. 설치가 완료되면 php.ini(대개 /etc/php/7.x/fpm/php.ini 또는 /etc/php.ini)에서 메모리 제한(memory_limit), 업로드 최대 크기(post_max_size, upload_max_filesize), 타임아웃(max_execution_time) 등을 적절히 조정하세요. 예를 들어 대용량 파일 업로드가 필요하면 upload_max_filesize=50M, post_max_size=60M처럼 설정합니다. 그다음 /etc/php/7.x/fpm/pool.d/www.conf(또는 /etc/php-fpm.d/www.conf)에서 사용자(user), 그룹(group), 프로세스 관리 방식(pm), 프로세스 수(max_children, start_servers 등)를 조절합니다. pm = dynamic 또는 ondemand를 필요에 따라 선택하고, 사이트 부하에 맞춰 max_children 값을 높이거나 낮춥니다. 마지막으로 웹 서버와 연동합니다. Apache의 경우 mod_php 대신 PHP-FPM을 쓸 때는 /etc/apache2/sites-available/000-default.conf 안에 <FilesMatch \.php$> SetHandler “proxy:unix:/run/php/php7.x-fpm.sock|fcgi://localhost/” </FilesMatch> 처럼 프록시 설정을 추가하고, Apache 재시작( sudo systemctl restart apache2 )을 하시면 됩니다. Nginx라면 server 블록 안에 location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php7.x-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 를 넣고, sudo systemctl restart nginx로 반영합니다. 2. Python(WSGI) 환경 구성 Python 스크립트를 웹에서 구동하려면 WSGI(Web Server Gateway Interface)를 사용하는 uWSGI나 Gunicorn 같은 애플리케이션 서버가 필요합니다. 먼저 시스템 Python과 pip, virtualenv를 설치합니다. Ubuntu: sudo apt install python3 python3-venv python3-pip CentOS: sudo yum install python3 python3-pip python3-virtualenv 그리고 프로젝트 폴더로 이동해 가상 환경을 만듭니다. python3 -m venv venv source venv/bin/activate pip install flask django uwsgi gunicorn (필요한 프레임워크/서버 선택) 예를 들어 Flask 애플리케이션을 uWSGI로 띄우려면 app.py가 있는 디렉터리에서 uwsgi --socket 127.0.0.1:3031 --wsgi-file app.py --callable app --master --processes 4 --threads 2 같은 명령으로 데몬을 실행하고, 이 과정을 systemd 유닛 파일(/etc/systemd/system/uwsgi.service)에 등록해 부팅 시 자동 시작하도록 설정할 수 있습니다. Nginx와 연동하려면 /etc/nginx/sites-available/yourapp.conf에서 upstream uwsgi_backend { server 127.0.0.1:3031; } server { listen 80; server_name example.com; location / { include uwsgi_params; uwsgi_pass uwsgi_backend; } } 를 추가하고 nginx를 재시작하세요. Gunicorn도 비슷하게 unix 소켓 또는 TCP 포트로 띄우고 proxy_pass 지시자를 사용하면 됩니다. 3. Node.js 환경 구성 Node.js는 자체 HTTP 서버를 돌리는 방식이 일반적이므로, 먼저 Node.js 런타임을 설치합니다. 공식 저장소를 이용하거나 nvm(Node Version Manager)을 사용해 버전을 관리할 수 있습니다. 예를 들어 Ubuntu에서는 curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash – sudo apt-get install -y nodejs 같은 절차로 설치합니다. 설치 후 프로젝트 디렉터리에서 npm init -y npm install express pm2 처럼 기본 <a href='https://sangseek.com/sangseeks/템플릿/ko'>템플릿</a>과 프로세스 매니저(pm2)를 준비합니다. app.js(혹은 server.js) 파일 내에 Express 기반 서버를 작성한 뒤, pm2 start app.js --name my-node-app 으로 데몬 형태로 애플리케이션을 실행합니다. nginx를 리버스 프록시로 연결하려면 /etc/nginx/sites-available/nodeapp.conf 안에 server { listen 80; server_name node.example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 처럼 지정하고 nginx를 reload 합니다. 이때 Node.js 서버 포트(예:3000)와 nginx proxy_pass 주소가 일치해야 정상 연결됩니다. 4. 공통 점검 사항 1) 방화벽: UFW나 firewalld를 사용 중이라면 웹 서버 포트(80, 443)와 내부 통신 포트(예: PHP-FPM 소켓 접근이 필요할 경우)만 허용되도록 설정하세요. 2) 보안: 패키지 자동 업데이트(Auto-Update) 정책을 검토하고, 웹 루트(/var/www/html 등) 권한과 SELinux 설정(필요 시)을 확인합니다. 3) 로깅: PHP-FPM 로그(/var/log/php7.x-fpm.log), uWSGI/Gunicorn 로그, pm2 logs, Nginx access/error 로그를 주기적으로 모니터링해 장애를 빠르게 파악할 수 있게 해야 합니다. 4) SSL/TLS: Let’s Encrypt certbot을 이용해 무료 인증서를 발급받고, 웹 서버 설정에 ssl_certificate 지시자를 추가해 HTTPS를 활성화하세요. 이와 같은 절차를 따르면 PHP, Python, Node.js 등 스크립트 언어를 안정적으로 설치·설정하여 웹 서버 위에서 서비스할 수 있습니다. 각 언어별 버전이나 배포판 차이에 따라 디렉터리 위치나 패키지 이름이 달라질 수 있으므로, 공식 문서를 참조해 세부 경로를 항상 확인하는 습관을 권장합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기