'working diary'에 해당되는 글 47건

  1. 2014.07.14 #20140714-01 :: lgcodechallenger :: apache 2.4.7 + django 1.5.8 on ubuntu 14.04 LTS with AWS
  2. 2014.06.26 #20140626-01 :: aptana3 :: Google App Engine directory on Aptana Studio 3
  3. 2014.04.18 #20140418-01 :: Apache :: (13)Permission denied
  4. 2014.04.03 #20140403-01 :: Maven :: Java version reset problem
  5. 2013.08.11 #20130811-01 :: V8 :: Build V8 Javascript engine on VS2010 with 'error MSB6006'
  6. 2013.05.10 #20130510-01 :: Synergy :: Synergy on Ubuntu
  7. 2013.04.29 #20130429-01 :: PyDev :: "Python stdlib source files not found"
  8. 2013.02.15 #20130215-02 :: Git :: 쉽고 직관적인 매뉴얼
  9. 2013.02.15 #20130215-01 :: Linux :: Ubuntu 12.04 에서 사용자 계정 이름 변경하기
  10. 2013.02.09 #20130209-01 :: Python :: Mac OS X Mountain Lion에서 site-packages 문제

#20140714-01 :: lgcodechallenger :: apache 2.4.7 + django 1.5.8 on ubuntu 14.04 LTS with AWS

$ sudo su

# apt-get update

# vi ~/.bashrc

  export LANG="en_US.UTF-8"

  export LC_ALL="en_US.UTF-8"

  : wq

# source ~/.bashrc

# apt-get -y upgrade

# wget https://www.djangoproject.com/download/1.5.8/tarball/ --default-page=Django-1.5.8.tar.gz

# tar -vxzf Django-1.5.8.tar.gz

# cd Django-1.5.8

# sudo python setup.py install

# python -c "import django; print(django.get_version())"


# apt-get install -y apache2

# apache2 -version


# sudo aptitude install -y libapache2-mod-wsgi

# a2enmod wsgi


# sudo apt-get install -y git-core python2.7-mysqldb


# mkdir /srv/django

# cd /srv/django

# git clone https://github.com/ghilbut/lgcodechallenger.git

# cd lgcodechallenger/lgcc

# cp settings.py.example settings.py

# vi settings.py

  == do something ==


# vi /etc/apache2/sites-available/001-lgcc.conf


<VirtualHost *:80>

  ServerAdmin support@lgcodechallenger.com

  ServerName lgecodejam.com

  ServerAlias design.lgcodechallenger.com dev.lgcodechallenger.com


  DocumentRoot /var/www/html


  Alias /static/admin /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/

  Alias /static /srv/django/lgcodechallenger/lgcc_media/static/


  <Directory /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin>

    Require all granted

  </Directory>


  <Directory /srv/django/lgcodechallenger/lgcc_media/static>

    Require all granted

  </Directory>


  WSGIDaemonProcess lgcodechallenger.com user=ubuntu group=ubuntu processes=1 threads=10 python-path=/srv/django/lgcodechallenger:/usr/local/lib/python2.7/site-packages

  WSGIProcessGroup lgcodechallenger.com


  WSGIScriptAlias / /srv/django/lgcodechallenger/lgcc/wsgi.py


  <Directory /srv/django/lgcodechallenger/lgcc>

    Order allow,deny

    Allow from all


    <Files wsgi.py>

      Require all granted

    </Files>

  </Directory>


  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

:wq


# a2dissite 000-default.conf

# a2ensite 001-lgcc.conf

# apachectl configtest

# service apache2 restart

#20140626-01 :: aptana3 :: Google App Engine directory on Aptana Studio 3

Aptana Studio 3에서 Google App Engine 프로젝트를 만들게 되면,

Google App Engine Directory를 요구합니다.


Mac OS X에서는 프로그램이 *.app으로 패키징 되어있기 때문에

Aptana3의 Browse 버튼으로는 요구하는 위치를 설정할 수 없습니다.


그래서 아래의 경로를 입력창에 직접 입력합니다.


/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/


#20140418-01 :: Apache :: (13)Permission denied

