반응형

우선, 서버 프로그램을 설치하여 PHP를 움직여 보자.


XAMPP 서버를 기동하자!

PHP를 시작하려면 먼저 어디서부터 손을 대면 좋을까? 역시 "Web 서버 환경"을 마련하여 시작일 것이다. Web 프로그래밍이라는 것은 Web 사이트에 움직이는 프로그램을 만드는 것이다. Web이라는 것은 Web 서버로 동작한다. 이 Web 서버에서 실행되는 프로그램 (일반적으로 "서버 사이드 프로그램"이라 함)을 만드는 것이 Web 프로그래밍라고 해도 좋을 것이다. PHP도 Web 서버에서 움직인다. 결국은 먼저 "Web 서버 프로그램과 거기서 움직이는 PHP 프로그램"을 준비하지 않으면 안된다.

여기에는 "XAMPP"를 사용하는 것이 가장 좋다. XAMPP라는 것은 Web 서버 환경을 세트 모은 패키지 프로그램이다. Web 서버 프로그램뿐만 아니라 거기서 움직이는 Perl, PHP 등의 프로그래밍 언어, MySQL이라는 데이터베이스 메일 서버나 FTP 서버 등 Web 프로그램에서 사용되는 서버 및 언어 등이 모두 세트로 되어 있는 것이다. 이 XAMPP를 설치하면 이것들이 통째로 즉시 사용할 수 있는 상태로 설치된다.

https://www.apachefriends.org

우선은 이 주소에 접근해 보자. 이것이 XAMPP의 Web 페이지이다. 여기에서 자신이 사용하고 있는 플랫폼의 XAMPP를 다운로드하고 설치하자. Windows의 경우 "XAMPP for Windows"링크를 클릭하여 나타난 페이지에 있는 "XAMPP Windows 버전"의 "EXE" 파일(자동 압축 풀림 RAR 아카이브)를 다운로드하자.

다운로드된 EXE 파일을 더블 클릭하여 실행하고 "install"버튼을 누르면 설치를 시작한다. 기본적으로 C 드라이브 바로 아래에 "xampp"라는 폴더를 만들고 여기에 설치한다. 도중에 갑자기 명령 프롬프트 창이 나타나거나 하지만, 그대로 Enter 키를 눌러 가면 된다. 마지막으로, "Please Choose ......"라고 나오고 1~7의 선택 목록이 쓰기 시작하면 설치가 완료 되었다는 표시이다. 창을 닫고 시작 메뉴의 모든 프로그램에 "XAMPP for Windows"라는 항목이 추가되어 있는 것을 확인하자.

XAMPP 서버를 기동하자!

설치 후에 XAMPP의 Web 서버를 기동하자. XAMPP에는 일부 서버 프로그램이 준비되어 있으며, 모두 "XAMPP 컨트롤 패널"라고 하는 어플리케이션에서 중앙 관리 할 수 있다.

시작 메뉴에 제공되는 "XAMPP for Windows"그룹의 "XAMPP Controll Panel"라고 하는 것이 이것입니다. 이 메뉴를 선택하면 화면에 작은 창이 나타난다. 이것이 XAMPP 컨트롤 패널이다. 여기에서는 "Modules"라는 곳에 일부 항목들이 표시된다. 표시 항목을 다음과 다음과 같다.

  • Apache : 이것이 Web 서버이다.
  • MySql : 데이터베이스 서버이다.
  • FileZilla : FTP 서버이다.
  • Mercury : 메일 서버이다.
  • Tomcat : Java 서버이다.

우선 PHP 공부만을 위한 거라면 "Apache"만 움직이면 된다. 오른쪽에 있는 "Start"버튼을 누르면 Apache HTTP 서버를 시작한다. 이것으로 이제 당신의 PC는 Web 서버가 되었다. 매우 간단하다.

Web 서버를 시작하면, Web 브라우저를 열고 서버에 접근하여 보자. 여기에는 아래와 같이 주소를 입력한다.

http://localhost/

