client=new XMLHttpRequest();
client.open('POST', "http://14.52.96.94:4600/apitest/Login2.php", true);
client.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
client.send("ID=abc@naver.com&Password=asas");

 

 

client=new XMLHttpRequest(); 
client.open('POST', "http://14.52.96.94:4600/apitest/Login2.php", true); 
client.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 

client.send('{"id":"abc@naver.com","password":"asas"}');

 

'' 카테고리의 다른 글

aws 도메인 연결 Route53  (0) 2017.03.28
Posted by wakira
,

django에서 i18n 지원 방법


django 프로젝트 공식 문서를 참고하자.

https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#how-django-discovers-language-preference


i18n을 사용하려면 gettext를 설치해야 하는데 윈도우 용은 아래 링크를 클릭해서 설치를 한다.

http://mlocati.github.io/gettext-iconv-windows/


settings.py 에서 MIDDLEWARE_CLASSES 에 django.middleware.locale.LocaleMiddleware 를 추가한다.


MIDDLEWARE_CLASSES = [

...

    'django.middleware.locale.LocaleMiddleware',

    'django.middleware.common.CommonMiddleware',

...

]


ugettext_lazy 를 함수를 import한다.


from django.utils.translation import ugettext_lazy as _


언어설정

LANGUAGE_CODE = 'ko-KR'


언어목록

LANGUAGES = [

  ('ko', _('Korean')),

  ('en', _('English')),

]


언어 파일 경로

LOCALE_PATHS = (

    os.path.join(BASE_DIR, 'locale'),

)


settings.py에서 위와 같이 설정 후,

python manage.py makemessages 명령을 내리면 언어파일 경로에 각 언어별로 폴더가 생성된다. django.po 파일이 생성되면 파일을 열어서 수정한다.

msgid에는 소스에 있는 문구가 들어있고 msgstr에 한글로 번역을 하면 된다.


예)

#: .\snippets\templates\main.html:122 .\snippets\templates\main.html.py:127

msgid "Welcome to our page"

msgstr "홈페이지에 오신걸 환영합니다"


그런다음 python manage.py compilemessages 를 하면 컴파일이 된다.

언어별로 설정하려면 -l ko 와 같이 언어 옵션을 설정한다.


예) python manage.py makemessages -l ko


이제 템플릿 파일에서 {% load i18n %} 을 첫줄에 넣고 tran 구문을 넣으면 다국어지원이 가능해진다.


{% trans "Welcome to our page" %}

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

https://github.com/mirumee/saleor  (0) 2018.04.09
requirements usage  (0) 2017.06.08
django settings 분리  (0) 2017.06.03
장고 헬로우월드  (0) 2015.10.11
장고 부트스트랩 장고에 쓰기.  (0) 2015.10.11
Posted by wakira
,

    1  curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -

    2  sudo apt-get install -y nodejs

    3  sudo apt-get install -y postgresql-9.5

    4  sudo apt-get install -y build-essential python3-dev python3-pip python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0

    5  git clone https://github.com/mirumee/saleor.git

    6  export LC_ALL=C

    7  pip3 install virtualenv

    8  virtualenv -p python3 venv

    9  source venv/bin/activate

   10  cd saleor

   11  pip install -r requirements.txt

   12  pip install -r requirements_dev.txt

   13  export SECRET_KEY='<mysecretkey>'

   14  sudo -u postgres createuser -P -s saleor

   15  sudo -u postgres createdb saleor

   16  python manage.py migrate

   17  npm install

   18  npm run build-assets

   19  npm run build-emails

   20  vi saleor/settings.py

   21  python manage.py runserver 0.0.0.0:8000

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

django에서 i18n 다국어  (0) 2018.04.20
requirements usage  (0) 2017.06.08
django settings 분리  (0) 2017.06.03
장고 헬로우월드  (0) 2015.10.11
장고 부트스트랩 장고에 쓰기.  (0) 2015.10.11
Posted by wakira
,

requirements usage

웹/django 2017. 6. 8. 03:09

현재 파이프 저장

pip freeze > requirements.txt


설치

sudo pip install -r requirements.txt



>는 덮어쓰기

echo "-r base.txt" > development.txt

>>는 아래줄 추가

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

django에서 i18n 다국어  (0) 2018.04.20
https://github.com/mirumee/saleor  (0) 2018.04.09
django settings 분리  (0) 2017.06.03
장고 헬로우월드  (0) 2015.10.11
장고 부트스트랩 장고에 쓰기.  (0) 2015.10.11
Posted by wakira
,

Django는 settings.py라는 모듈을 제공하여 환경설정을 하도록 한다. $ django-admin startproject [myproject] 으로 Django 프로젝트를 생성하면 [myproject]/[myproject]/settings.py 파일이 생성되는데 대부분의 환경설정이 기본값으로 적용되어있다. 그 중에 DEBUG = TRUE로 기본 설정 돼 있는 변수가 있는데 개발 환경에서는 TRUE로, 실제 운영 환경에서는 FALSE로 수정하여 사용하곤 한다. 하나의 settings.py 파일만을 사용하지 않고 공통되는 객체 하나를 상속받아서 개발 환경, 테스트 환경, 운영 환경 등에 따라서 서로 다른 세팅 파일로 나누고 버전 컨트롤 시스템에서 관리하는 방법이 있다.


