웹 서버 설정 · 6 min read · Jan 03, 2026

우분투 9.04에서 젠드 프레임워크로 기본 웹 서버 설정하기

우분투 9.04에서 젠드 프레임워크로 기본 웹 서버 설정하기

이 문서는 젠드 프레임워크가 설치된 기본 웹 서버를 설정하는 데 필요한 단계에 대한 간략한 설명입니다.

항상 그렇듯이, 저는 휠을 다시 발명할 필요가 없기 때문에 Falko의 훌륭한 가이드 중 하나를 따르겠습니다. 저는 완벽한 서버 - 우분투 9.04 [ISPConfig 3]를 따르겠습니다. 그러나 사전 제작 테스트를 위한 웹 애플리케이션 서버가 필요하므로 메일이나 ISPConfig는 필요하지 않으므로 ISPConfig-3 가이드를 1단계부터 11단계까지 따르고 거기서부터 제 버전을 시작하겠습니다.

저는 Postfix, Courier(메일이나 IMAP이 필요 없음), Saslauthd(인증)를 설치하지 않을 것이며, rootkit hunter나 바이너리 유틸리티도 설치하지 않을 것이므로 이들 또한 생략하겠습니다:

12 MySQL 설치하기

다음 명령어를 사용하여 MySQL을 설치할 수 있습니다:

apt-get install mysql-client mysql-server

다음 질문이 표시됩니다:

MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호 반복: <– yourrootsqlpassword

우리는 MySQL이 localhost뿐만 아니라 모든 인터페이스에서 수신 대기하도록 하기를 원하므로 /etc/mysql/my.cnf를 편집하고 bind-address = 127.0.0.1 줄의 주석을 달아야 합니다:

nano /etc/mysql/my.cnf
[...]  

# skip-networking 대신 기본값은 이제 localhost에서만 수신 대기하는 것입니다.  
# 이는 더 호환성이 있으며 덜 안전하지 않습니다.  
#bind-address           = 127.0.0.1  

[...]  

그런 다음 MySQL을 재시작합니다:

/etc/init.d/mysql restart

이제 네트워킹이 활성화되었는지 확인합니다. 다음을 실행합니다:

netstat -tap | grep mysql

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

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      8474/mysqld  
root@server1:~#

13 Apache2, Java 및 phpMyAdmin 설치하기

이 시점에서 PHP5를 설치하지 않을 것입니다. 다음 섹션에서 설치하는 몇 가지 방법이 있기 때문입니다. 소스에서 컴파일할 계획이라면 다음 섹션을 읽고 이 시점에서 apache를 설치하지 않는 것이 좋습니다. 그렇지 않으면 모두 다음과 같이 설치됩니다:

sudo su  
apt-get install apache2 sun-java6-bin phpmyadmin

다음 질문이 표시됩니다:

자동으로 재구성할 웹 서버: <– apache2
Java EULA <– Tab을 눌러 EULA를 읽고 OK
DLJ 라이센스 조건에 동의하십니까? <– 예
phpmyadmin의 dbconfig-common으로 데이터베이스 구성? <– 예
데이터베이스 관리 사용자의 비밀번호: <– yourrootsqlpassword
phpmyadmin의 MySQL 애플리케이션 비밀번호: <– [빈칸]

14 PHP5 설치 방법:

필요에 따라 PHP를 설치하는 방법이 여러 가지 있습니다. 제가 필요한 모듈을 설치하는 데 다양한 성공을 거두었으므로, PHP를 설치하는 데 시도한 모든 방법을 알려드리겠습니다. 필요에 따라 선택하실 수 있습니다.

우분투 저장소에서 apt-get 설치

우리는 단순히 Apt를 사용하여 우분투 저장소에서 PHP 버전을 가져올 수 있습니다. 이것이 가장 간단한 방법이며 가장 쉬운 성공을 거둘 수 있으며 PHP에 대한 특별한 요구 사항이 없다면 사용해야 합니다.

apt-get install php5 php5-common php5-cli

데비안 소스에서 apt-get 설치

Debian은 최신 PHP5 릴리스를 위해 저장소를 업데이트했으며, 전체 PHP5 GD 라이브러리가 포함되어 있다고 믿습니다. 따라서 소스에서 컴파일하는 것보다 성공하기 쉬운 경로일 수 있지만, 이는 우분투에서 인식하는 소스가 아닌 소스를 사용하고 있다는 것을 의미하며, 이에 대해 괜찮은지 결정해야 합니다.

그 결정을 내린 후, 이전과 같이 데비안 저장소를 소스 목록에 추가해야 합니다.

우리는 단순히 Apt를 사용하여 우분투 저장소에서 PHP 버전을 가져올 수 있습니다.

echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.list
echo deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.list

