DEV/django

ubuntu에 기본적으로 python2.7이 기본으로 설정되어 있습니다.


추가적으로 사용할 프레임워크중에 python3 이상만 지원하는게 있어서 python3.5 기준으로 환경설정


먼저 python version 확인

$ python -V

Python 2.7


기본 python을 python3로 바꾸기 위해서 alias를 명령어를 사용하여 간단하게 변경하기


 alias python=python3


다시 python version확인하면 python 3.5.2가 기본으로 설정됨을 확인

$ python -V

Python 3.5.2


virtualenv 생성

 virtualenv -p python3 test_env

 . test_env/bin/activate

종료는 deactivate


django server를 돌리기 위한 apache2, mod-wsgi 설치하기


sudo apt-get install apache2

sudo apt-get intaall libapache2-mod-wsgi-py3


wsgi는 virtualhost에는 설정이 안되어서 mods-enbled/wsgi.conf 또는 apache2.conf 등에 설정

WSGIScriptAlias / /path/django_prj/wsgi.py

 WSGIDaemonProcess prj_name python-path=/path/django_prj \

                python-home=/virtualenv_path/lib/python3.5/site-packages

 WSGIProcessGroup prj_name


   <Directory /path/django_prj>

          <Files wsgi.py>

                   Require all granted

           </Files>

   </Directory>


django 공식 문서상의 설정

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py

WSGIPythonHome /path/to/venv

WSGIPythonPath /path/to/mysite.com

 

<Directory /path/to/mysite.com/mysite>

<Files wsgi.py>

Require all granted

</Files>

</Directory>


이후 아파치 재기동

 sudo /etc/init.d/apache2 restart


아파치 서버 재기동에 실패하면

journalctl | tail

를 통해서 디버깅 가능, 물론 apache 에러 로그(/var/log/apache2/error.log)를 봐도 된다. 


아파치 재기동 확인 및 페이지 로드 확인


저작자 표시
신고

'DEV > django' 카테고리의 다른 글

python3과 django virtualenv로 설정하기  (0) 2017.07.09
django apache2에서 서버 돌리기  (0) 2014.12.07
0 0
DEV/html

출처 : http://blog.naver.com/davincigo?Redirect=Log&logNo=60103423939

 <script type="text/javascript">
 
  varcount = 0;
 
 
 
  function addForm(){
 
  var addedFormDiv = document.getElementById("addedFormDiv");
 
 
 
  var str = "";
 
  str+="<br>값1-"+count+" <input type='text' name='tb1_"+count+"'>";
 
  str+="<br>값2-"+count+" <input type='text' name='tb2_"+count+"'>";
 
  str+="<br>값3-"+count+" <input type='text' name='tb3_"+count+"'><BR>";
 
  // 추가할 폼(에 들어갈 HTML)
 
 
 
  var addedDiv = document.createElement("div"); // 폼 생성
 
  addedDiv.id = "added_"+count; // 폼 Div에 ID 부 여 (삭제를 위해)
 
  addedDiv.innerHTML = str; // 폼 Div안에 HTML삽입
 
  addedFormDiv.appendChild(addedDiv); // 삽입할 DIV에 생성한 폼 삽입
 
 
 
  count++;
 
  document.baseForm.count.value=count;
 
  // 다음 페이지에 몇 개의 폼을 넘기는지 전달하기 위해 히든 폼에 카운트 저장
 
  }
 
 
 
  function delForm(){
 
  var addedFormDiv = document.getElementById("addedFormDiv");
 
 
 
  if(count >1){ // 현재 폼이 두개 이상이면
 
  var addedDiv = document.getElementById("added_"+(--count));
 
  // 마지막으로 생성된 폼의 ID를 통해 Div객체를 가져옴
 
  addedFormDiv.removeChild(addedDiv); // 폼 삭제
 
  }else{ // 마 지막 폼만 남아있다면
 
  document.baseForm.reset(); // 폼 내용 삭제
 
  }
 
  }
 
  </script>
 
  <body onload="addForm();">
  <center>
  <form name="baseForm" action="" method="post">
 
  <input type="hidden" name="count" value="0">
 
  <div id="addedFormDiv"></div><BR> <!-- 폼을 삽입할 DIV -->
 
  <input type="Button" value="추가" onclick="addForm()">
 
  <input type="Button" value="삭제" onclick="delForm()">
 
  <input type="Submit" value="완료">
 
  </form>
  </center>
  </body>
 
  엘리먼트를 추가하는 createElement() 와 반대로 특정 엘리먼트를 삭제하고자 할 경우,
 
 
  removeChild() 사용예
 
  엘리먼트 el 이 있을경우,
  el.parentNode.removeChild(el);
 
  removeNode() 사용예
  document.createElement(‘<div id=”’+div_id+’”>’); 의 반대는
  document.getElementById(div_id).removeNode(true);

저작자 표시
신고

'DEV > html' 카테고리의 다른 글

[javascript] 동적 입력폼 추가삭제  (0) 2014.12.27
0 0
DEV/django

ubuntu14.04에서 apache2에 django 호스팅 하기


정말 간단해 보이는 apache2에 mod_wsgi를 이용한 호스팅을 하는데 무려 만으로 하루라는 시간이 걸렸다.


어찌나 삽질을 했던지.....


간단하게 설치하는 과정을 보면


1. python, django, apache, mod_wsgi설치


2. django project에 wsgi.py에 설정하기


3. 실행해보기


요렇게 간단한건데 에러라는 에러는 다 본거 같다.



프로젝트 생성 및 django설정은 생략..


1. Django 설치, Apache + mod_wsgi 설치

# apt-get install python-django libapache2-mod-wsgi


2. django project에 wsgi 설정하기

 적당한 경로에 아래 정보를 넣는다. ex)/home/myweb/django_project/django.wsgi

import os
 import sys
 sys.path.append('/home/myweb/django_project')
 os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'
 import django.core.handlers.wsgi
 application = django.core.handlers.wsgi.WSGIHandler()

하지만 이 방법 말고도 django 공식홈페이지에 나와 있는 아래와 같은 방법도 가능

/home/myweb/django_project/django_project/wsgi.py

import os

import sys
sys.path.append('/home/myweb/django_project')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()


3. apache 설정

$ cd /etc/apache2/sites-available로 이동

mysite.conf 파일 생성후 아래 내용 추가

에러로그를 추가해서 확인하는게 나중에 문제점 찾기 엄청 쉽다. 로그는 기본적으로 /var/log/apache2에 저장됨


<VirtualHost *:80>

    DocumentRoot /home/myweb/django_project

    WSGIScriptAlias / /home/myweb/django_project/djanog_project/wsgi.py

    <Directory /home/myweb/django_project>

         Allow from all

        Require all granted

    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/error.log

    Customlog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>



# a2dissite 000-default.conf    <-아파치 기본으로 연결되어 있는 설정값 비활성화 시키기
# a2ensite mysite.conf  <- 새로 추가한 설정값 활성화 시키기
# service apache2 reload


저작자 표시
신고

'DEV > django' 카테고리의 다른 글

python3과 django virtualenv로 설정하기  (0) 2017.07.09
django apache2에서 서버 돌리기  (0) 2014.12.07
0 1
1 2 3 4 ··· 15
블로그 이미지

무(모)한도전

티스토리 툴바