Document Root를 변경, Hello World! 작성, PHP 설치 정보 확인, 

PEAR 설치, 쓸만한 First PHP Program.

 

Bitnami WAPP를 설치하면 아래 폴더가 기본 폴더

 

 

위 기본 폴더를 c:\htdocs로 변경하여 보자.

 

 

먼저 C: 밑에 htdocs라는 폴더를 만들자.

 

 

아파치를 단독으로 설치하였다면 위 화면에서 보이는 httpd.conf를 수정하면 되나, Bitnami WAPP는 아니다. 아래 폴더를 열어 보자.

 

 

bitnami.conf를 텍스트 에디터로 open.

 

 

9줄 10줄이 원래 내용인데 #으로 주석 처리하고

11줄과 12줄 추가.

 

 

Bitnami WAPP Stack Manager 실행

 

 

Manager Servers 탭을 클릭하고 Restart를 클릭. 이리하여 위에서 바꾼 내용을 적용.

 

 

c:\htdocs를 폴더에 두 파일을 만들자.

 

 

index.php의 내용은 위와 같게

 

<html><body><h1>Hello world!</h1>

<a href="phpinfo.php">PHP info</a></body></html>

 

 

phpinfo.php의 내용을 위와 같게.

 

<?php

phpinfo();

?>

 

 

브라우저를 열고 주소에 localhost/index.php를 입력. 위와 같은 화면이 나오면 성공. PHP info 클릭하여 PHP 설치정보 확인.

 

 

잘 설치되어 있음을 확인. PHP설정 예를 들어 에러 출력 정도, 업로드 파일 제한 등등과 같은 설정을 바꿀 때 이용하는  php.ini 파일 위치를 확인

 

 

아파치 설치 상태도 확인 가능

 

 

gd도 바로 쓸 수 있도록 설치되어 있음

 

 

한글을 utf-8로 하는 것이 정신 건강상 좋다. 텍스트 에디터에서 utf-8로 저장하고, html 문서의 character set도 utf-8로 하는 것이 정신 건강상 좋다. utf-8을 써서 한글을 자르고 할 때 multi byte string을 활성화 해야 편하다. 요게 제공하는 함수를 써야 정신 건강에 좋다.

 

 

가장 중요하다고도 할 수 있는 postgresql 연결 설치 확인

# 2021.7.22. 

아래는 pear MDB2에 관한 이야기이나 MDB2가 PHP7이 되면서 문제를 일으키는 것 같다. 그런데 PHP에서는 새로운(사실 새로운게 아니다. 꽤 오래 전에 나왔다.) 접근법을 제시하였는데 PDO이다. PDO는 설치할 필요도 없다. 바로 위 그림에서 볼 수 있듯이 이미 설치되어 있다. 그래서 아래 내용은 더 이상 의미가 없다. 의미가 없으면 지워야 하는데 아까워서 지우지 않는다. 물론 Laravel을 쓰면 완전히 새로운 데이터베이스 접근법이 주어진다.

다음과 같은 소스를 test_04.php로 저장

<?php
$user = 'myuser1';
$pass = '12345678';
$host = 'localhost';
$db_name = 'mydb1';

$PDOdsn = "pgsql:host=$host;port=5432;dbname=$db_name;user=$user;password=$pass";

