구글앱엔진에서 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에 아래와 같이 또 추가해요.
<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를 입력해요. 구글계정이에요. 그럼 이상한 콘솔창 하나 뜨더니 그냥 올라가요. 매우 간편해요!