[FreeBSD] 아파치와 PHP 설치및설정하기 [un]ion http://ko.shutterpress.net 0.1: 초기버전 0.2: httpd.conf의 Directory 지시자관련수정보완문제해결의오탈자수정보완 phpinfo.php 파일관련수정보완 FreeBSD 의포트시스템을이용하면아파치웹서버와 PHP 설치및설정이어렵지않 게가능하다. 아래과정대로명령어를입력해서설치하고설정하면된다. # cd /usr/ports/www/apache22 # cd /usr/ports/lang/php52 # cd /usr/ports/databases/mysql51-server WITH_CHARSET=utf8 WITH_COLLATION=utf8_bin # cd /usr/ports/databases/mysql51-client # cd /usr/ports/databases/mysql51-scripts 참고 : php 의확장모듈도포트시스템을통해서설치가능하다. 대개 /usr/ports/ 확장모 듈의카테고리 /php 버전명 - 확장모듈명의경로에서설치가능하다. 그래픽처리를담당 1 / 6
하는 gd의예를들면, /usr/ports/graphics/php52-gd 에서설치해줄수있고, xml 처리를담당하는 xml 확장모듈은 /usr/ports/textproc/php52-xml 에서설치가능하다. 어느디렉토리에서제공되는지를알려면포트시스템의루트 (/usr/ports) 에서 make search name=" 확장모듈문자열 " 로확인하는방법이있고. 또다른방법으로는 http://www.freshports.org 에서검색하는방법도있다. 원하는방법을선택해서활용하면된다. 참고 : make search 명령어의결과가너무길어서한화면에서확인할수없으면 make search name=" 확장모듈문자열 " > r 명령어를실행후생성되는텍스트파일 r 을텍스 트편집기로열어서열람하면된다. 위에소개한순서대로설치가되고나면사후설정을해줘야한다. 아파치웹서버를 /usr/ports/www/apache22 를통해서설치했다면아래디렉토리구조로설정파일과 서버실행스크립트들이설치된다. /usr/local/etc/apache22 /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/mime.types /usr/local/etc/rc.d/apache22 /usr/local/www/data 설정파일루트디렉토리 아파치웹서버메인설정파일 MIME 타입설정파일 (PHP 스크립트들의확장자를설정하는파일 ) 아파치웹서버를제어하는 FreeBSD 용스크립트 기본값도큐먼트루트 우선아래명령어로 httpd.conf 파일을열어서편집한다. # vi /usr/local/etc/apache22/httpd.conf 우선 httpd.conf 설정파일어딘가에 libphp5.so 파일이 LoadModule 지시자로등록되 어있는지부터확인한다. 아래처럼되어있는라인이있으면된다. LoadModule php5_module libexec/apache22/libphp5.so 2 / 6
아래처럼 ServerAdmin 지시자에적당한이메일주소를입력한다. ServerAdmin username@mailserver.com 그리고아래처럼 ServerName 지시자에서버에연결된도메인네임이나 IP 주소를입 력한다. 개인개발용서버라면도메인네임이없을테니, IP 주소를입력하면된다. ServerName 192.168.0.103:80 192.168.0.103은본인의서버에부여된주소로대체하면되고, :80의의미는 80 포트로연결을받겠다는뜻이므로목적에따라그대로써도되고다른숫자를써도된다. 중요한것은 80 포트외의포트로설정하면나중에웹서버에연결할때포트를명시적으로적어줘야되므로불편할수있으니기본값 :80을이용하는게좋다. 그리고 <Directory /> 지시자를찾아서적당하게설정한다. 아래처럼설정하면내부 네트워크에연결된컴퓨터만접속이가능하게된다. <Directory /> AllowOverride None Order allow,deny Allow from 192.168.0.* Deny from all 그리고웹서버로보여줄디렉토리를아래처럼설정한다. 가장쉬운방법은 /usr/local/www/data 디렉토리아래서브디렉토리를만들어서 http:// 서버주소 / 서브디렉토리처럼의 URL로접속하는것이지만, /usr/local/www/data 외의디렉토리에 Alias를걸어서설정하는것도좋은방법이다. 아래와같은형식으로하면된다. Alias 알리아스로설정할명칭알리아스걸어줄경로명 <Directory 알리아스걸어줄경로명 > 3 / 6
필요한설정 예를들면이렇다. /usr/local/www/blog 디렉토리를 http:// 서버주소 /blog 처럼의 URL로접속하게설정할것이라면, Alias 지시자의첫번째인수로 /blog 를입력하고, 두번째인수로 /usr/local/www/blog 를입력한다. ( 각각의인수문자열마지막에 / 를안붙여야한다 ) 대략아래처럼한다. Alias /blog /usr/local/www/blog <Directory "/usr/local/www/blog"> 필요한설정 이정도로설정하고 httpd.conf 에변경된사항을저장하고나온다. 그리고나서해야될 것은 mime.types 파일에 php 의 MIME 타입을등록해주는일이다. # cd /usr/local/etc/apache22 # vi mime.types 등록된 MIME 타입들이알파벳순서대로나열되어있다. 알파벳순서대로적당한위치 에아래라인을입력한다. application/x-httpd-php php php3 phtml html application/x-httpd-php-source phps 이정도로설정하고 mime.types 에변경된사항을저장하고나온다. 그리고나서아래명령어를실행해서아파치데몬을다시시작한다. # /usr/local/etc/rc.d/apache22 restart 4 / 6
설정에오타가있거나잘못되어있으면아파치데몬이종료되면서에러메시지를출력 할것이다. 적절하게고친다음다시실행해본다. 문제없이실행되면아래과정을실행 한다. # cd /usr/local/www/data # vi phpinfo.php phpinfo.php 파일에아래처럼입력한다. <?php phpinfo();?> 저장하고나와서웹브라우저를실행한다음 http:// 서버주소 /phpinfo.php URL 을입력 한뒤, PHP 의설정정보페이지가뜨면모든게성공한것이다. ( 설치한 php 확장모듈 의정보가나와있는지도확인해본다 ) MySQL 관리를쉽게하려면 /usr/ports/databases/phpmyadmin 을설치해서이용하 면좋다. # cd /usr/ports/databases/phpmyadmin 설치가되면 /usr/local/www/phpmyadmin 디렉토리에필요한파일들이저장된다. phpmyadmin 디렉토리를 httpd.conf 에등록해주고아파치데몬을재시작한다. Alias /phpmyadmin /usr/local/www/phpmyadmin <Directory "/usr/local/www/phpmyadmin"> 필요한설정 5 / 6
# /usr/local/etc/rc.d/apache22 restart 그리고나서 mysql 을실행해서 root 유저의비밀번호를설정한다. # mysql mysql> use mysql; mysql> update user set password=password(' 비밀번호문자열 ') where user='root'; mysql> exit; 웹브라우저에 http:// 서버주소 /phpmyadmin/setup URL을입력해서 phpmyadmin의설정스크립트를실행한다. 반드시입력해줘야되는항목은 Servers 항목이다. New Server 버튼을누르면나오는란중에서 User for config auth에 root를, Password for config auth에 mysql을실행해서입력했던비밀번호를입력하고저장하면된다. 설정이끝나면 http;// 서버주소 /phpmyadmin 을입력해서 root 유저로로그인하면된다. 문제해결 Q: mysql51 포트들을설치할때이미설치되었다고나오면서도중에중단됩니다. A: 포트들중에서는의존성에걸리는포트들을자동으로설치하는포트들이있습니다. 예를들면 mysql51-server, mysql51-client 처럼부분으로나누어져있는포트들중에서는어느한가지포트설치만실행해도관련된모든포트들이설치되는것입니다. mysql 포트들도마찬가지인지는확인해보지는않았지만이미설치되었다고나오면서도중에중단된다면 make install clean FORCE_PKG_REGISTER=YES 명령어로설치를다시실행하면됩니다. Q: mysql 명령어가실행되지않습니다. A: mysql51 포트들이전부정상적으로설치되었다는가정아래 /etc/rc.conf에아래라인을추가하고저장한다음리부팅합니다. 그리고나서 mysql 명령어를다시실행하세요. mysql_enable="yes" 6 / 6