오늘 서버 작업을 하면서 매우 곤란한 문제를 마주했었습니다.


환경

- Cent OS 6.4

- Apache 2.4.9


간단한 웹서비스 페이지를 하나 올려야 했고

서비스 포트로 8082를 지정 받았습니다.


아파치를 설치하고 몇 가지 설정을 하니 아래와 같은 에러와 마주하게 되었습니다.


$ sudo service httpd start

Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:8082

(13)Permission denied: make_sock: could not bind to address 0.0.0.0:8082

no listening sockets available, shutting down

Unable to open logs


한참을 검색하고 삽질을 하다가 알게 된 사실은

Cent OS에서는 httpd에 대하여 특정 포트만을 허용하고 있다는 것이었습니다.

자세한 내용은 아래와 같이 볼 수 있습니다.


$ sudo semanage port -l|grep http

http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010

http_cache_port_t              udp      3130

http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443

pegasus_http_port_t            tcp      5988

pegasus_https_port_t           tcp      5989


위의 목록에서 http_port_t에 8082가 없기 때문에 계속 에러가 난 것입니다.


해결 방법은 다음과 같습니다.


$ sudo yum -y install policycoreutils-python

$ sudo semanage port -a -t http_port_t -p tcp 8082


검색을 해 보니 SELinux에는 semanage 가 기본으로 있는 것 같은데 

Cent OS에는 설치되어 있지 않았기 때문에 별도로 설치하였습니다.

그리고 semanage를 통해 8082 포트를 허용해 주도록 추가 등록 하였습니다.



#20140403-01 :: Maven :: Java version reset problem

현재 회사에서 Spring + Maven 환경의 프로젝트를 진행 중입니다.


프로젝트를 진행하면서 다음과 같은 문제를 만났습니다.


- 나는 Java 1.7을 사용하고 있다.

- Maven Update를 하면 Java 1.5로 환경이 리셋된다.

- 프로젝트가 에러가 발생한다.

- 환경설정에서 1.5로 모두 변경해야 한다.


검색을 통해 해결책을 찾았습니다. [링크]


pom.xml 파일에 아래와 같은 내용을 추가하거나 변경하면 됩니다.


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
       <source>1.7</source>
       <target>1.7</target>
    </configuration>
</plugin>


#20130811-01 :: V8 :: Build V8 Javascript engine on VS2010 with 'error MSB6006'

지난 8월 9일 회사에서 처음으로 V8 자바스크립트 엔진을 다운로드 받아 빌드해 보았습니다. 환경은 윈도우7 64bit, VS2010 입니다. 공식 메뉴얼에 따르면 쉽게 컴파일하고 테스트 해 볼 수 있습니다. 그리고 어제부터 집에서 똑같은 절차에 따라 32bit 환경에서 빌드를 시도해 보았습니다. 그런데 실패 ㅋ 지속적으로 MSB600 에러를 발생시켰습니다. 문제는 빌드 경로에 한글이 있는 것이었습니다. V8까지의 전체 경로에 한글이 없는 곳으로 폴더를 이동하자 정상적으로 테스트 할 수 있었습니다.

#20130510-01 :: Synergy :: Synergy on Ubuntu

저는 회사에서 2대의 데스크북과 한대의 맥북프로를 사용하고

Synergy를 이용해 키보드와 마우스 공유를 하고 있습니다.

구성은 Ubuntu를 Synergy 서버로 하고 Windows 7을 클라이언트로 했는데,

문제는 현재 설정으로는 Ubuntu에 개인 계정으로 로그인 하기 전에는 

Synergy 서버가 켜지지 않았습니다.

그래서 부팅 후 바로 Synergy 서버가 동작하도록 하는 방법을 찾던 중

Ubuntu에서 Synergy 사용법을 가이드하는 문서 페이지를 찾았습니다.

문서에서 가이드한 대로 설정을 한 결과

현재는 로그인을 하지 않아도 키보드와 마우스가 공유 됩니다.

저와 같은 방식으로 사용하기 원하시는 분들은 링크를 확인하세요.


#20130429-01 :: PyDev :: "Python stdlib source files not found"

