서버 설정 · 3 min read · Jan 11, 2026
CentOS 5.1 서버 설정: LAMP, 이메일, DNS, FTP, ISPConfig (일명 완벽한 서버) - 페이지 6
12 Apache2 With PHP
이제 PHP와 함께 Apache를 설치합니다 (이것은 PHP 5.1.6입니다):
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel그런 다음 /etc/httpd/conf/httpd.conf를 편집합니다:
vi /etc/httpd/conf/httpd.conf그리고 DirectoryIndex를 다음으로 변경합니다:
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |
이제 시스템을 구성하여 부팅 시 Apache를 시작합니다:
chkconfig --levels 235 httpd onApache를 시작합니다:
/etc/init.d/httpd start12.1 PHP 전역 비활성화
(이 서버에 ISPConfig를 설치할 계획이 없다면 이 섹션을 건너뛰십시오!)
ISPConfig에서는 웹사이트별로 PHP를 구성할 수 있습니다. 즉, 어떤 웹사이트가 PHP 스크립트를 실행할 수 있고 어떤 웹사이트가 실행할 수 없는지를 지정할 수 있습니다. PHP가 전역적으로 비활성화되어야만 이 기능이 작동합니다. 그렇지 않으면 모든 웹사이트가 ISPConfig에서 지정한 것과 관계없이 PHP 스크립트를 실행할 수 있습니다.
PHP를 전역적으로 비활성화하려면 /etc/httpd/conf.d/php.conf를 편집하고 AddHandler 및 AddType 줄을 주석 처리합니다:
vi /etc/httpd/conf.d/php.conf| # # PHP는 개발자가 동적으로 생성된 웹페이지를 쉽게 작성할 수 있도록 시도하는 HTML 내장 스크립팅 언어입니다. # LoadModule php5_module modules/libphp5.so # # PHP 인터프리터가 .php 확장자를 가진 파일을 처리하도록 합니다. # #AddHandler php5-script .php #AddType text/html .php # # index.php를 디렉토리 인덱스로 제공될 파일 목록에 추가합니다. # DirectoryIndex index.php # # 다음 줄의 주석을 제거하여 PHP가 .phps 파일을 PHP 소스 코드로 예쁘게 출력하도록 허용합니다: # #AddType application/x-httpd-php-source .phps |
그 후 Apache를 재시작합니다:
/etc/init.d/httpd restart13 ProFTPd
ISPConfig는 vsftpd보다 proftpd에 대한 지원이 더 좋으므로 vsftpd를 제거합니다:
yum remove vsftpdCentOS에는 proftpd 패키지가 없기 때문에 Proftpd를 수동으로 컴파일해야 합니다:
cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1.tar.gz
tar xvfz proftpd-1.3.1.tar.gz
cd proftpd-1.3.1/
./configure --sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.1*proftpd 바이너리는 /usr/local/sbin에 설치되지만, 우리는 /usr/sbin에 필요하므로 심볼릭 링크를 생성합니다:
ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd이제 init 스크립트 /etc/init.d/proftpd를 생성합니다:
vi /etc/init.d/proftpd| #!/bin/sh # $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $ # # proftpd 이 셸 스크립트는 proftpd의 시작 및 중지를 처리합니다. # # chkconfig: - 80 30 # description: ProFTPD는 단순성, 보안 및 구성 용이성에 중점을 둔 향상된 FTP 서버입니다. \ # 매우 Apache와 유사한 구성 구문과 \ # 여러 '가상' FTP 서버, \ # 익명 FTP 및 권한 기반 디렉토리 가시성을 지원하는 \ # 매우 사용자 정의 가능한 서버 인프라를 특징으로 합니다. # processname: proftpd # config: /etc/proftp.conf # pidfile: /var/run/proftpd.pid # 함수 라이브러리 소스. . /etc/rc.d/init.d/functions # 네트워킹 구성 소스. . /etc/sysconfig/network # 네트워킹이 활성화되었는지 확인합니다. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/sbin/proftpd ] || exit 0 RETVAL=0 prog="proftpd" start() { echo -n "$"Starting $prog: " daemon proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd } stop() { echo -n "$"Shutting down $prog: " killproc proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd } # 호출된 방법을 확인합니다. case "$1" in start) start ;; stop) stop ;; status) status proftpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/proftpd ]; then stop start fi ;; reload) echo -n "$"Re-reading $prog configuration: " killproc proftpd -HUP RETVAL=$? echo ;; *) echo "Usage: $prog {start|stop|restart|reload|condrestart|status}" exit 1 esac exit $RETVAL |
그런 다음 init 스크립트를 실행 가능하게 만듭니다:
chmod 755 /etc/init.d/proftpd다음으로 /etc/proftpd.conf를 열고 Group을 nobody로 변경합니다:
vi /etc/proftpd.conf| [...] Group nobody [...] |
보안상의 이유로 다음 줄을 /etc/proftpd.conf에 추가할 수도 있습니다 (Reinaldo Carvalho에게 감사드립니다; 더 많은 정보는 여기에서 확인할 수 있습니다: http://proftpd.org/localsite/Userguide/linked/userguide.html):
vi /etc/proftpd.conf| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |
이제 Proftpd의 시스템 시작 링크를 생성할 수 있습니다:
chkconfig --levels 235 proftpd on마지막으로 Proftpd를 시작합니다:
/etc/init.d/proftpd start새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.