환경을 분리하여 사용하는 이유

Django 프로젝트의 환경을 분리하여 사용하면 if DEBUG 또는 if not DEBUG 등을 사용하지 않을 수 있고 반복되는 코드(설정)들을 없앨 수 있다. 개인적으로 사용하는 local 환경을 버전 컨트롤로 관리할 수 있고 필요한 경우 팀원들 간에 공유 할 수도 있다.


settings.py 파일 분리하기

_myproject_/
    _myproject_/
        settings/
            __init__.py
            base.py
            development.py
            production.py

settings.py 대신에 위와 같은 구조로 파일을 생성한다. 공통으로 사용되는 환경들을 base.py 에 관리할 것이므로 우선 settings.py 의 내용을 그대로 base.py 에 복사한다. 이제 각각의 환경마다 다르게 사용될 설정들은 base.py 에서 제거하고 환경에 따라 적절하게 작성한다. base.py 를 import 해서 공통으로 사용되는 설정들을 상속받는다.

development.py

from .base import *

DEBUG = True

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

production.py

from .base import *

DEBUG = False

ALLOWED_HOSTS = ['mywebsite.com']

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'name',
        'USER': 'user',
        'PASSWORD': 'password'
    }
}

Django project을 생성할 때 settings.py 에 기본으로 설정되는 BASE_DIR이라는 값이 있다. 프로젝트의 root path를 저장해두는 것으로 DB파일이 저장되는 위치를 지정하는 등의 파일 경로를 지정할 때 사용된다. root path를 구하는 과정을 살펴보면 현재 실행되는 파일의 절대경로를 기준으로 root 폴더까지의 디렉토리의 수 만큼 os.path.dirname()을 사용하여 구하는 방식인데, 우리가 사용하는 설정 파일은 기본적으로 생성되는 settings.py 의 위치보다 한 단계 더 하위에 존재하므로 아래와 같이 os.path.dirname()을 한 번 더 입력해서 수정해줄 필요가 있다.

base.py

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

[...]


settings 적용

이렇게 각각 나눠진 development.py 와 production.py 의 설정을 이용하여 shell과 runserver 명령을 이용하기 위해서는 --settings 옵션을 이용하면 된다.

  • $ python manage.py shell --settings=myproject.settings.development
  • $ python manage.py runserver --settings=myproject.settings.development

하지만 매번 --settings 옵션을 입력하는 것은 매우 번거로운 일이다.

DJANGO_SETTINGS_MODULE 환경변수를 원하는 환경으로 설정하면 --settings 옵션 없이도 이용할 수 있다.

$ export DJANGO_SETTINGS_MODULE=myproject.settings.development
$ python manage.py runserver

이것 또한 shell을 실행시킬 때마다 환경변수를 설정해줘야 하므로 번거롭다. python 가상환경을 사용하고 있다면 환경을 실행할 때 DJANGO_SETTINGS_MODULE 환경변수를 등록하도록 설정해주면 편하다. 여기서는 autoenv를 사용할 때, .env 파일을 사용하여 설정하는 방법을 이용했다. (참고 : python 가상 환경 구축하기)

.env

pyenv activate myproject-env
DJANGO_SETTINGS_MODULE=myproject.settings.development

shell 에서 .env 파일이 있는 경로로 이동하면 위의 내용을 알아서 실행하는데, 우선 myproject-env라는 가상환경을 실행하고 DJANGO_SETTINGS_MODULE 환경변수를 등록한다.


pytest-django pytest.ini

pytest.ini 파일을 이용하여 pytest-django를 사용하고 있다면 DJANGO_SETTINGS_MODULE를 아래와 같이 수정해줘야 된다. (참고 : Django에서 pytest 사용하기)

pytest.ini

[pytest]
DJANGO_SETTINGS_MODULE=myproject.settings.development
python_files = tests.py test_*.py *_tests.py *_test.py


django 환경에 맞게 requirements.txt 분리

어떤 패키지는 운영 시에는 사용되지 않지만 개발의 편의를 위해서 필요한 경우가 있다. 이런 경우 requirements.txt와 requirements-dev.txt 등과 같이 패키지 리스트를 분리하여 사용하기도 한다. Django 환경을 분리하여 사용하는 경우 requirements.txt 파일들도 각각의 환경에 맞게 분리하여 사용하는 것이 좋다. 위에서 settings/ 의 구조와 마찬가지로 requirements/을 아래와 같이 분리한다.

requirements/
    base.txt
    development.txt
    production.txt

마찬가지로 공통으로 사용되는 의존성은 base.txt 에 넣고 따로 사용되는 의존성은 분리하여 각각의 파일에 넣는다.

base.txt

Django==1.10.5
[...]

development.txt

-r base.txt
pytest==3.0.5
[...]





애플리케이션을 배포하게 되면, 장비에 따라 필요한 라이브러리, 데이터베이스 정보 등 설정 정보를 다르게 가져가야 한다. django 프로젝트를 생성하면 기본적으로 1개의 settings.py가 있는데, 설정 정보를 따로 가져가기 위해서는 파일을 분리할 필요가 있다.