이제 XAMPP for Windows의 화면이 나타난다. 아래쪽에 각 국어의 링크가 있으므로 "한국어"를 선택한다. "XAMPP for Windows"라고 표시된 화면으로 바뀐다. 이 화면에서는 왼쪽에 세세한 항목이 나란히 표시된다. 이것은 XAMPP에 표준으로 제공되는 다양한 툴이다. 여기에서 링크를 클릭하여 다른 서버의 정보와 설정 등을 할 수 있도록 되어 있다.

우선, 이 화면이 문제없이 표시되는 것을 확인한다. 표시되면, PHP를 사용할 준비가 완료된다. "PHP는 프로그래밍 언어를 Web 서버에서 사용할 준비는 필요 없는건가?"라고 묻는다면 물론 필요없다. Web Server가 시작하면 이미 PHP는 사용할 수 있는 상태가 되어 있을 것이다.



Mac OS에서 php 사용하기

Mac OS에서는 기본적으로 apache가 포함되어 있어서, 따로 설치를 하지 않고 설정을 변경을 해주므로써 바로 사용가능 하다.

아파치 버전 확인하기

아파치와 php가 이미 설치되어 있다면, 각각의 버전은 다음과 같은 명령어로 확인할 수 있다.

$ apachectl -v
$ php -v

위 명령을 실행해서 버전 확인된다면 서버를 실행할 수 있다.

아파치 실행하기

아파치를 시작하는 명령어는 아래와 같다.

$ sudo apachectl start

아파치를 실행하려면 관리자 권한이 필요하므로 명령의 맨 앞에 sudo를 붙여줘야 한다. 위와 같이 입력하면 비밀번호를 입력하라는 표시가 나오는데 관리자 비밀 번호를 입력하면 된다.

그밖에

아파치 중지 및 재기동은 아래와 같다.

$ sudo apachectl stop
$ sudo apachectl restart

아파치 실행 확인하기

아파치를 실행한 후에 브라우저에 http://localhost 혹은 http://127.0.0.1 이라고 입력하면 화면에 아래와 같이 표시되는 것을 확인 할수 있다.

It works!

