구글앱엔진에서 php를 preview 맛보기로 제공을 하네요.

https://developers.google.com/appengine/docs/php/gettingstarted/introduction

여기 문서를 따라한건데, 얘는 콘솔로했는데, 보니까 Launcher로 하면 더 편하니까 런쳐로 설명할게요.


1. 프로젝트 생성.

https://cloud.google.com/console#/project
여기가서 CreateProject를 해야해요. Project Name은 원하는 것으로 쓰고, Project ID를 유니크한 것으로 써야해요. 저는 mudchobo-php라고 썼어요. 생성하면 뭔가가 생겨요.


2. 필요한 프로그램 설치 - Python 2.7.x, Google App Engine SDK

파이선 다운로드 : http://www.python.org/download/
Google App Engine SDK : https://developers.google.com/appengine/downloads


3. Google App Engine Launcher

위에 대로 설치하면 Google App Engine Launcher가 설치돼요. 실행해요.
메뉴에 File -> Create New Application하고, Application Name에 구글클라우드콘솔에서 생성한 Application ID를 넣고, Parent Directory에는 원하는 경로를 지정해요. 이 안에 새로운 폴더로 프로젝트가 생성돼요. runtime은 php로 하고, port는 원하는 포트로 지정하고 Create하면 해당 폴더에 프로젝트가 생겨요. 간단히 필요한 app.yaml과 main.php, favicon.ico만 생겨요. 다 끝났어요. 실행하면 끝나요.



4. 실행

아이콘 중에 Run이라고 있는데, 이걸 클릭하면 서버가 실행이 돼요. 그러고 그냥 localhost:8080으로 접속하면 Hello World!가 떠요. 그럼 끝난거에요. 이제 개발하면 돼요.


5. 구글계정 Users 서비스.

php도 python과 java처럼 구글계정 연동을 매우 손쉽게 제공해요.
main.php

<?php
       require_once 'google/appengine/api/users/UserService.php' ;
       use google \ appengine \api \ users \User ;
       use google \ appengine \api \ users \UserService ;
       $user = UserService ::getCurrentUser() ;

       if ($user ) {
             echo 'Hello, ' . htmlspecialchars ( $user -> getNickname());
       } else {
             header ( 'Location: ' . UserService ::createLoginURL ($_SERVER [ 'REQUEST_URI' ])) ;
       }

소스를 보면 알겠지만, 그냥 UserService라는 클래스를 가져와서 유저값이 있으면 유저 닉네임을 보여주고 없으면 로그인으로 이동시켜요.


이게 로컬에서는 이렇게 나오는데, 실제로 Deploy(배포)를 하면 구글로그인으로 로그인이 돼요.


6. 폼

main.php에 아래와 같이 또 추가해요.

<html>
    <body>
        <?php
            if (array_key_exists('content', $_POST)) {
                echo "You wrote:<pre>\n";
                echo htmlspecialchars($_POST['content']);
                echo "\n</pre>";
            }
        ?>
        <form action="/sign" method="post">
            <div><textarea name="content" rows="3" cols="60"></textarea></div>
            <div><input type="submit" value="Sign Guestbook" /></div>
        </form>
    </body>
</html>

소스를 보면 알겠지만, 그냥 폼값 읽어서 보여주는거에요.


7. static파일

php 굳이 거쳐도 되지 않는, css나 js파일 같은 것들을 그냥 뿌려주려고 하려고 해요.
app.yaml을 수정해야해요.

- url: /stylesheets
  static_dir: stylesheets

/stylesheets라는 url은 stylesheets에 있는 것을 그대로 내려준다는 거에요.

main.css파일을 stylesheets폴더를 만들고 생성해보아요.

body {
  font-family: Verdana, Helvetica, sans-serif;
  background-color: #DDDDDD;
}

백그라운드값을 바꿔보아요.
main.php에 head부분에 css를 추가해보아요.

<head>
    <link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
</head>

다 만든 결과에요.


8. 배포

Google App Engine Launcher에서 Deploy를 눌러요. Email과 Password를 입력해요. 구글계정이에요. 그럼 이상한 콘솔창 하나 뜨더니 그냥 올라가요. 매우 간편해요!

 
Posted by 머드초보
,