그런 다음 실행합니다:

apt-get update

이후에는 데비안이 업데이트한 다른 설치를 업그레이드할 수 있습니다.

apt-get upgrade  
apt-get install php5 php5-common php5-cli  
reboot

저장소 소스에서 컴파일

성공적으로 설치되었지만, 이는 대부분의 설치에 적합한 우분투 릴리스를 설치했습니다. 이는 aptitude 설치에 포함되지 않은 추가 기능을 활성화할 수 있게 해줍니다. ./configure –help를 사용하여 컴파일할 때 활성화할 수 있는 항목을 확인할 수 있습니다.

aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev

이렇게 하면 표준 릴리스에 포함되지 않을 수 있는 추가 기능이 포함된 우분투 안전 릴리스를 설치할 수 있습니다.

cd /usr/src  
apt-get install build-essential debhelper fakeroot  
apt-get source php5  
apt-get install build-dep php5  
cd php5-5.2.6.dfsg.1/  
nano debian/rules

찾아서 바꿉니다:

[...]  
--with-gd=shared,/usr --enable-gd-native-ttf \  
[...]  

다음과 같이:

[...]  
--with-gd=shared, --enable-gd-native-ttf \  
[...]  
dpkg-buildpackage -rfakeroot  
cd ..  
# 새로운 php5-gd 패키지 설치  
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.deb

외부 소스에서 전체 컴파일

마지막으로 이 작업을 수행했을 때, 새로운 php5 버전이 인식되도록 apache2를 다시 컴파일해야 했습니다. 왜 그런지 잘 모르겠고, 저만 그런 것인지 확인하기 위해 몇 번 더 테스트해보고, 성공적으로 apache2 설치 없이도 방법을 업데이트할 수 있다면 이 게시물을 수정하겠습니다.

aptitude install php5-dev libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev bzip2 libcurl3 curl libpng12-dev libfreetype6-dev libmcrypt4 libmcrypt-dev libmhash2 libxslt1-dev apache2-prefork-dev libjpeg62-dev freetype2 libxft libxft-dev libcurl4-gnutls-dev
cd /usr/src  
wget http://apache.mirror.anlx.net/httpd/httpd-2.0.63.tar.gz  
tar -zxvf httpd-2.0.63.tar.gz  
cd httpd-2.0.63  
./configure --help  
./configure --prefix=/etc --enable-rewrite --enable-so --enable-ssl  
make  
make install  
/etc/bin/apachectl start  
/etc/bin/apachectl stop
cd /usr/src  
wget http://uk.php.net/get/php-5.2.9.tar.gz/from/this/mirror  
tar xzvf php-5.2.9.tar.gz  
cd php-5.2.9  
./configure --help  
./configure --prefix=/etc/php5/apache2 --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql  
make  
make install  
./configure --prefix=/etc/php5/cli --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/cli --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql  
make  
make install-cli

apache2.conf와 httpd.conf에서 LoadModule 문이 필요하다는 경고가 표시되었습니다. 만약 여러분도 그런 경고를 발견한다면, 주석 처리된 더미 문을 추가하고 다시 설치하면 작동해야 합니다.

