* 메뉴얼
  - https://drive.google.com/file/d/0B6uBIgM7yQd9S0RQWU1vaVZTalE/view?usp=sharing
 
* 생활코딩 웹 어플리케이션 만들기
  - https://opentutorials.org/course/1688

* 웹 사이트가 돌아가는 데 필요한 것들
- 주소
  - 도메인(DNS 서비스에 의해서 IP로 변환됨)
  - IP
- 서버(컴퓨터)
  - 모든 서버는 컴퓨터 입니다.
  - 서버는 다른 컴퓨터들에게 서비스를 제공합니다.
  - 서버의 2가지 의미
    - 물리적인 컴퓨터
    - 서버 프로그램을 의미
      - 예
        - 웹 서버
        - DB 서버
        - FTP
       
- 소스코드편집툴
  - https://atom.io/
 
- FTP 클라이언트
  - 파일질라

- 웹 호스팅
  - 인피니티 프리
    - go9.co/HrZ
    - 구조 : 대표 계정 및에 사이트 계정이 있음
      - 대표 계정 : 이메일주소
      - 사이트 계정 : rfgd_0000 와 같은 형태
      - 사이트 계정은 여러가지 컴퓨터로 구성되어 있다.
        - FTP
        - MySQL
        - 웹서버
       
- 로컬 프로젝트
  - C:\{여러분 이니셜}\web_projects\c4
  --------------------------------------------------------------------------------------------------------------------
