연구 포털 제작 방법
연구실 웹 공간에 자기 페이지를 올리는 방법 · 2026-08-22
접속 아이디와 비밀번호는 이 문서에 없습니다. 연구실에서 따로 전달받으세요.
어떤 구조인가
계정을 발급받으면 자기만의 웹 공간이 생깁니다.
https://aiforalab.com/p/<계정>/
SFTP로 접속하면 폴더 두 개가 보입니다.
site/ ← 웹에 공개되는 영역. 여기 올린 파일이 곧 홈페이지입니다.
private/ ← 웹에 노출되지 않는 영역. 설정 파일과 오류 기록이 있습니다.
site/에 올리면 즉시 반영됩니다. 별도 배포나 승인 절차는 없습니다.
1. 파일 올리기
WinSCP나 FileZilla로 접속합니다.
- 프로토콜
SFTP· 호스트aiforalab.com· 포트10022
VS Code로 작업하신다면 SFTP 확장을 쓰면 저장할 때마다 자동으로 올라갑니다. (Remote-SSH 확장은 동작하지 않습니다.)
2. 첫 페이지 만들기
site/ 안에 폴더를 만들면 그 순간 주소가 생깁니다.
site/mypage/index.html → https://aiforalab.com/p/<계정>/mypage/
폴더 이름은 영문 소문자·숫자·하이픈을 권합니다 (mypage, test-2).
작업 순서는 이렇습니다.
- PC에 폴더를 만들고
index.html을 작성합니다 - 폴더째로
site/에 올립니다 - 브라우저에서 위 주소로 확인합니다
- 화면이 안 바뀌면
Ctrl+F5로 강제 새로고침합니다
3. 데이터베이스 쓰기
이름이 <계정>_로 시작하는 데이터베이스는 직접 만들 수 있습니다.
CREATE DATABASE <계정>_mydata CHARACTER SET utf8mb4;
PHP에서
$m = mysqli_connect('localhost', '<계정>', '<비밀번호>', '<계정>_mydata');
mysqli_set_charset($m, 'utf8mb4');
PC의 DB 도구에서
DB는 SSH 터널로 접속합니다. 터미널에서 아래를 실행하고 창을 켜 둔 채 작업합니다.
ssh -N -p 10022 -L 13306:127.0.0.1:3306 <계정>@aiforalab.com
그 상태에서 HeidiSQL·DBeaver에 호스트 127.0.0.1, 포트 13306으로 접속합니다.
두 프로그램은 자체 SSH 터널 기능이 있어, 거기에 aiforalab.com:10022를 넣으면 위 명령 없이 바로 붙습니다.
4. 알아두실 제약
이 서버는 오래된 구성이라 몇 가지 제한이 있습니다. 미리 알고 시작하면 헤맬 일이 없습니다.
| 항목 | 내용 |
|---|---|
| PHP 버전 | 5.4.45 — ??(널 병합), 화살표 함수, 최신 문법이 동작하지 않습니다. isset()·array()를 쓰세요 |
| 명령줄 셸 | 제공되지 않습니다. exec·shell_exec·system 계열은 막혀 있습니다 |
| 상주 서버 | Node·Python 서버는 띄울 수 없습니다. PHP + MySQL 웹페이지는 제한 없이 가능합니다 |
| 파일 접근 범위 | 자기 폴더와 /tmp 밖은 PHP가 읽지 못합니다 |
| 업로드 용량 | 파일 64MB · 요청 80MB |
파이썬으로 분석을 돌려야 한다면 PC에서 계산하고 결과(JSON·CSV)만 올리는 방식을 권합니다.
5. API 키를 쓸 때
외부 AI 서비스 키가 필요하다면 반드시 private/ 안에 두고 PHP에서 읽어 쓰세요.
$cfg = json_decode(file_get_contents(__DIR__ . '/../../private/config.json'), true);
site/에 두면 웹에 그대로 노출됩니다. 주소만 알면 누구나 열어볼 수 있습니다.
6. 문제가 생기면
| 증상 | 확인할 것 |
|---|---|
| 화면이 안 바뀜 | 브라우저 캐시 — Ctrl+F5 |
| 흰 화면 / 500 오류 | private/php-error.log 마지막 줄에 원인이 적혀 있습니다 |
| 403 오류 | 파일 권한 문제일 수 있습니다. 연구실에 알려 주세요 |
| PHP 코드가 그대로 보임 | 서버 설정 문제입니다. 연구실에 알려 주세요 |
7. 참고
- 각 계정 공간은 서로 완전히 분리되어 있습니다. 무엇을 하셔도 다른 연구자에게 영향이 없고, 반대로 다른 계정 자료도 보이지 않습니다.
- 실수로 지운 파일은 복구되지 않습니다. PC에 원본을 두고 올리는 방식으로 작업하세요.