서버 설정 · 3 min read · Dec 12, 2025

완벽한 서버 - 페도라 12 x86_64 [ISPConfig 2] - 페이지 5

11 Apache2 With PHP, Ruby, Python, WebDAV

이제 PHP5(버전 PHP 5.3.0)와 함께 Apache를 설치합니다:

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy 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 on

Apache를 시작합니다:

/etc/init.d/httpd start

11.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 LoadModule php5_module modules/libphp5-zts.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 restart

11.2 루비

버전 2.2.20부터 ISPConfig는 루비에 대한 기본 지원을 제공합니다. CGI/FastCGI를 사용하는 대신 ISPConfig는 서버의 Apache에서 mod_ruby가 사용 가능해야 합니다.

페도라 12에는 mod_ruby 패키지가 없으므로 직접 컴파일해야 합니다. 먼저 몇 가지 필수 패키지를 설치합니다:

yum install httpd-devel ruby ruby-devel

다음으로 mod_ruby를 다운로드하고 설치합니다:

cd /tmp  
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz  
tar zxvf mod_ruby-1.3.0.tar.gz  
cd mod_ruby-1.3.0/  
./configure.rb --with-apr-includes=/usr/include/apr-1  
make  
make install

마지막으로 mod_ruby 모듈을 Apache 구성에 추가해야 하므로 /etc/httpd/conf.d/ruby.conf 파일을 생성합니다…

vi /etc/httpd/conf.d/ruby.conf

| LoadModule ruby_module modules/mod_ruby.so |

… 그리고 Apache를 재시작합니다:

/etc/init.d/httpd restart

mod_ruby에 대한 자세한 내용은 이 기사에서 확인할 수 있습니다.

11.3 mod_python 설치

mod_python을 설치하려면 간단히 실행합니다…

yum install mod_python

… 그리고 Apache를 재시작합니다:

/etc/init.d/httpd restart

11.4 WebDAV

WebDAV는 이미 활성화되어 있어야 하지만, 이를 확인하려면 /etc/httpd/conf/httpd.conf를 열고 다음 두 모듈이 활성화되어 있는지 확인합니다:

vi /etc/httpd/conf/httpd.conf

| [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] |

/etc/httpd/conf/httpd.conf를 수정해야 하는 경우, Apache를 재시작하는 것을 잊지 마세요:

/etc/init.d/httpd restart

12 ProFTPd

ISPConfig는 vsftpd보다 proftpd에 대한 지원이 더 좋으므로 vsftpd를 제거하고 proftpd를 설치합시다:

yum remove vsftpd
yum install proftpd

이제 Proftpd의 시스템 시작 링크를 생성하고 시작할 수 있습니다:

chkconfig --levels 235 proftpd on  
/etc/init.d/proftpd start

13 Webalizer

webalizer를 설치하려면 다음을 실행합니다:

yum install webalizer

14 시스템 시계 동기화

시스템 시계를 NTP 서버와 동기화하려면 다음을 수행합니다:

yum install ntp
chkconfig --levels 235 ntpd on  
ntpdate 0.pool.ntp.org  
/etc/init.d/ntpd start

15 일부 Perl 모듈 설치

ISPConfig는 작동하기 위해 몇 가지 Perl 모듈이 필요한 SpamAssassin을 포함하고 있습니다. 필요한 Perl 모듈을 단일 명령으로 설치합니다:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-ExtUtils-AutoInstall

16 ISPConfig

서버 구성은 이제 완료되었습니다. 이제 다음 지침에 따라 ISPConfig를 설치할 수 있습니다: http://www.ispconfig.org/manual_installation.htm

ISPConfig를 설치하기 전에 반드시 해야 할 중요한 작업이 있습니다. /usr/include/stdio.h를 열고 653번째 줄의 getline을 parseline으로 교체합니다:

vim /usr/include/stdio.h

| [...] /* Like `getdelim', but reads up to a newline. 이 함수는 POSIX의 일부가 아니므로 공식적인 취소 지점이 없습니다. 그러나 POSIX 인터페이스와의 유사성으로 인해 또는 구현으로 인해 취소 지점이며 따라서 __THROW로 표시되지 않습니다. */ extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur; #endif [...] |

이 작업을 수행하지 않으면 다음 오류로 인해 설치가 실패합니다:

htpasswd.c:101: error: conflicting types for âgetlineâ  
/usr/include/stdio.h:653: note: previous declaration of âgetlineâ was here  
make[2]: * [htpasswd.o] Error 1  
make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'  
make[1]: * [build-support] Error 1  
make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'  
make: *** [build] Error 2  
ERROR: Could not make Apache

ISPConfig 설치가 성공적으로 완료된 후 /usr/include/stdio.h에 대한 변경을 되돌릴 수 있습니다(하지만 ISPConfig를 업데이트할 때마다 다시 변경하는 것을 잊지 마세요!).

16.1 SuExec에 대한 주의 사항

CGI 스크립트를 suExec 하에 실행하려면 ISPConfig에서 생성한 웹사이트의 웹 루트를 /var/www로 지정해야 합니다. 페도라의 suExec는 /var/www를 Doc_Root으로 컴파일되었습니다. 다음을 실행합니다:

/usr/sbin/suexec -V

출력은 다음과 같아야 합니다:

[root@server1 ~]# /usr/sbin/suexec -V  
 -D AP_DOC_ROOT="/var/www"  
 -D AP_GID_MIN=100  
 -D AP_HTTPD_USER="apache"  
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"  
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"  
 -D AP_UID_MIN=500  
 -D AP_USERDIR_SUFFIX="public_html"  
[root@server1 ~]#

따라서 ISPConfig와 함께 suExec를 사용하려면 ISPConfig 설치 중 전문가 모드를 사용할 때 기본 웹 루트(/var/www)를 변경하지 마세요(표준 모드에서는 웹 루트를 변경할 수 없으므로 어떤 경우에도 suExec를 사용할 수 있습니다).

17 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.