오늘 회사의 맥북프로(Mac OS X Moutain Lion)에서 Django 작업 환경을 꾸미기 위하여 Django와 Aptana를 설치하였습니다. 그런데 프로젝트를 생성하려는 순간 적절한 Interpreter를 찾을 수 없다고 하더군요. 그래서 "환경설정 → PyDev → Interpreter-Python"으로 가서 "Auto Config"를 돌렸습니다. 결과는 "Python stdlib source files not found"라는 경고가 나면서 Python을 인식하지 않습니다.


해결 방법은 이곳에서 최신 "Command line tools for Xcode"를 다운로드 받아 설치하시면 됩니다. 그리고 다시 "Auto Config"를 하면 정상적으로 인식이 됩니다.

#20130215-02 :: Git :: 쉽고 직관적인 매뉴얼

오늘 Gerrit 시스템을 이용한 코드리뷰 프로세스 세미나를 준비하던 중

같이 일하는 김중항 선임님께 재미있는 링크를 소개 받았습니다.



좀 더 고급기능 들은 빠져있지만,

이것만으로도 매우 강력하고 직관적인 매뉴얼 이라고 생각됩니다.

#20130215-01 :: Linux :: Ubuntu 12.04 에서 사용자 계정 이름 변경하기

현재 회사에서 아래와 같이 전방위적으로 다양한 시스템을 사용하고 있습니다.

- Notebook: Windows 7 Professional 64bit

Notebook: Ubuntu 12.04 LTS 64bit

- Macbook: Mac OS X Mountain Lion


그런데 여기에 Ununtu 12.04 32bit 시스템이 필요해 졌습니다.

그래서 윈도우에 VMWare로 설치하기로 마음 먹었습니다.

하지만 문제가 하나 생겼습니다.


저의 회사 계정은 jh81.kim 입니다.

그러나 VMWare의 우분투 설치 옵션에서는 '.'을 허용하지 않는군요.

일단은 jh81kim으로 설치를 완료했습니다.

그리고 구글 검색을 통해 방법을 찾아 계정을 jh81kim 에서 jh81.kim 으로 변경했습니다.



해결 방법은 아래와 같습니다.




1. 터미널을 실행합니다.


2. 아래 명령을 실행하여, root 계정을 활성화하고 root로 로그인 할 수 있도록 합니다.


$ sudo passwd root

$ sudo sh -c 'echo "greeter-show-manual-login=true" >> /etc/lightdm/lightdm.conf'


3. 컴퓨터를 재실행 한 후 root 계정으로 로그인 합니다.


4. 아래 명령을 실행하여 사용자 이름과 HOME 폴더 이름을 변경합니다.


# usermod -m -d /home/jh81.kim -l jh81.kim jh81kim


5. 모두 완료되면 아래의 명령을 실행하여 root 계정을 비활성화 합니다.


# passwd -l root


6. vi 에디터로 (2)에서 추가한 명령행을 삭제합니다.


# vi /etc/lightdm/lightdm.conf

>> greeter-show-manual-login=true 를 삭제


7. 컴퓨터를 재실행 합니다.


#20130209-01 :: Python :: Mac OS X Mountain Lion에서 site-packages 문제

현재 집에서 Mac OS X Mountain Lion을 사용 중입니다.

벤처를 그만둔 이후 한동안 웹 개발에서 손을 놓았었으나

간만에 심심풀이 땅콩이나 할까하여 Aptana, django, boto를 다시 꺼내들었습니다.


그런데 문제가 발생했습니다. 

터미널에서 실행한 python 콘솔에서 설치된 django와 boto를 읽어오지 못하는 것이었습니다.

확인한 결과 원인은 "python setup.py install"로 설치되는 site-packages 경로와 

터미널이 읽어오는 site-packages 경로가 다르다는 것이었습니다.

뭐... 이런 거지같은 ㅋ


다음과 같이 문제를 해결합니다.


$ cd /Library/Python/2.7

$ sudo mv site-packages site-packages.origin

$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages site-packages


터미널을 닫은 후 재실행하니 django와 boto가 정상적으로 import 됩니다.