nano /etc/apache2/apache2.conf
[...]  
    # 모듈 구성 포함:  
    Include /etc/apache2/mods-enabled/*.load  
    Include /etc/apache2/mods-enabled/*.conf  

    # 모듈 설치를 돕기 위한 더미 LoadModule 지시문  
    #LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so  
[...]  

15 PHP 및 GD 라이브러리 테스트 / PHP5 설치에 대한 세부 정보 얻기

우리는 PHP-CLI가 설치되어 있으므로 GD 라이브러리의 설치를 다음과 같이 테스트할 수 있습니다:

php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- GD 라이브러리가 설치되어 있으면 true가 출력됩니다.  
php -r "var_dump(function_exists('imagerotate'));" <-- 제한된 라이브러리가 설치되어 있으면 false가 됩니다.

기본 웹사이트의 문서 루트는 /var/www입니다. 이제 해당 디렉토리에 작은 PHP 파일(phpinfo.php)을 생성하고 브라우저에서 호출합니다. 이 파일은 설치된 PHP 버전과 같은 PHP 설치에 대한 유용한 세부 정보를 표시합니다.

nano /var/www/phpinfo.php

이제 브라우저에서 해당 파일을 호출합니다(예: http://192.168.0.100/phpinfo.php):

이제 PHP5가 작동하는 것을 볼 수 있으며, 아래로 스크롤하면 PHP5에서 이미 활성화된 모든 모듈을 볼 수 있습니다. MySQL도 거기에 나열되어 있어야 합니다.

16 설치 구성

젠드 프레임워크가 제대로 작동하려면 apache2에서 rewrite_module이 활성화되어 있는지 확인해야 하므로 확인해 보겠습니다:

a2dismod

희망적으로 현재 활성화된 모듈 목록에서 rewrite가 나열되어 있어야 합니다. 그렇지 않다면 아무 것도 비활성화하지 않도록 Enter를 누른 다음 다음을 실행합니다:

a2enmod rewrite

그런 다음 기본 사이트 파일에서 AllowOverride All을 활성화해야 합니다.

nano /etc/apache2/sites-available/default
[...]  
  DocumentRoot /var/www/  
          
                Options FollowSymLinks  
                AllowOverride All  
          
          
                Options FollowSymLinks   
                AllowOverride All  
                Order allow,deny  
                allow from all  
          
[...]  

이후에는 /etc/phpmyadmin/htpasswd.setup 파일을 삭제하여 phpMyAdmin을 보호해야 합니다…

rm -f /etc/phpmyadmin/htpasswd.setup

… 그리고 /etc/phpmyadmin/apache.conf에서 다음 섹션을 제거하거나 주석 처리합니다:

nano /etc/phpmyadmin/apache.conf
[...]  
## 설정을 위한 인증  
#  
#      
#    AuthType Basic  
#    AuthName "phpMyAdmin Setup"  
#    AuthUserFile /etc/phpmyadmin/htpasswd.setup  
#      
#    Require valid-user  
#  
[...]  

그 후 Apache를 재시작합니다:

/etc/init.d/apache2 restart

17 젠드 프레임워크 설치하기

젠드 프레임워크는 우분투 9.04 저장소에서 사용할 수 있지만, 1.7.5 버전이며, 최신 릴리스를 원하므로 SVN을 통해 다운로드하겠습니다. 그러나 먼저 설치해야 합니다:

aptitude install subversion

이제 젠드 프레임워크의 최신 버전을 가져올 수 있습니다:

cd /opt  
mkdir ZendFramework  
cd /ZendFramework  
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/

다음으로는, 해당 릴리스 폴더에 “current”라는 소프트 링크를 생성하여 젠드 프레임워크 버전을 변경할 때 Apache를 재시작하지 않고도 변경할 수 있도록 하겠습니다:

ln -s release-1.8.3 current

set_include_path를 사용하여 PHP 스크립트에 포함 경로를 수동으로 추가할 필요가 없도록 하겠습니다. 현재 젠드 프레임워크를 자동으로 포함시키기 위해 /etc/php5/apache2/php.ini에 경로를 추가하겠습니다.

nano /etc/php5/apache2/php.ini

변경:

include_path = ".:/usr/share/php5:/usr/share/pear"

다음과 같이:

include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

Apache를 다시 재시작합니다:

/etc/init.d/apache2 restart

젠드 프레임워크의 새 버전이 릴리스되면, SVN 디렉토리를 확인하고 소프트 링크를 변경하기만 하면 됩니다.

cd /opt/ZendFramework  
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.4/  
rm current  
ln -s release-1.8.4 current

18 젠드 도구 구성하기

이제 명령줄을 위한 경로를 설정해야 하므로, 방금 위에서 한 것과 동일한 변경을 PHP CLI에 적용하겠습니다.

nano /etc/php5/cli/php.ini
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

슈퍼 유저에서 나가기 전에 마지막으로 해야 할 일이 있습니다. 여러분이 슈퍼유저가 아닌 사용자 이름으로 도구를 사용할 수 있도록 /var/www 폴더의 권한을 설정해야 합니다.

chown username:usergroup /var/www

이제 이 시점에서 슈퍼 유저에서 나와야 합니다:

exit
nano ~/.bashrc

그리고 다음 줄을 추가합니다:

[...]  
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...]  

거의 다 왔습니다. 설치를 테스트하겠습니다. 그러나 먼저 재시작하는 것이 좋습니다.

sudo reboot

다시 로그인할 때 sudo su를 사용하지 말고 대신:

zf.sh show version

그리고 다음과 같은 결과를 얻어야 합니다:

Zend Framework Version: 1.8.3

19 도구 사용하기

새 프로젝트를 원하는 디렉토리로 이동합니다:

cd /var/www  
zf.sh create project yourProject

그러면 도구가 초기 컨트롤러 및 뷰를 포함하여 기본 사이트 구조를 생성할 것입니다.

마지막으로, 아마도 젠드 폴더를 새 프로젝트로 복사하고 싶을 것입니다:

cp -r /opt/ZendFramework/current/library/Zend /var/www/yourProject/library/Zend

그리고 젠드 설치를 테스트하려면 다음으로 이동합니다: http://192.168.0.100/yourProject/public/

즐기세요!

Share: X/Twitter LinkedIn

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

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