그래서! 기존의 패키지 구조

myproject/
    myproject/
        settings.py

에서

myproject/
    myproject/
        settings/
            __init__.py
            base.py
            local.py
            development.py
            production.py

로 분리하는 작업을 진행하였다.



일단 모든 환경에 필요한 공통된 설정 정보를 저장할 base.py에 기존 settings.py의 정보를 모두 복사한다.

다음 local.pydevelopment.pyproduction.py에 다음과 같이 base.py를 import 한다.

from myproject.settings.base import *

이제 환경마다 다르게 가져갈 설정 정보들을 분리해보자.

# local.py
from myproject.settings.base import *

# local 환경이니까 디버그 모드를 켜야지!
DEBUG = true

# local 데이터베이스의 정보를 입력한다.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'LOCAL_DB_NAME',
        'USER': 'LOCAL_DB_USER',
        'PASSWORD': 'LOCAL_DB_PASSWORD',
        'HOST': 'LOCAL_DB_HOST',
        'PORT': 'LOCAL_DB_PORT',
    }
}

위와 같이 분리할 정보를 base.py에서 지우고 환경에 맞는 파일에 넣어주면 된다.



이제 애플리케이션이 구동될 때, 변경된 설정 파일을 읽도록 설정해주어야 한다.

프로젝트의 wsgi.py 파일을 열면 기본 설정 파일을 지정하는 코드가 있다.

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

본인 기본 설정을 local로 지정할 것이다.

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings.local")

이것은 어디까지나 default 설정을 지정하는 것 뿐이고, 애플리케이션을 구동할 때 다른 설정을 주입할 수 있어야 할 것이다. 두 가지 방법이 있다.

  1. 위에서 봤던 DJANGO_SETTINGS_MODULE 을 .bashrc.bash_profile.zshrc에 환경 변수로 등록하는 방법

    export DJANGO_SETTINGS_MODULE=myproject.settings.local
    
  2. 서버를 띄울 때 설정을 주입하는 방법

    python manage.py runserver --settings=myproject.settings.local
    

이렇게 하면 원하는 설정으로 애플리케이션을 구동시킬 수 있다!

끝!



----------------------------------------------------------------

--settings=Coin.settings.development 추가하기


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

https://github.com/mirumee/saleor  (0) 2018.04.09
requirements usage  (0) 2017.06.08
장고 헬로우월드  (0) 2015.10.11
장고 부트스트랩 장고에 쓰기.  (0) 2015.10.11
python for visual studio  (0) 2014.08.20
Posted by wakira
,

    1  ls

    2  pwd

    3  sudo apt-get install php5-gd

    4  sudo a2enmod rewrite

    5  sudo apt-get install apache2

    6  sudo apt-get install php5

    7  sudo apt-get install mysql-server

    8  sudo apt-get install php5-mysql

    9  mysql -u root

   10  mysql -u root -P

   11  mysql -uroot -p

   12  sudo vi /etc/apache2/sites-available/default-ssl.conf

   13  sudo vi /etc/apache2/sites-available/000-default.conf 

   14  cd /var/www/

   15  ls

   16  wget http://wordpress.org/latest.tar.gz

   17  ls

   18  sudo wget http://wordpress.org/latest.tar.gz

   19  ls

   20  ls -al

   21  sudo tar -xvzf latest.tar.gz 

   22  ls

   23  cd html/

   24  ls

   25  ifconfig

   26  sudo chown www-data:www-data * -R 

   27  ls

   28  cd ..

   29  sudo chown www-data:www-data * -R

   30  ls

   31  ls -al

   32  sudo usermod -a -G www-data user

   33  ls

   34  ls -al

   35  sudo chmod -R 775 /var/www/

   36  ls

   37  ls -al

   38  sudo /etc/init.d/apache2 restart

   39  ls

   40  cd html/

   41  ls

   42  mv ../wordpress/ .

   43  sudo mv ../wordpress/ .

   44  ls

   45  ls -al

   46  cat index.html 

   47  sudo apt-get install php

   48  sudo apt-get install php7.0-gd

   49  apt-get update

   50  sudo apt-get update

   51  sudo apt-get install php7.0-gd

   52  sudo a2enmod rewrite

   53  service apache2 restart

   54  ls

   55  sudo chmod -R 775 /var/www/

   56  sudo chown -R www-data:$USER

   57  sudo chown -R www-data:$USER .

   58  ls

   59  ls -al

   60  apt-get install php libapache2-mod-php

   61  sudo apt-get install php libapache2-mod-php

   62  sudo apt-get install php-xml

   63  sudo apt-get install php-gd

   64  sudo apt-get install php-mysql

   65  ls

   66  sudo apt-get install  php5-mysqlnd-ms

   67  sudo service apache2 reload

   68  ls

   69  cd wordpress/

   70  ls

   71  cat wp-config-sample.php 

   72  cat wp-config-sample.php  | more

   73  #

   74  ls

   75  cd ..

   76  ls

   77  history > 1.txt


    8  sudo apt-get install apache2

    9  sudo apt-get install php

   10  sudo apt-get install mysql-server

   create database wp;

   11  sudo apt-get install php7.0-mysql 

   12  sudo a2enmod rewrite

   13  sudo /etc/init.d/apache2 restart

   14  service apache2 restart

   15  sudo apt-get install libapache2-mod-php

   16  sudo service apache2 reload

   17  cd /var/www/

   18  ls

   19  cd html/

   20  ls

   21  sudo wget http://wordpress.org/latest.tar.gz

   22  sudo tar -xvzf latest.tar.gz

   23  ls

   24  ls -al

   25  sudo chown -R www-data:$USER *

   26  ls -al

   27  mysql -uroot -p

   28  ls