try {
    $dbh = new PDO($PDOdsn);
    foreach($dbh->query('select * from mytable1') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

localhost/test_04.php 로 접속

# 2021.7.22

이제 php를 이용하여 postgresql database에 접속한 후, 만들었던 내용을 불러다가 브라우저에 표시할 것이다. 먼저 php 프로그래밍을 하기 전에 pear를 설치한다. pear가 뭔지는 pear.php.net을 읽어 보기 바란다. php framework이라고나 할까... 예를 들어 postgresql에 접속할 때 그냥 php 함수를 써도 되지만 pear DB나 MDB2를 사용하면 더 쉽고, 데이터베이스가 변할 때 함수 변화 없이 쉽게 이동할 수 있다. 암튼 pear를 쓰려면 먼저 go-pear.phar를 다운로드 받자.

브라우저를 열고 pear.php.net/go-pear.phar이라고 입력하자.

 

 

파일을 저장하자.

 

 

저장한 폴더로 가서 다운로드 받은 파일을 확인하자. 파일을  php 폴더로 복사하자.

 

% 브라우저에서 파일 다운로드가 안 되고 내용을 브라우저에 표시할 경우 SAVE AS하면 안된다. 그럴 경우 도스창을 열어서 curl -OL http://pear.php.net/go-pear.phar 라는 명령어로 다운로드 한다.

 

 

 

복사한 것을 확인할 수 있다.

 

 

명령 프롬프트를 관리자로 실행하자. 위의 사진에서 명령 프롬프트를 오른쪽 버튼으로 누르면 관리자로 실행이라는 메뉴가 나온다.

 

 

 

PHP 폴더로 이동하자.

위의 명령어대로 실행하자. php.exe -d phar.require_hash=0 go-pear.phar 이란 명령어다.

 

 

그냥 엔터를 계속 치면된다. go-pear를 사용해 줘서 고맙다는 얘기도 나온다. PEAR_ENV.reg라는 파일을 찾아 더블클릭하라는 얘기도 나온다.

 

 

pear list

현재 설치되어 있는 패키지 종류가 나온다.

pear install db

db라는 패키지를 설치하자.

 

 

설치하기는 했는데 곧 안 쓰일 거고, 대신에 MDB2를 쓰라는 얘기가 나온다.

 

 

pear install mdb2

그래서 mdb2 패키지도 설치하자.

 

 

mdb2에서 postgresql를 쓰려면 optional feature를 설치하란다. 그래서 

pear install pear/MDB2#pgsql

설치가 잘 되었다.

 

 

다시 한번 설치된 패키지 확인.

텍스트 에디터를 열고 다음 입력

 

<?php// PEAR DB 패키지 불러오기require_once 'MDB2.php';
// 접속에 필요한 정보 설정$user = 'myuser1';$pass = '1234';$host = 'localhost';$db_name = 'mydb1';
// Data Source Name: This is the universal connection string// Postgresql database에 접속하기 위한 DSN$dsn = "pgsql://$user:$pass@$host/$db_name";
$mdb2 =& MDB2::factory($dsn);
if (PEAR::isError($mdb2)) {    die ($db->getMessage());}
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);
$sql = "SELECT * FROM t1";
$res = $mdb2->query($sql);
// Always check that $result is not an errorif (PEAR::isError($res)) {    echo $res->getDebugInfo();    die ($res->getMessage());}
// Get each row of data on each iteration until// there are no more rows// Returns an associative array with the column names as the array keys echo "<table cellpadding = '10' border = '1'>";
while ($row = $res->fetchRow()) {    echo "<tr><td>" . $row['c1'] . "</td></tr>";}
echo "</table>";
// Freeing the result set$res->free();
// close conection$mdb2->disconnect();?>

 

//로 시작하는 행은 comment이니 굳이 입력할 필요없다.

pear에서 MDB2를 권장한다.

 

 

acroedit로 입력하는 화면

여기서 중요한 것은 utf-8로 저장하는 하는 것이다. 에디터 하단에 U8-DOS라고 나와 있어야 한다. 이렇게 안되어 있으면 아크로에디터에서 파일 -> 변환 -> 유니코드 UTF-8을 클릭하면 된다. 파일 이름을 mdb2_test.php로 한다. 저장 폴더는 c:\htdocs로 하자

 

 

브라우저를 열어 http://localhost/mdb2_test.php를 입력하자. 드디어 프로그램이 실행되면 입력했던 값이 브라우저에 출력이 된다. 

 

글을 마치며 ...

 

매번 apache, php, postgresql를 설치하는 것보다 wapp를 설치하는 것이 훨씬 간편함을 알 수 있다. 솔직히 wapp에서 제공하는 pear가 이상해서 db, mdb2 패키지가 잘 설치되지 않았다. 그래서 처음부터 go-pear.phar를 다운로드 받아서 pear 설치하고 db, mdb2 패키지를 설치했다. 그러니 잘 된다. 다음에는 이거 보고 잘 해야지....

 

추가1) 윈도우즈의 방화벽 때문에 localhost에서는 접속이 되나 외부에서 접속이 안 될 수도 있다. 이때는 윈도우즈 방화벽의 고급설정에서 특정 포트를 열어 주어야 한다. 이건 블로그가 많으니까 검색해서 해야지 ...

 

 

 

+ Recent posts