[php] APM(Apache, php, MySQL) 설치
2008.06.20

* cafe24.com
Apache 1.3.37 p3    -> 2.0.63
PHP Version 4.4.7    -> 4.4.8 -> 5.2.6
    - php4의 mysql Client API version 이 3.23.49 로 고정(내장으로 업그레이드 불가)
        -> php5로 업그레이드
MySQL : API Version 5.0.37    -> 5.0.51b
    mysql --verion
    
    mysql -u user -p
    select version();
    
<?php printf("MySQL server version: %s\n", mysql_get_server_info()); ?>

* 설치 영문 매뉴얼
http://www.php-mysql-tutorial.com/install-apache-php-mysql.php


//===============================================================================
* 아파치 설치
다운로드 : http://mirror.apache-kr.org/httpd/binaries/win32/
apache2/conf/httpd.conf 수정
루트웹폴더 변경
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"  -> 다른 이름으로
Options Indexes FollowSymLinks -> Indexes를 뺀다
DirectoryIndex index.html index.html.var -> index.php 추가


//===============================================================================
* PHP 설치
다운로드 : http://kr2.php.net/downloads.php


[PHP4]
c:\php4로 다운받은 파일 복사 <-중요 !! 폴더 고정
c:\php4\php.ini 수정 : extension_path = "c:\php4\extensions"
php4ts.dll를 아파치루트\bin에 복사

아파치 설정 파일(httpd.conf) 에 다음 라인 추가
LoadModule php4_module php/sapi/php4apache2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


* 추가 모듈
php_iconv.dll, php_gd2.dll - 제로보드 설치시에 필요
php_mbstring.dll - 문자코드변환

    - 추가 방법 :
        php.ini 에 관련 항의 주석을 없앤다.
        apache 에러 로그 확인으로 php.ini의 extension_path설정이 통하지 않으면 c:\php4에 관련 모듈 파일 복사

* php4의 문제점 :
    mysql Client API version 이 3.23.49 로 고정(내장으로 업그레이드 불가)
    새로운 mysql 패스워드를 사용할수 없다.
    mysqli_()의 향상된 함수를 사용 불가


[PHP 5]
php-5.2.6-win32-installer.msi
install 파일을 통해서 설치
    - 주의 : extension 옵션 을 선택하지 않는다. (만약 모두 선택하면 웹서버 시작이 되지 않는다.)
mysql Client API version = 5.0.27 - 기본 설치시


* 업그레이드 후 문제 : 소스유출(소스가 그대로 보임)
    
    '<?' 을 '<?php' 로 변경하면 된다
    <?= 도 <?php echo 로 변경해야 한다.

    이것을 하기 싫으면 php.ini 에서 short_open_tag = On 으로 수정

    

아파치 재시작후
<?php phpinfo(); ?>
로 확인

//===============================================================================
* Mysql 설치
다운로드 : http://dev.mysql.com/downloads/mysql/5.0.html#downloads

* 제로보드에 글 않써지는 현상 해결
    - mysql의 Strict Mode를 OFF 시킨다. - 설치시에 옵션에서 빼도 된다.
        - my.ini : sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 를 아래로 변경
                    -> sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


* php mysql Client API version     3.23.49  
    -> php4는 mysql 모듈이 내장되어 업그레이드가 않된다.(리눅스는 재 컴파일 하면 되지만. 윈도우는 불가?)
    -> 결국 이문제 때문에 php5로 업그레이드
    
    Download Connector/PHP = http://mysql2.mirrors-r-us.net/downloads/connector/php/index.html
        mysql extension (PHP 5.2.0) * for MySQL Server 5.0.27   (~800k)   
        이것으로 수정을 해도 Client API version 은 계속 3.23.49
        

    - 다음의 구문 실행에 문제가 없으면 설치 성공
    <?php
    if( $link = mysql_connect('localhost', 'user', 'pass' ) ){ die("SQL server에 연결할 수 없습니다." . mysql_error() ) }
    printf("MySQL client info: %s\n<br>", mysql_get_client_info());
    printf("MySQL host info: %s\n<br>", mysql_get_host_info());
    printf("MySQL protocol version: %s\n<br>", mysql_get_proto_info());
    printf("MySQL server version: %s\n<br>", mysql_get_server_info());
    printf("MySQL current character set is: %s\n<br>", mysql_client_encoding($link) );//이부분은 수정이 안됨??
    ?>


* my.ini 수정
default-character-set=utf8
    -> 수정을 해도 mysql_client_encoding()함수결과가 계속 latin1으로 나옴(아직 해결못함, utf8동작은 정상)
default-storage-engine=myisam

* Navicat 에서 utf8 사용 방법
    - DB로그인시 DB 문자셋 설정을 기본으로 놓으면 않되고(utf8로 보여도) 꼭 utf8로 설정을 해줘야 정상동작
* DB 생성시에도 utf8 설정 확인

* 로그인이 않될 경우
    - mysql 의 로그인 계정 암호를 이전 방식으로 바꾼다.
    http://dev.mysql.com/doc/refman/5.0/en/old-client.html - 참고
    mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
        -> WHERE Host = 'some_host' AND User = 'some_user';
    mysql> FLUSH PRIVILEGES;


반응형
Posted by codens codens

댓글을 달아 주세요