* 호스팅
- 서버생성
  - 호스팅을 제공해주는 서비스
    - https://infinityfree.net
    - 이하 인피니티프리라고 표기
  - 회원가입
    - https://infinityfree.net/register
    - 이메일인증 필수!!
  - 실제 사이트 만들기
  - 로그인 후 상단 메뉴 중 `LOGIN` 클릭
    - `Create Account` 를 통해서 사이트(도메인, 웹서버, DB 서버, FTP 서버가 한번에 만들어 짐)
    - 사용하고 싶은 도메인 입력 및 기타정보 입력
  - 참고사항
    - 인피니티프리는 통합계정(이메일) 아래에 많은 사이트 계정을 만들 수 있는 구조로 되어있습니다.
      - 통합계정 => 이메일
      - 사이트계정 => username(rfgd_숫자 형태)
    - 통합계정과 사이트계정은 서로 비밀번호가 다를 수 있습니다.
    - 각각의 사이트를 관리하려면 컨트롤패널( http://cpanel.rf.gd/login.php ) 로 접속해야 합니다.
      - 컨트롤패널에서는 사이트계정으로 로그인 하시면 됩니다.

 

- 인피니티프리 컨트롤패널 세팅
  - http://cpanel.rf.gd/ 접속
  - 로그인(메일을 확인하여 자신의 사이트 계정 username 확인, 절대 이메일이 아님)
  - PHP Version(잘 찾아보시면 있어요.)
    - Version => 7.0
  - PHP Config(잘 찾아보시면 있어요.)
    - Display Errors => `On`
    - Magic Quotes => `Of`
    - Magic Quotes GPC => `Off`
    - PHP Timezone => `Asia/Seoul`

 

- 좌측 사이드 바 중요정보
  - FTP hostname => FTP서버 주소
  - FTP username => FTP서버 ID
  - MySQL hostname => MySQL서버 주소
  - MySQL username => MySQL서버 ID

 

- 파일질라(FTP 클라이언트)가 하는 역할
  - FTP 서버에 있는 파일들을 원격지(여러분의 집)에서 관리 할 수 있습니다.
  - 이게 없으면 여러분은 인피니티프리에서 제공해준 사이트를 관리(소스코드 수정/추가/삭제, 이미지 업로드 등등)을 하기 위해 직접 서버가 있는 곳으로 이동해야 합니다.
  - 여러분이 집에서 직접 원격지(외국에 있는 서버)의 파일들을 수정할 수 있게 해줍니다.

 

- 파일질라 세팅
  - 설치
    - https://filezilla-project.org/download.php?type=client
  - 사이트 추가
    - 상단메뉴의 `파일` => `사이트 관리자` => `새 사이트`
    - 호스트 => 컨트롤 패널의 좌측 사이드바의 FTP hostname
    - 로그온 유형 => 일반
    - 사용자 => rfgd_18737502
    - 비밀번호 => 해당 사이트 계정의 비밀번호
    - 하단에 `연결` 버튼 클릭
  - 사이트 접속
    - 상단메뉴의 `파일` => `사이트 관리자` 에서 좌측리스트에서 접속하고 싶은 사이트 더블클릭

 

- 데이터베이스 생성
  - MySQL Databases 클릭 후 생성
  - 생성 후 phpMyAdmin 로 관리
    - 하단 우측에 Admin 이라는 버튼을 누르면 우리가 만든 데이터베이스를 관리하는 phpMyAdmin 을 열 수 있습니다.
  - phpMyAdmin 접속 후 상단 `SQL` 탭에서 데이터베이스의 기본 문자셋 변경
    - 쿼리문 : ALTER DATABASE 데이터베이스명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    - 하단에 `실행` 클릭
    - 자세한 사용법 : https://opentutorials.org/module/98/1469

 

- phpMyAdmin에서 회원 테이블 만들기
  - phpMyAdmin의 테이블생성기능을 통해서 만들거나 상단 SQL 탭에서 아래 쿼리 실행
    - id 는 unsigned, A_I, PRIMARY KEY 설정이 있어야 합니다.
CREATE TABLE IF NOT EXISTS `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '주키',
  `regDate` datetime NOT NULL COMMENT '등록날짜',
  `loginId` varchar(30) NOT NULL COMMENT '로그인 아이디',
  `loginPw` varchar(100) NOT NULL COMMENT '로그인 패스워드',
  PRIMARY KEY (`id`)
) COMMENT='회원';

- phpMyAdmin에서 회원 테이블에 데이터 넣기
  - phpMyAdmin의 상단 SQL 탭에서 아래 쿼리 실행
    - ps sha1 는 암호화입니다.
INSERT INTO `user`
SET `regDate` = NOW()
`loginId` = 'admin',
`loginPw` = sha1('1234');

 

- 소스코드 에디터 : https://atom.io/
  - remote-ftp 패키지 설치
    - http://recoveryman.tistory.com/242

 

- 프로젝트를 컴퓨터에서 작업하기
  - c:\web_projects\c1 폴더 생성
    - c1을 프로젝트 명이라고 가정하겠습니다.
    - 프로젝트 폴더를 선택한 상태에서 ftp 설정파일을 만듭니다.
    - 아톰 실행합니다.
    - 좌측에 프로젝트 폴더를 클릭한 후 ftp 연결을 수행합니다.
    - 이후 부터 Ctrl + S(저장)를 하면 자동으로 우리 로컬파일이 서버로 업로드 됩니다.(정말 편한 기능!!)
    - c1\htdocs 폴더를 만듭니다.(이 폴더안에 넣으면 우리 사이트 도메인을 통해서 외부에 노출됩니다.)
      - 예를들어 우리 사이트의 도메인이 http://sbs-java.rf.gd 라고 가정해보겠습니다.
      - htdocs에 폴더를 1.txt 만들고 아뫁에서 1.txt 를 열어서 저장!! 을 한다면
      - 해당 파일은 http://sbs-java.rf.gd/1.txt 라는 URL에 해당하는 위치로 업로드 됩니다.
      - ps. 이미 파일은 우클릭 후 upload 로 올려야 합니다.
      - ps. 아톰이외의 편집기로 하면 FTP 동기화는 되지 않습니다.
    - htdocs\.htaccess 라는 파일을 만드세요(아톰에서 만드세요). 그리고 업로드하세요. 에러가 있을 경우 알려주게 하는 역할입니다.


# .htaccess 파일 내용을 아래와 같이 해주세요.
# 에러내용을 얼마나 자세히 보여줄 것인가에 대한 설정
php_value error_reporting 6143
# php_value error_reporting 6135 # notice 제거
# 에러를 켜겠습니다.
php_value display_startup_errors On
# 에러를 켜겠습니다.
php_value display_errors On
php_flag magic_quotes 0
php_flag magic_quotes_gpc 0
# 모든 문자열 관련처리에 mbstring 적용 => 한글처리에 유리함
php_value mbstring.http_input auto
# 시간을 아시아/서울로 맞추겠다는 의미
php_value date.timezone Asia/Seoul

# 잘 못 된 URL로 접속했을 경우 fail.php 가 나오도록 처리
# htdocs/fail.php 파일이 있어야 합니다.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . fail.php [L]

+ Recent posts