2011-03
MacBook Air, Apache PHP MySQL 설치와 UTF-8 설정
맥북에어에 설치되어있는 Mac OS X 10.6 Snow Leopard 에는 이미 apache와 php가 설치되어 있다. 따라서 이 글은 apache와 php를 연동하고, mysql을 추가 설치한 뒤 인코딩을 UTF-8 로 설정하는 방법을 안내한다. 이해를 위해서는 vi editor와 APM에 대한 최소한의 지식을 필요로한다.
준비
root 계정 사용이 제한되어 있다면 먼저 root 계정을 활성화 시킨다.
Apache 실행
1. 터미널을 열고 아파치를 실행한다.
$ sudo apachectl start
1.1 아래와 같은 에러 메시지가 발생한다면 1.2 를 수행한다.
/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument
1.2 apachectl 파일을 열어서 64번째 라인을 아래와 같이 수정한다.
$ vi /usr/sbin/apachectl
변경 전: ULIMIT_MAX_FILES=”ulimit -S -n `ulimit -H -n`”
변경 후: ULIMIT_MAX_FILES=”"
1.3 필요하다면 아파치를 재시작한다.
$ sudo apachectl restart
2. 브라우저를 열고 http://localhost 에 접속한다.
3. It works! 가 보인다면 성공이다.
Apache 와 PHP 연동
1. apache 설정파일에서 php 모듈을 로드하는 부분의 주석을 제거한다.
$ vi /etc/apache2/httpd.conf
변경 전: #LoadModule php5_module libexec/apache2/libphp5.so
변경 후: LoadModule php5_module libexec/apache2/libphp5.so
2. 자신의 웹사이트 디렉토리 아래에 php파일을 만든다. (나의 계정명은 jeongho 이다.)
$ cd /Users/jeongho/Sites $ vi phpinfo.php
3. 만들어진 파일에 아래 코드를 입력하고 저장한다.
<?php phpinfo(); ?>
3.1 vi editor 에서 저장하는 방법은 문서 수정모드에서 빠져나와서(esc) :wq 를 입력한다.
4. apache를 재 시작(sudo apachectl restart) 한 뒤 http://localhost/~jeongho/phpinfo.php 에 접속한다.
5. php 관련 정보가 보인다면 성공이다. (나의 맥북에어는 5.3.3 버전이 설치되어 있다.)
6. 추가적으로 Default timezone 을 설정 한다.
$ cd /etc $ sudo cp php.ini.default php.ini $ sudo chmod 666 php.ini $ vi php.ini
변경 전: ;date.timezone =
변경 후: date.timezone = Asia/Seoul
7. apache를 재시작 한다.
MySQL 설치
1. MySQL Community Server를 다운로드 한다.
(나의 맥북에어 사양은 Core 2 Duo, 4GB RAM 이기 때문에 64bit 용인 mysql-5.1.56-osx10.6-x86_64.dmg 파일을 다운로드했다.)
2. 다운로드 받은 dmg 파일을 실행 한다.

2.1. 설치를 위해 mysql-5.1.56-osx10.6-x86_64.pkg 파일을 실행해 설치를 완료한다.
2.2. 부팅시 자동실행을 위해 MySQLStartupItem.pkg 파일을 실행해 설치를 완료한다.
2.3. 시스템환경설정 패널에서 시작/종료를 할 수 있도록 MySQL.prefPane 파일을 실행해 설치를 완료한다.
2.3.1 설치 후 MySQL 설정 패널에서 MySQL을 시작 한다.(Start MySQL Server)
3. path 에 mysql 경로(/usr/local/mysql/bin/)를 추가한다.
$ cd ~ $ vi .profile
변경 전: export PATH=/opt/local/bin:/opt/local/sbin:$PATH
변경 후: export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin/:$PATH
4. 변경 내용을 적용한다.
$ source .profile
5. 터미널을 열고 root 비밀번호를 생성한 뒤, 데이터베이스에 접속한다.
$ mysqladmin -u root -p password 1234 $ mysql -u root -p
6. 터미널 프롬프트가 mysql> 상태로 보이면 성공이다.
UTF-8 설정
1. 데이터베이스에 접속 한 뒤 인코딩 설정을 확인한다. 대부분 latin1 로 설정되어 있을 것이다.
mysql> show variables like 'c%';
2. 모든 인코딩을 UTF-8로 변경하기 위해 my.cnf 파일을 만든 후 인코딩 설정을 추가한다.
$ sudo cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf $ sudo vi /etc/my.cnf
2.1 [client] 아래에 다음을 추가한다.
default-character-set=utf8
2.2 [mysqld] 아래에 다음을 추가한다.
default-character-set=utf8
character-set-client-handshake=FALSE
4. mysql 을 재 시작한 뒤 1번 과정을 다시 수행해 인코딩을 확인한다.
PHP 와 MySQL 연동
1. 위에서 만든 phpinfo.php를 아래 코드로 수정한다.
<?php
$db = mysql_connect('localhost', 'root', '위에서 설정한 데이터베이스 비밀번호');
$conn = mysql_select_db('mysql',$db);
$result = mysql_query("show variables like 'c%'");
while ($data=mysql_fetch_array($result)) {
echo $data['Variable_name']." :$data[Value]";
}
phpinfo();
?>
2. php.ini 파일을 열어 mysql 정보를 수정한다.
$ vi /etc/php.ini
변경 전: /var/mysql/mysql.sock
변경 후: /tmp/mysql.sock
1.1 변경할 부분은 다음과 같다.
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
3. apache를 재 시작(sudo apachectl restart) 한 뒤 http://localhost/~jeongho/phpinfo.php 에 접속한다. 아래와 같이 인코딩 정보와 함께 php 설정 정보가 보이면 성공이다.
character_set_client :utf8
character_set_connection :utf8
character_set_database :utf8
character_set_filesystem :binary
character_set_results :utf8
character_set_server :utf8
character_set_system :utf8
character_sets_dir :/usr/local/mysql-5.1.56-osx10.6-x86_64/share/charsets/
collation_connection :utf8_general_ci
collation_database :utf8_general_ci
collation_server :utf8_general_ci
completion_type :0
concurrent_insert :1
connect_timeout :10
PHP Version 5.3.3
…
An article by 이정호
매우 잘 정리되어 있네요. 감사합니다.
하다가 막혀서 질문드립니다. mysql utf8 설정에서
/etc/my.cnf 내용을 수정하고 나면 mysql 서버가 재시동이 안됩니다.
[mysqld]
default-character-set=utf8
character-set-client-handshake=FALSE
이걸 넣으면 서버 시동이 안 되고,
지우면 다시 됩니다.
혹시 해결방법 있으신지요..
data 파일이 저장되어 있는 폴더를 보시면 에러 로그 파일이 있을 겁니다.
그 파일을 열어서 로그를 살펴보셔야 정확한 원인을 알 수 있을 것 같습니다.
기본으로 설치하셨다면 디렉토리는 다음과 같습니다.
/usr/local/mysql/data
안녕하세요. 아파치와 php연동 5번까지 잘 따라왔는데 phpinfo 가 안보입니다.
파일을 찾을 수 없다고 나왔어요.
다른 블로그 (2006년작성) 에서 맥의 환경설정 -> 공유 에서 웹공유 설정을 켜면 되다길래
그렇게 하고 브라우져에서 다시 열어보니 phpinfo가 보입니다.
이렇게 진행해도 상관 없겠지요?
(참고로, 2011년형 맥북프로 입니다.)
네, 문제 없습니다 :)