-
Web개요Practical_skills/web 2019. 8. 14. 11:10
web에대한 기본지식 - 생활코딩의 영상 참조
목표
google map chart api를 통해 만든 html파일들을 local web server를 만들고 그곳에 올려보자
offline에서 동작하는 것들을 web에서 할수있도록 하면 좋을 것 같다.server를 만드는 방법
- static web hosting(github사용) - web server를 제공하는 외부 업체를 찾는 방법
- web server를 직접를 만드는 방법
활용 소프트웨어
Apache (무료,일등) - 이것을 사용
IIS
Nginx
apache를 설치하면 web browser에서 local_ip/index.html 를 검색할 때
var/www/html 경로에 index.html파일이 열리게 된다.CGI
html을 사용하서 web page를 만들어 나가다 보면 workload가 상당하는 문제에 직면하고 이것을 python script처럼 동적인 프로그래밍으로 해결하려고 한 것이 CGI (Common Gateway Interface) 이다. 즉 python, php, jsp, asp, ruby, java, javascript등을 사용하여 웹페이지를 자동으로 생성하는 application이다.ubuntu 16.04에서 python CGI 환경구축
text editor 설치
우선 text editor로는 sublime text editor를 사용했다. 이 프로그램을 사용하는 이유는 html 이든 python 이든 폰트와 자동완성을 잘해주기 때문이다.
python script 만들고 실행 권한허가
server와 디폴드로 설정된 문서 루트 경로인 var/www/html에 python script를 만든다.
그리고 아래 명령을 terminal에 치면$ type python
python 실행파일 경로가 나오는데 이것을 script 맨위에 써주어
경로를 얻어와서 어떤 프로그램으로 실행되는지를 명시해준다.#! {위에나온경로} #! /usr/bin/python - 예시
아래의 명령을 을해 python script의 실행권한을 허가해준다.
$ sudo chmod a+x {filename.py}
server에서 python script 실행을 위한 환경변수 설정
server의 환경변수들은 아래의 경로의 파일에서 설정이 된다.
/etc/apache2/site-enabled/000-default.conf
확장자 .py인 파일은 python 프로그램을 통해 실행시키라고 명시를 해주어야 한다.<Directory /var/www/html> AddHandler cgi-script .py Options ExecCGI </Directory>
apache는 기본적으로 cgi 실행권한이 꺼져 있기 때문에 terminal에서 아래의 명령으로 허가한다.
$ sudo a2enmod cgi
그리고 아래의 명령으로 apache를 재시작하여 변경된 설정을 적용한다.
$ sudo service apache2 restart
- 웹에서 위의 script를 실행시 에러가 났을 때 대처법
아래의 명령을 실행하고 홈페이지를 새로고침할 때 에러의 내용을 terminal에서 확인할 수 있다.(-f 옵션)
$ sudo tail -f var/log/apache2/error.log
아래와 같은 에러의 내용이라면 header에 content-type을 명시해줄 필요가 있다
malformed header from script 'helloworld.py': Bad header: helloworld! 그래서 python script에 아래와 같은 내용을 맨위에 추가하자print("content-type:text/html; charset=UTF-8\n")
'Practical_skills > web' 카테고리의 다른 글
symbolic link로 연결된 디렉토리 추가 (0) 2019.08.14 Query string을 가져오기 (0) 2019.08.14 문자열 치환 (0) 2019.08.14