이는 브라우저가 기본(default) index 페이지를 열었기 때문이다. 기본 index 페이지는 /Library/WebServer/Documents`폴더에 존재하는데, 이는 default로 해당 폴더가 DocumentRoot로 지정되어 있기 때문이다.

해당 폴더에 가면 index.html.en 파일이 있음을 확인할 수 있다.

아파치 웹 서버 환경 설정하기

아파치의 기본 설정들을 변경하면 가장 기본이 되는 /etc/apache2/httpd.conf 를 수정하면 된다.

DocumentRoot 폴더 변경하기

앞에서 index.html.en 파일은 /Library/WebServer/Documents/ 폴더에 있다고 했는데, 이 폴더는 기본으로 DocumentRoot로 지정되어 있다.

기본으로 지정된 DocumentRoot의 위치를 변경하려면 httpd.conf 파일을 열고 DocumentRoot 부분과 바로 밑 줄에 있는 Directory 부분을 변경하면 된다.

...
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
...

참고로 httpd.conf 파일을 수정하려면 파일을 관리자 권한으로 열어야 합니다. 다만, DocumentRoot를 변경하는 것은 그다지 추천할 만한 방법이 아니다. 따라서 DocumentRoot를 바꾸기 보다는 userdir을 활성화하는 것이 바람직하다.

userdir 활성화를 위해 httpd-userdir.conf 파일 수정하기

userdir를 활성화한다는 것은 이름에서 알 수 있듯이 브라우저에서 localhost/~username/ 처럼 자신의 계정으로 된 URL을 사용할 수 있게 한다는 의미이다.

userdir을 활성화하려면 /etc/apache2/extra/ 폴더에 있는 httpd-userdir.conf 파일을 수정해야 한다.

우선 해당 폴더로 가서 아래와 같은 명령으로 파일을 편집한다.

$ sudo vi httpd-userdir.conf

명령을 보면 알겠지만 서버 설정을 변경할 때는 관리자 권한으로만 파일을 편집할 수 있다. 파일의 내용은 아래와 같다.

...생략...

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
      RegisterUserSite customized-users
</IfModule>

일단 이 파일에서 Include /private/etc/apache2/users/*.conf 문장의 주석(#)을 제거하고 저장한다.

userdir 활성화를 위해 httpd.conf 파일 수정하기

/etc/apache2/extra/httpd-userdir.conf에 주석으로 mod_authz_coremod_authz_hostmod_userdir 이렇게 3개의 모듈이 필요하다하는 내용이 아래와 같이 있다.

# Settings for user home directories
#
# Required module: mod_authz_core, mod_authz_host, mod_userdir

이는 httpd.conf 파일에서 LoadModule하는 설정의 주석을 제거해주면 된다.

 72 LoadModule authz_host_module libexec/apache2/mod_authz_host.so
 78 LoadModule authz_core_module libexec/apache2/mod_authz_core.so
166 LoadModule userdir_module libexec/apache2/mod_userdir.so
  • 라인 번호는 기본으로 각각 72, 78, 166인데 다를 수도 있다.
  • 요세미티 이후로는 mod_authz_host, mod_authz_core 모듈을 이미 주석이 제거되어 있는 이미 활성화 상태로 되어 있을 것이다.
  • 따라서 mod_userdir 모듈 부분만 주석을 제거해서 활성화해 주면 된다.

이어서, httpd-userdir.conf 파일도 Include 해주기 위해 아래와 같이 주석을 제거한다.

493 Include /private/etc/apache2/extra/httpd-userdir.conf
  • 라인 번호는 기본으로 493인데 다를 수도 있다.

userdir 활성화를 위해 {username}.conf 파일 생성하기

Sites 디렉토리에 대한 접근 방식을 지정하기 위해 /private/etc/apache2/users 폴더에 {username}.conf 파일을 만든다. 내용은 다음과 같다.

  • {username}는 사용자 계정이기에 본인 계정을 넣으면 된다.
<Directory "/Users/{username}/Sites/">
  Options Indexes MultiViews
  AllowOverride None
  Require all granted
</Directory>

권한 설정 부분은 아파치 서버 버전에 맞도록 작성해 준다. 위에는 2.4 버전에 맞게 설정되었다.

홈 디렉토리에 Sites 폴더 만들기

마지막으로 홈 디렉토리로 가서 Sites 폴더를 만든다.

$ cd ~
$ mkdir Sites

맥의 파인더로 확인하면 자동으로 웹 사이트 폴더로 인식됨을 확인 할 수 있다.

이 폴더에 자신만의 index.html 파일을 만들면 첫 화면으로 나타나게 됩니다. index.html이 없으면 아파치에서 기본 제공되는 파일 index가 열립니다.

아파치 재시작하기

아파치의 설정을 변경했다면 아파치를 재시작해야 한다.

$ sudo apachectl restart

이제 localhost/~{username}으로 접속하면 Sites 폴더에 있는 index.html이 나타나는 것을 볼 수 있다.

PHP 웹 서버 환경 설정하기

아래 아파치 웹서버의 환경설정 파일(/etc/apache2/httpd.conf)에서 php5 모듈에 대한 주석(#)을 풀어주고, apache2를 기동하면 된다. (혹시 기동이 되어 있는 상태라면 재기동한다.)

169 LoadModule php5_module libexec/apache2/libphp5.so

이로써 php5 모듈을 로드하게 된다.

참고



PHP 스크립트을 움직여 보자!

그럼, 즉시 PHP를 사용해 보자. PHP 프로그램의 이용법은 Web 서버의 공개 디렉토리(여기에 둔 파일이 그대로 Web 서버에서 로드된 브라우저에 표시되도록 되어 있다)에 PHP 파일을 저장하면 된다.

XAMPP 설치되어 있는 폴더 (일반적으로 C 드라이브에있는 "xampp '폴더)를 열고 그 안에 있는 "htdocs" 폴더를 열어 보자. 이 폴더가 XAMPP의 Web 서버의 공개 디렉토리이다. 여기에 HTML과 PHP 파일을 넣으면 브라우저에서 액세스하여 볼 수 있다.

그럼 여기에 "sample"이라는 폴더를 만들고 그 안에 "index.php"라는 텍스트 파일을 작성해 보자. 이 파일에 작성하는 소스 코드는 아래와 같다.

<!DOCTYPE html>
<html lang="ko">
    <head> 
        <meta http-equiv="Content-Type"
            content="text/html; charset=UTF-8" /> 
        <title>sample page</title>
    </head>
    <body>
        <h1>Hello PHP!</h1>
        <div>
            <?php echo "PHP으로 표시한 텍스트입니다."; ?>
        </div>
    </body>
</html>

여기에서는 텍스트 인코딩은 "UTF-8"로 설정한다. 이후에 모든 연재에서는 모든 UTF-8을 사용한다. 또한 PHP를 사용하는 경우 파일 이름은 ".php"라고 확장자를 붙인다. 다른 확장자를 이용할 수 있도록 하는 경우도 있는데 ". php" 확장자를 붙이는 것이 기본이다.

작성되면 Web 브라우저에서 "http://localhost/sample/index.php"에 접속해 보자. 또한 마지막 index.php는 생략해도 된다(기본적으로 호출되도록 되어 있기 때문에 가능). 화면에 "Hello PHP!"라고 제목이 그 아래에 "PHP으로 표시한 텍스트입니다."라고 표시되는 것을 확인할 수 있다. 이 아래의 텍스트가 PHP 스크립트에 의해 실행된 것이다.

소스 코드를 보면 알 수 있듯이, .php 확장자의 파일이라고 해도, 그 내용은 기본적으로 보통의 HTML과 다르지 않다. PHP의 가장 큰 특징은 "HTML 코드와 혼합해 쓸 수 있다"라는 점입니다. 즉, PHP 문장만으로 모든 것을 쓸 필요는 없을 것이다. 화면 레이아웃 등은 모두 HTML로 작성하고 필요한 곳에만 PHP 처리하도록 작성하면 된다.

코드를 잘 보면 HTML 태그 안에 이런 낯선 태그가 쓰여져 있는 것을 볼 수 있을 것이다.

<?php echo "PHP으로 표시한 텍스트입니다."; ?>

이것이 PHP 스크립트를 작성하는 부분이다. PHP 스크립트는 <?PHP ?>라는 태그를 사용하여 작성한다. 이 태그에 수행할 처리을 써두면 그 부분이 서버에서 로드될 때 실행되고 그 결과가 브라우저로 보내지도록 되어 있다. 즉, PHP 스크립트는 모든 서버에서 실행되므로 브라우저에는 일절 표시되지 않을 것이다. 이런 점이 JavaScript 등과 크게 다른 점이다. (JavaScript는 스크립트가 그대로 브라우저에 보내져 브라우저에서 움직입니다.)

여기에서는 "echo"함수를 사용하고 있다. PHP에서는 주요 기능은 대부분 "함수"라는 것으로 준비되어 있다. echo 함수는 다음과 같이 실행한다.

echo 출력값;

마지막에 세미콜론(;)을 붙이는 것에 주목하자. PHP는 문장의 끝에 반드시 세미콜론을 붙인다. PHP는 개행으로 문장을 구분하지 않는다. 세미콜론으로 구분한다. 그래서 예를 들어 긴 문장을 적절한 곳에 줄 바꿈하면서 작성할 수 있다. 세미콜론를 제대로 붙여야 에러가 발생하지 않는다.

반응형

'php' 카테고리의 다른 글

[php] 텍스트 파일 이용  (0) 2017.12.09
[php] form 전송 기본  (0) 2017.12.09
[php] 제어 구문  (0) 2017.12.09
[php] 산술 연산자  (0) 2017.12.09
[php] 값, 변수, 배열 및 문법  (0) 2017.12.09
[php] 서버 준비  (0) 2017.12.09

+ Recent posts