검색결과 리스트
글
Running Apache / PHP / Mysql on Mac (2)
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
…