--------------------------------------------------------------------------------------

    1  sudo apt-get update

    2  sudo apt-get install apache2

    3  sudo apt-get install php

    4  sudo apt-get install mysql-server

    5  mysql -uroot -p

create database aa;

quit  

    6  sudo apt-get install php7.0-mysql 

    7  sudo apt-get install libapache2-mod-php

    8  sudo a2enmod rewrite

    9  cd /var/www/html

   10  sudo wget http://wordpress.org/latest.tar.gz

   11  sudo tar -xvzf latest.tar.gz

   12  sudo vi /etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/html/wordpress

   13  sudo service apache2 restart

   14  sudo service apache2 reload

   15  sudo chown www-data:$USER /var

   16  sudo chown www-data:$USER /var/www/

   17  sudo chown www-data:$USER /var/www/html/

   18  sudo chown -R www-data:$USER /var/www/html/wordpress/

   19  sudo chmod 777 /var

   20  sudo chmod 777 /var/www/

   21  sudo chmod 777 /var/www/html/

   22  sudo chmod 777 /var/www/html/wordpress/

   23  sudo chmod -R 777 /var/www/html/wordpress/wp-content/

INSERT INTO mysql.user (host, user, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('%', 'root', password('mysql'), '', '', '');

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;


sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address            = 127.0.0.1 을

bind-address            = 0.0.0.0 으로


sudo service mysql restart

sudo ufw allow 3306/tcp

sudo service ufw restart

netstat -ntlp




sudo apt-get install php7.0-zip

sudo apt-get install php-xml

sudo apt-get install php7.0-xml php7.0-xmlrpc



sudo vi /etc/php/7.0/apache2/php.ini 

extension=zip.so

extension=dom.so

upload_max_filesize = 500M

max_execution_time = 180

max_input_vars = 1500



sudo service apache2 restart

' > php' 카테고리의 다른 글

centos 6.5 / 그누보드4.34.15 (11.10.24) / phpMyAdmin  (0) 2017.03.18
페이지 이동  (0) 2014.05.29
Posted by wakira
,

aws 도메인 연결 Route53

2017. 3. 28. 23:00

http://wingsnote.com/57


지난 회에서는 AWS의 Elastic IP(이하 EIP)를 통해 고정 IP 주소를 획득하는 방법을 알아 보았습니다.


그러나 실제로 숫자로 이루어진 IP 주소로 접속하는 사람은 거의 없을 것입니다.


대부분은 사람이 기억하기 쉽고, 또한 IP 주소가 바뀌더라도 매핑만 바꾸어 주어 접속할 수 있도록 도메인 이름을 사용할 것입니다.


이번 포스팅에서는 EC2 인스턴스에 본인 소유의 도메인을 연결해 봅니다.


미리 여기에 사용할 자신의 도메인은 가지고 있어야 한다는 점을 미리 알려 드립니다.




[8] EC2 인스턴스에 도메인 연결 (Route53)



AWS에서 도메인을 연결하기 위해 사용하는 도메인 설정 서비스는 Route 53 이라고 부릅니다. Route 53은 일반적인 도메인 설정에 더해서 편리한 기능들을 제공합니다.


일반적으로 웹서비스를 받을때 도메인 설정은 무료로 제공되지만, Route 53의 경우는 저렴하지만 유료 서비스라는 점을 기억해야 합니다. (조건에 따라 면제되기도 하는 것 같습니다.)


하지만, 여러가지 이유로 도메인 설정 서비스는 본인 서버를 제공하는 곳의 서비스를 받는게 유리합니다. 더군다나 AWS의 장점중 하나인 로드 밸런싱 서비스를 받기 위해서는 Route 53을 이용할 수 밖에 없는것 같습니다.


그럼 시작해 보겠습니다.


먼저 AWS 관리자 콘솔로 접속합니다.


'Route 53' 을 클릭합니다.

[Create Hosted Zone] 을 클릭합니다.

우측 호스트 존을 생성하는 부분에서 Domain Name에 본인 소유의 도메인(예를들어 example.com과 같은 형태)을 입력하고 [Create]를 클릭합니다.


Route 53이 도메인 이름을 근거로 호스트 존을 생성합니다.


호스트 존을 선택하고, [Go to Record Sets] 을 클릭합니다.

레코드 중에 NS 레코드가 보입니다. Value에 네임서버 리스트가 나와 있습니다. 클릭하면 우측에 Edit Recoed Set 영역에도 Value: 항목에 네임서버 리스트가 나타납니다.


이제 본인의 도메인을 등록한 서비스에 접속하여 네임서버를 위에 나열된 네임서버로 바꾸어 줍니다.


아래는 예를 들어 제가 사용하는 도메인 서비스 업체의 도메인 관리에서 네임서버를 바꾸는 과정을 예시로 보여줍니다. (따라서 본인이 사용하는 도메인 서비스 업체에 따라 다르게 나타납니다. 본인이 도메인 등록한 웹사이트에서 적절히 적용해 봅시다.)

<출처 : http://hosting.kr>

<출처 : http://hosting.kr>

<출처 : http://hosting.kr>

위와 같이 네임서버를 변경하였습니다.


다시 AWS의 Route 53 서비스로 돌아가서 A레코드를 설정하겠습니다.


다시 Route 53 입니다. 해당 호스트 존에서 Recoed를 추가 하겠습니다. [Create Record Set] 버튼을 클릭하고, 오른쪽 Create Record Set 영역을 채웁니다.

  • Name : 서브 도메인 네임을 입력합니다. 이번 예제에서는 루트 도메인을 사용하기 위해 비워 두겠습니다. 비우면 example.com 과 같은 형태로 접속하게 됩니다.
  • Type : A레코드를 생성하기 위해 'A - IPv5 address' 를 선택합니다.
  • Alias : 'No' 를 선택합니다.
  • TTL : 도메인 이름 캐싱 시간을 정합니다. 그대로 둡니다.
  • Value : 여기에 Elastic IP (고정IP)을 입력합니다.

[Create]를 클릭합니다.

A레코드가 추가 되었습니다. A레코드를 간단히 설명하면 도메인 이름을 IP 주소로 연결해 주는 것이라고 보면 이해가 쉽습니다.


이제 실제 웹브라우저에서 IP주소가 아닌 연결한 도메인 이름으로 접속해 봅니다. (주의 : 위 설정대로라면, 도메인이 example.com 이라면, example.com 으로 입력해야 합니다. www.example.com 과 같이 도메인 이름 앞에 서브도메인 이름을 입력하면, 아직 도메인 설정을 하지 않아서 접속이 되지 않습니다.)

드디어 도메인으로 연결이 되었습니다. 참고로, 도메인 설정(위에서는 A 레코드 설정)한 것이 반영되는데는 시간이 걸립니다. 바로는 적용이 안되기 때문에 바로 접속되지는 않을 겁니다.


제 경우 짧게는 10여분에서 길게는 20분 이상 걸리더군요.


이제는 서브 도메인을 설정해 보겠습니다.


위 예에서는 도메인이 example.com 이라면, example.com으로만 접속이 되고 www가 앞에 붙으면 접속이 되지 않습니다.


이번에는 www를 앞에 붙였을때 접속이 되도록 하겠는데, NGINX를 통해 example.com과는 다른 웹페이지를 보여지도록 해 보겠습니다. (아파치 웹서버의 가상호스트 기능과 같다고 보면 됩니다.)


먼저, Route 53화면에서 계속해서 레코드를 추가해 봅니다.


이번에는 CNAME 레코드를 추가해 보겠습니다. (A레코드를 입력해도 됩니다만 이번에는 CNAME을 사용하는 방법을 살펴봅니다.)


역시 이번에도 [Create Recoed Sets]를 클릭합니다.


  • Name : 이번에는 서브도메인명으로 'www'를 입력합니다.
  • Type : 'CNAME - Canonical name'을 선택합니다.
  • Value : 이번에는 IP가 아니라 A레코드에 사용한 루트 도메인 이름을 입력합니다. (예: example.com)
[Create]를 클릭합니다.

CNAME은 쉽게 이해하자면 도메인이름을 도메인이름으로 연결하는 것이라고 생각하면 되겠습니다. 예를 들어 www.example.com 을 example.com 으로 연결해주는것이죠.

이제 도메인 설정은 되었고, 실제 서버에서 작업을 해줘야겠죠?

먼저, '/var/www/www' 디렉터리를 만듭니다.

cd /
cd var
/var$ sudo mkdir www
/var$ cd www
/var/www$ sudo mkdir www
/var/www$ cd www
/var/www/www$

'/var/www/www' 디렉터리에 index.html 파일을 만듭니다. 내용은 아래와 같이 간단히 입력합니다.

준비 되었으면, 이제 NGINX를 설정합니다.


먼저 만일을 대비해 '/etc/nginx/'디렉터리의 nginx.conf 파일을 원본을 복사하여 사본을 만들어 둡니다.


 /etc/nginx$ sudo cp nginx.conf nginx.conf.ori


아파치 웹서버와 비슷한 방식으로 관리하기 위해 '/etc/nginx/' 하위 디렉터리로 'sites-enabled'디렉터리와 'sites-available' 디렉터리를 만듭니다.


 /etc/nginx$ sudo mkdir sites-enabled

 /etc/nginx$ sudo mkdir sites-available


이제 'nginx.conf' 파일을 열어 아래의 내용을 http 블럭 맨 아래 추가합니다.


include /etc/nginx/sites-enabled/*.conf;

이렇게 하면 조금 전에 만든 'sites-enabled' 디렉터리의 모든 .conf 파일들을 NGINX가 시작될 때 읽어들여 설정에 반영하게 됩니다.


이제 조금 전에 만든 'sites-available' 디렉터리에 'www' 서브 도메인을 연결할 서버 설정 파일을 만듭니다.


여기서는 example.conf 라는 파일로 만들었다고 가정합니다.


server {


    listen       80;

    server_name  www.example.com;


    #charset utf-8;


    #access_log  /var/log/nginx/log/www.example.access.log;


    location / {

        root   /var/www/www;

        index  index.html index.htm;

    }



    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }

}

새로 만든 'example.conf' 파일을 'sites-enabled' 디렉터리에 심볼릭 링크를 만들어줍니다.


$ cd /etc/nginx/sites-enabled

/etc/nginx/sites-enabled$ sudo ln -s /etc/nginx/sites-avaliable/example.conf example.conf

이제 위 화면과 같이 NGINX의 설정을 재로딩 합니다.


$ sudo service nginx reload


이제 서브도메인을 포함한 도메인으로 웹브라우저로 접속해 봅니다.


예를 들어 'example.com'이 도메인이면, 주소창에 'www.example.com' 을 입력합니다.

새로 분기한 '/var/www/www/index.html' 파일이 잘 나오는걸 확인할 수 있습니다.


이번 포스팅은 여기까지 입니다.


다음 포스팅에서는 많이들 사용하는 node.js 앞에 NGINX가 프록시 역할을 하도록 설정해 보도록 하겠습니다.



출처: http://wingsnote.com/57 [날개의 노트 (Wing's Note)]

'' 카테고리의 다른 글

크롬 POST 만들어 보내기  (0) 2020.04.30
Posted by wakira
,

    1  ping www.naver.com

    2  ifconfig

    3  vi /etc/sysconfig/network-scripts/

    4  vi /etc/sysconfig/network-scripts/ifcfg-eth0 

    5  reboot

    6  ping www.naver.com

    7  ifconfig

    8  ls

    9  df

   10  wget

   11  wget ?

   12  wget -help

   13  wget --help

   14  yum install wget

   15  wget

   16  ls

   17  pwd

   18  yum -y install httpd

   19  cd /var/www/

   20  ls

   21  cd html/

   22  ls

   23  ls -al

   24  yum -y install system-config-firewall-tui

   25  system-config-firewall-tui 

   26  /etc/init.d/iptables stop

   27  vi /etc/selinux/config

   28  reboot

   29  yum -y install mysql

   30  yum -y install mysql-server

   31  ls

   32  cd /var/www/html/

   33  ls

   34  vi

   35  ls

   36  vi test.php

   37  service  vsftpd restart

   38  service  system-config-firewall-tuivsftpd restart

   39  system-config-firewall-tui

   40  export LC_ALL=C

   41  system-config-firewall-tui

   42  local

   43  locale

   44  python --version

   45  /etc/init.d/iptables restart

   46  service httpd start

   47  yum -y install php

   48  ls

   49  ls -al

   50  chomd 707 test.php 

   51  chmod 707 test.php 

   52  ls

   53  systemctl enable httpd.service  

   54  vi /etc/sysconfig/iptables

   55  iptables -I INPUT -p tcp --dport 80 -j ACCEPT

   56  /etc/init.d/iptables save

   57  /etc/init.d/iptables restart

   58  ls

   59  vi test.php 

   60  yum -y install php php-mysql php-gd php-pear

   61  systemctl restart httpd.service

   62  yum install systemctl

   63  service httpd restart

   64  vi /etc/php.ini

   65  mysql -uroot -p

   66  yum -y install mysql

   67  yum -y install mysql-server

   68  mysql 

   69  service mysqld start

   70  mysql -uroot -p

   71  /usr/bin/mysqladmin -u root password '1234'

   72  mysql -uroot -p

   73  ls

   74  cd ..

   75  ls

   76  wegt

   77  wget

   78  wget http://10.211.55.3/gnuboard4.utf8.4.37.31.(2015.07.29).tgz

   79  wget http://10.211.55.3/gnuboard4.tgz

   80  ls

   81  tar xvzf gnuboard4.tgz 

   82  ls

   83  mv html html2

   84  mv gnuboard4 html

   85  ls

   86  chmod 707 hyml

   87  chmod 707 html

   88  ls

   89  cd hyml

   90  cd html

   91  ls

   92  mkdir data

   93  chmod 707 data

   94  ls

   95  vi /etc/php.ini

   96  ls

   97  vi test.php

   98  service httpd restart

   99  ls

  100  cd ..

  101  ls

  102  rm gnuboard4.tgz 

  103  rm -rf gnuboard4.tgz 

  104  ls

  105  rm -rf html2

  106  ls

  107  rm -rf html/

  108  wget http://10.211.55.3/gnuboard4.utf8.4.34.15.2011.10.24.tgz

  109  ls

  110  tar cvxf gnuboard4.utf8.4.34.15.2011.10.24.tgz 

  111  history

  112* tar xvfz gnuboar

  113  ls

  114  mv gnuboard4 html

  115  chmod 707

  116  chmod 707 html/

  117  ls

  118  cd html/

  119  ls

  120  mkdir data

  121  chmod 707 data

  122  ls

  123  cd ..

  124  ls

  125* wget 

  126  wget http://10.211.55.3/nuboard4.utf8.4.34.15.2011.10.24.tgz

  127  wget http://10.211.55.3/gnuboard4.utf8.4.34.14.2011.10.05.tgz

  128  ls

  129  tar xvzf gnuboard4.utf8.4.34.14.2011.10.05.tgz 

  130  ls

  131  mv gnuboard4 html

  132  l

  133  ls

  134  chmod 707 html

  135  ls

  136  cd html

  137  ls

  138  cd ..

  139  ls

  140  mv html2 html15

  141  cd html

  142  ls

  143  mkdir data

  144  chmod 707 data

  145  ls

  146  cd data/

  147  ls

  148  ls -al

  149  cd file/

  150  ls

  151  cat index.php 

  152  ls

  153  cat index.php 

  154  cd g1`


;

exit

q

  155  ls

  156  cd g1a1/

  157  ls

  158  cd ..

  159  ls

  160  cd ..

  161  ls

  162  cd log/

  163  ls

  164  ca index.php 

  165  cat index.php 

  166  cd ..

  167  ls

  168  cd session/

  169  ls

  170  ls -al

  171  ls

  172  ls -al

  173  ls

  174  cd ..

  175  ls

  176  cd member/

  177  ls

  178  cd ..

  179  ls

  180  cd cheditor4/

  181  ls

  182  cd ..

  183  ls

  184  cd cheditor

  185  ls

  186  cd ..

  187  ls

  188  cd ..

  189  ls

  190  cd ..

  191  ls

  192  cd html15/

  193  ls

  194  cd data/

  195  s

  196  ls

  197  cd session/

  198  ls

  199  cd ..

  200  ls

  201  cd ..

  202  ls

  203  cd ..

  204  l

  205  ls

  206  mv html14

  207  mv html html14

  208  mv html15 html

  209  ls

  210  cd html

  211  l

  212  ls

  213  cd cheditor5

  214  cd popup/

  215  ls

  216  cd js/

  217  ls

  218  vi dialog.js 

  219  cat dialog.js 

  220  ls

  221  cd ..

  222  ls

  223  cd ..

  224  ls

  225  cd ..

  226  ls

  227  cd data

  228  ls

  229  cd cheditor

  230  ks

  231  ls

  232  cd ..

  233  ls

  234  cd cheditor

  235  ls

  236  cd ..

  237  ls

  238  cd cheditor4

  239  ls

  240  cd 1703/

  241  ls

  242  cd ..

  243  pwd

  244  ls

  245  cd file/

  246  ls

  247  cd g1a1/

  248  ls

  249  pwd

  250  ls

  251  ls -al

  252  ls

  253  ls -al

  254  ls

  255  cd ..

  256  ls

  257  cd ..

  258  ls

  259  cd ..

  260  ls

  261  cd cheditor5

  262  ls

  263  cd ..

  264  ls

  265  cd cheditor4

  266  ls

  267  cd example/

  268  ls

  269  vi textarea.html 

  270  ls

  271  cat textarea.html 

  272  ls

  273  vi textarea.html 

  274  ls

  275  cd ..

  276  ls

  277  cd ..

  278  l

  279  ls

  280  cd data

  281  ls

  282  cd cheditor4

  283  ls

  284  cd 1703/

  285  ls

  286  rm phpshell.php 

  287  ls

  288  pwd

  289  ls

  290  cd ..

  291  ls

  292  cd ..

  293  ls

  294  cd file/

  295  ls

  296  pwd

  297  ã…›ã…•ã…yum install phpMyAdmin

  298  yum install phpMyAdmin

  299  curl -s -I http://localhost/phpMyAdmin/ | head -3

  300  ls

  301  cd ..

  302  ls

  303  cd ..

  304  ls

  305  mkdir db

  306  ls

  307  cd db

  308  s

  309  wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.19/phpMyAdmin-4.0.10.19-all-languages.zip

  310  ls

  311  unzip ./phpMyAdmin-4.0.10.19-all-languages.zip 

  312  yum install unzip

  313  unzip ./phpMyAdmin-4.0.10.19-all-languages.zip 

  314  ls

  315  mv phpMyAdmin-4.0.10.19-all-languages ../phpMyAdmin

  316  ls

  317  cd ..

  318  ls

  319  cd db

  320  ls

  321  mv phpMyAdmin-4.0.10.19-all-languages.zip ../..

  322  ls

  323  cd ..

  324  ls

  325  cd html

  326  ls

  327  rm db

  328  rm -rf db

  329  ls

  330  cd phpMyAdmin/

  331  ls

  332  vi libraries/config.default.php 

  333  curl -s -I http://localhost/phpMyAdmin/ | head -3

  334  cd /etc/httpd/conf.d/

  335  grep 127.0.0.1 phpMyAdmin.conf

  336  ls

  337  yum install php-mbstring

  338  service httpd restart

  339  ls

  340  cd /var/www/

  341  ls

  342  cd html

  343  ls

  344  cd data/

  345  ls

  346  history > 1.txt


' > php' 카테고리의 다른 글

wordpress / ubuntu 16.04 설치  (0) 2017.04.01
페이지 이동  (0) 2014.05.29
Posted by wakira
,

펌 http://mungchung.com/xe/lecture/4197


form의 element에 스크립트로 접근하는 방식들을 정리해보았다. 
각 브라우저별로 테스트 했으니 참고 하면 된다. 


IE : 익스플로러 7 
SF : 사파리 3 
FF : FireFox 3 
Chrome : 크롬

1. form의 element에 name으로 접근
<input type="text" value="우후훗!" name="txt1">
접근 방법실행브라우저
document.form1.txt1.valueIE, SF, FF, Chrome
document.getElementsByName('txt1')[0].valueIE, SF, FF, Chrome
document.getElementsByTagName('input').item('txt1',0).valueIE, SF, FF, Chrome
document.getElementById('txt1').valueIE
document.form1.namedItem('txt1').valueIE
document.form1.elements['txt1'].valueIE, SF, FF, Chrome
2. form의 element에 ID로 접근
<input type="text" value="우후훗!" id="txt2">
접근 방법실행브라우저
document.form1.txt2.valueIE, SF, FF, Chrome
document.getElementsByName('txt2')[0].valueIE
document.getElementsByTagName('input').item('txt2',0).valueIE, SF, FF, Chrome
document.getElementById('txt2').valueIE, SF, FF, Chrome
document.form1.namedItem('txt2').valueIE
document.form1.elements['txt2'].valueIE, SF, FF, Chrome
3. form에 중복된 이름의 element가 있을 경우 접근 방법
<input type="text" value="우후훗 1" name="txt3"><input type="text" value="우후훗 2" name="txt3">
접근 방법실행브라우저
document.getElementsByName('txt3')[0].valuefor (var i=0; i&lt;document.getElementsByName('txt3').length; i++) { alert(document.getElementsByName('txt3')[i].value); }IE, SF, FF, Chrome
document.getElementsByTagName('input').item('txt3',0).valuefor (var i=0; i&lt;document.getElementsByTagName('input').item('txt3').length; i++) { alert(document.getElementsByTagName('input').item('txt3',i).value); }IE, SF, FF, Chrome

form의 element가 중복 될 수도 있고 아닐수도 있으면 위의 2가지 방법중 하나를 이용해서 스크립트 작성하는게 편하다.

위의 2가지 접근방법말고 다른 스크립트 코드들은 element가 하나면 일반 element 되고 2개 이상이면 배열이 되어버린다.

이러한 element 중복여부의 대표적인 예가 행추가/행삭제이다. 행이 하나면 element가 하나여서 일반 element가 되는데 행이 두개 이상이면 element가 배열이 되어 버린다. 이 경우 스크립트를 이용해서 접근하려고 하면 해당 element가 하나일 때와 2개 이상 일때 구분해서 처리해 줘야한다.if (typeof(document.form1.txt3.length) == "undefined") { alert(document.form1.txt3.value); } else { for (var i=0; i&lt;document.form1.txt3.length; i++) { alert(document.form1.txt3[i].value); } }딱 봐도 엄청 귀찮은 작업이다. -_- 본인도 예전에는 저와같은 방식으로 이용했다 -_- 

위의 방식으로의 또 다른 문제점은 form의 select 요소에 접근 할 때이다. 위의 코드에서는 배열여부를 document.form1.txt3.length 의 typeof 값이 undefined 인지 여부를 통해서 판단했는데 select의 경우에는 위의 구문대로 하면 option의 갯수를 가져와 버린다. 그래서 select 는 또 다른 방식으로 배열 여부를 구분해야한다. 

그래서 얻은 결론은 행추가/행삭제 같은 element가 중복 될 수도 있고 안될 수도 있다면 위의 2 가지 방법으로 element에 접근하는 것이 편하다는 것이다


4. form의 element의 사용자 정의 속성 접근
<input type="text" myTag="우후훗!" name="txt4">
접근 방법실행브라우저
document.form1.txt4.myTagIE
document.getElementsByName('txt4')[0].myTagIE
document.getElementsByTagName('input').item('txt4',0).myTagIE
document.getElementById('txt4').myTagIE
document.form1.namedItem('txt4').myTagIE
document.form1.elements['txt4'].myTagIE
document.form1.txt4.getAttribute('myTag')모두 안됨
document.getElementsByName('txt4')[0].getAttribute('myTag')IE, SF, FF, Chrome
document.getElementsByTagName('input').item('txt4',0).getAttribute('myTag')IE
document.getElementById('txt4').getAttribute('myTag')IE
document.form1.namedItem('txt4').getAttribute('myTag')IE
document.form1.elements['txt4'].getAttribute('myTag')IE, SF, FF, Chrome



Posted by wakira
,

장고 헬로우월드

웹/django 2015. 10. 11. 18:49


15.10.10.hello world.zip


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

requirements usage  (0) 2017.06.08
django settings 분리  (0) 2017.06.03
장고 부트스트랩 장고에 쓰기.  (0) 2015.10.11
python for visual studio  (0) 2014.08.20
설정법  (0) 2014.06.08
Posted by wakira
,