Running Apache / PHP / Mysql on Mac (2)

Programming/PHP 2011. 6. 8. 01:59

reric.com 에서 퍼왔습니다.

http://reric.com/wp/2011/03/09/1424

-------------------------------------------------------------------------------- 


맥북에어에 설치되어있는 Mac OS X 10.6 Snow Leopard 에는 이미 apache와 php가 설치되어 있다. 따라서 이 글은 apache와 php를 연동하고, mysql을 추가 설치한 뒤 인코딩을 UTF-8 로 설정하는 방법을 안내한다. 이해를 위해서는 vi editor와 APM에 대한 최소한의 지식을 필요로한다.

준비
root 계정 사용이 제한되어 있다면 먼저 root 계정을 활성화 시킨다.

Apache 실행
1. 터미널을 열고 아파치를 실행한다.

1
$ sudo apachectl start

1.1 아래와 같은 에러 메시지가 발생한다면 1.2 를 수행한다.

1
/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

1.2 apachectl 파일을 열어서 64번째 라인을 아래와 같이 수정한다.

1
$ vi /usr/sbin/apachectl

변경 전: ULIMIT_MAX_FILES=”ulimit -S -n `ulimit -H -n`”
변경 후: ULIMIT_MAX_FILES=”"

1.3 필요하다면 아파치를 재시작한다.

1
$ sudo apachectl restart

2. 브라우저를 열고 http://localhost 에 접속한다.
3. It works! 가 보인다면 성공이다.

Apache 와 PHP 연동
1. apache 설정파일에서 php 모듈을 로드하는 부분의 주석을 제거한다.

1
$ vi /etc/apache2/httpd.conf

변경 전: #LoadModule php5_module libexec/apache2/libphp5.so
변경 후: LoadModule php5_module libexec/apache2/libphp5.so

2. 자신의 웹사이트 디렉토리 아래에 php파일을 만든다. (나의 계정명은 jeongho 이다.)

1
2
$ cd /Users/jeongho/Sites
$ vi phpinfo.php

3. 만들어진 파일에 아래 코드를 입력하고 저장한다.

1
2
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 을 설정 한다.

1
2
3
4
$ 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/)를 추가한다.

1
2
$ 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. 변경 내용을 적용한다.

1
$ source .profile

5. 터미널을 열고 root 비밀번호를 생성한 뒤, 데이터베이스에 접속한다.

1
2
$ mysqladmin -u root -p password 1234
$ mysql -u root -p

6. 터미널 프롬프트가 mysql> 상태로 보이면 성공이다.

UTF-8 설정
1. 데이터베이스에 접속 한 뒤 인코딩 설정을 확인한다. 대부분 latin1 로 설정되어 있을 것이다.

1
mysql> show variables like 'c%';

2. 모든 인코딩을 UTF-8로 변경하기 위해 my.cnf 파일을 만든 후 인코딩 설정을 추가한다.

1
2
$ 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를 아래 코드로 수정한다.

1
2
3
4
5
6
7
8
9
10
<?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 정보를 수정한다.

1
$ 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