Mac apache 2.4.34 VirtualHost, ProxyPass 적용하기

Posted by nopsled
2019.01.14 13:30 운영체제

nopsled@Sangui-MacBookPro:/etc/apache2 (=`ω´=)$ apachectl -V

Server version: Apache/2.4.34 (Unix)

Server built:   Aug 17 2018 18:35:43

Server's Module Magic Number: 20120211:79

Server loaded:  APR 1.5.2, APR-UTIL 1.5.4

Compiled using: APR 1.5.2, APR-UTIL 1.5.4

Architecture:   64-bit

Server MPM:     prefork

  threaded:     no

    forked:     yes (variable process count)

Server compiled with....

 -D APR_HAS_SENDFILE

 -D APR_HAS_MMAP

 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

 -D APR_USE_FLOCK_SERIALIZE

 -D APR_USE_PTHREAD_SERIALIZE

 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

 -D APR_HAS_OTHER_CHILD

 -D AP_HAVE_RELIABLE_PIPED_LOGS

 -D DYNAMIC_MODULE_LIMIT=256

 -D HTTPD_ROOT="/usr"

 -D SUEXEC_BIN="/usr/bin/suexec"

 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"

 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

 -D DEFAULT_ERRORLOG="logs/error_log"

 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"

 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf" 



nopsled@Sangui-MacBookPro:/etc/apache2 (=`ω´=)$ tree .

.

├── extra

│   ├── httpd-autoindex.conf

│   ├── httpd-dav.conf

│   ├── httpd-default.conf

│   ├── httpd-info.conf

│   ├── httpd-languages.conf

│   ├── httpd-manual.conf

│   ├── httpd-mpm.conf

│   ├── httpd-multilang-errordoc.conf

│   ├── httpd-ssl.conf

│   ├── httpd-userdir.conf

│   ├── httpd-vhosts.conf

│   └── proxy-html.conf

├── httpd.conf

├── httpd.conf.pre-update

├── magic

├── mime.types

├── original

│   ├── extra

│   │   ├── httpd-autoindex.conf

│   │   ├── httpd-dav.conf

│   │   ├── httpd-default.conf

│   │   ├── httpd-info.conf

│   │   ├── httpd-languages.conf

│   │   ├── httpd-manual.conf

│   │   ├── httpd-mpm.conf

│   │   ├── httpd-multilang-errordoc.conf

│   │   ├── httpd-ssl.conf

│   │   ├── httpd-userdir.conf

│   │   ├── httpd-vhosts.conf

│   │   └── proxy-html.conf

│   └── httpd.conf

├── other

│   └── php7.conf

└── users

    └── Guest.conf


5 directories, 31 files

nopsled@Sangui-MacBookPro:/etc/apache2 (=`ω´=)$ 


Python flask wsgi 적용하기 귀찮아서 위처럼 사용하고 있다... (이러면 안되는거 알지만.......)


아무튼 Apache 2.4.34, Apache 디렉토리에 뭐가 있는지 확인했는데 똑같으면 아래와 같이 따라하면 된다.




LoadModule proxy_html_module libexec/apache2/mod_proxy_html.so

LoadModule proxy_module libexec/apache2/mod_proxy.so

LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

# proxy module 주석을 제거 해준다.


DocumentRoot "/var/www/default"

<Directory "/var/www/default">

    Options FollowSymLinks Multiviews Indexes

    MultiviewsMatch Any

    AllowOverride all

    Require all granted

    Allow from all

</Directory>

# DocumentRoot의 default 위치 지정 (기본적으로 127.0.0.1, localhost라고 생각하면 됨)


Include /private/etc/apache2/extra/httpd-vhosts.conf

# httpd-vhosts.conf 파일을 include 시켜준다.



sudo vi /etc/apache2/httpd.conf


sudo로 httpd.conf 파일을 열어서 위와 같이 수정 및 추가한다.




<VirtualHost scope.nopsled.local:80>

    ServerAdmin scope@admin.scope.com # 아무거나 써도 된다

    ServerName scope.nopsledlocal # 아무거나 써도 된다

    ServerAlias scope.nopsled.local # 아무거나 써도 된다

    DocumentRoot "/var/www/scope" # DocumentRoot 지정

    ErrorLog "/private/var/log/apache2/scope-error.log"

    CustomLog "/private/var/log/apache2/scope-access.log" common

    <Directory /var/www/scope> # 여기서도 DocumentRoot 지정

        Allow from all

        AllowOverride All

        Require all granted

        Options Indexes FollowSymLinks MultiViews

    </Directory>


    <IfModule mod_rewrite.c>

        # mod_rewrite.c Module이 있는 경우 아래 실행

        RewriteEngine On

        # RewriteEngine 키고

        ProxyPass / http://127.0.0.1:8080/

        # /로 들어온 모든 사용자는 127.0.0.1:8080를 프록시로 사용

        ProxyPreserveHost On

        ProxyErrorOverride Off

        # Error는 override하지 않는다

    </IfModule>

</VirtualHost>


<VirtualHost 127.0.0.1:80 localhost:80>

    # 위 도메인 외에 127.0.0.1:80, localhost:80에 접속하는 사용자는 아래와 같이 포워딩한다

    ServerAdmin nopsled@localhost

    ServerName nopsled.localhost

    DocumentRoot "/var/www/default"

    ErrorLog "/private/var/log/apache2/default-error.log"

    CustomLog "/private/var/log/apache2/default-access.log" common

    <Directory /var/www/default>

        Allow from all

        Require all granted

        AllowOverride all

    </Directory>

</VirtualHost>


sudo vi /etc/apache2/extra/httpd-vhosts.conf

httpd-vhosts.conf를 sudo로 열어서 위와 같이 수정해준다.



##

# Host Database

#

# localhost is used to configure the loopback interface

# when the system is booting.  Do not change this entry.

##

127.0.0.1   localhost

255.255.255.255 broadcasthost

::1             localhost

127.0.0.1 scope.nopsled.local 


sudo vi /etc/hosts

hosts를 열어서 위와 같이 마지막에 추가해준다.


이제 열어보면 잘된다. 이렇게 했는데도 안되면 /var/log/apache2/에 있는 error.log를 참고하면서 trouble shooting하면 된다.



이 댓글을 비밀 댓글로

/etc/sudoers 권한 변경 실패시

Posted by nopsled
2018.12.10 14:07 운영체제

회사 아이맥으로 mongodb를 설치하던 중 퍼미션 디나인이 떠서 sudoers를 수정했었다가 참변을 당했다.


datakingui-iMac:~ dataking$ sudo chmod 440 /etc/sudoers

sudo: /etc/sudoers is world writable

sudo: no valid sudoers sources found, quitting

sudo: unable to initialize policy plugin


sudo를 하려고 해도 sudo가 안되고 위와 같이 에러가 났다.


osascript -e 'do shell script "chown root:wheel /etc/sudoers;chmod 0440 /etc/sudoers" with administrator privileges' 


위 스크립트를 사용해서 권한을 바꿨더니 정상적으로 동작했다.

이 댓글을 비밀 댓글로

linux UTC to KST (also hardware time too)

Posted by nopsled
2018.06.05 10:29 운영체제

매일매일 VM 셋팅해주면 region 때문에 time이 문제다.


아시아로 맞춰주면 UTC로 변하질 않나.. rdate로 타임서버랑 싱크 맞춰도 안맞질 않나... 짜증나서 열심히 삽질하다가 올려본다.


참고로 환경은 Ubuntu 16.04 LTS다.



nopsled@vmtest:~/$ ls -al /usr/share/zoneinfo/Asia | grep Seoul

lrwxrwxrwx  1 root root    6 Nov  9  2017 Seoul -> ../ROK

nopsled@vmtest:~/$ 



위와 같이 Seoul이 있는거 확인하면 된다. 참고로 환경이 Ubuntu라 경로가 바뀔 수 있음을 알아두자.



nopsled@vmtest:~/$ ls -al /etc/localtime

lrwxrwxrwx 1 root root 30 Jun  4 18:22 /etc/localtime -> /usr/share/zoneinfo/US/Pacific

nopsled@vmtest:~/$ 


/etc/localtime이 있는지 확인



nopsled@vmtest:~/$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

nopsled@vmtest:~/$ ls -al /etc/localtime

lrwxrwxrwx 1 root root 30 Jun  5 10:26 /etc/localtime -> /usr/share/zoneinfo/Asia/Seoul

nopsled@vmtest:~/$ date

Tue Jun  5 10:27:11 KST 2018

nopsled@vmtest:~/$ sudo hwclock --show

Tue 05 Jun 2018 10:27:13 AM KST  .956086 seconds

nopsled@vmtest:~/$ 


파일이 root 권한이므로 sudo로 링크 다시 걸어주고 제대로 적용되었는지 /etc/localtime을 확인


마지막으로 date와 sudo hwclock --show로 하드웨어 타임과 맞는지 확인하며 끝낸다.

이 댓글을 비밀 댓글로

crontab checker

Posted by nopsled
2018.04.26 18:13 운영체제

직장에서 crontab을 이렇게 열심히 쓸줄은 몰랐다.


심심해서 crontab checker 만들려고 했는데 누가 만들어놨다... 그것도 온라인으로.....


https://crontab.guru/

위 링크에서 cron command 만들고 


http://cron.schlitt.info/


위에서 테스트하면 확실하게 알 수 있다.

'운영체제' 카테고리의 다른 글

/etc/sudoers 권한 변경 실패시  (0) 2018.12.10
linux UTC to KST (also hardware time too)  (0) 2018.06.05
crontab checker  (0) 2018.04.26
ssh process continue after logout  (0) 2018.04.19
Mac high sierra apache connection refused error  (0) 2018.01.08
ssh process continuation  (0) 2015.10.10
이 댓글을 비밀 댓글로

ssh process continue after logout

Posted by nopsled
2018.04.19 17:58 운영체제

node js를 돌리는데 자꾸 죽어서 왜 죽지.. 하고 생각해봤는데 ssh session이 terminate가 되면 프로세스가 처음에는 살아있다가 나중엔 죽어버린다.


그래서 방안이 없나 하다가 (사실 예전에 알았는데 안쓰다보니 까먹었다..) screen을 사용하였다. session이 terminate되어도 잘 돌아간다.




  • screen
    • 스크린 진입 (일반적으로 귀찮으면 그냥 생성하려면 위와같이 입력하면 된다.)
  • screen -r
    • 스크린 세션 진입할때 이름 넣어주면 된다.
  • screen -S
    • 세션의 이름을 지정하여 스크린 진입



나는 자주 쓰는거만 설명하도록 하겠다. (screen 세부 명령어는 알아서 찾아보도록)



npm start &

^A

d


위는 예제다. npm start &로 시작하고 ctrl+a를 누른뒤에 d를 눌러주면 스크린에서 detach되고 ssh session terminate 시켜도 잘 돌아간다.

이 댓글을 비밀 댓글로

Mac high sierra apache connection refused error

Posted by nopsled
2018.01.08 17:58 운영체제

맥북 사용하는데 high sierra 업데이트 후 아파치가 고장났다...


cd /etc/apache2/  
sudo mv httpd.conf httpd.conf-afterupdate  
sudo mv httpd.conf.pre-update httpd.conf  
sudo apachectl configtest  
sudo apachectl restart 


config file을 새로 바꿔주면 잘 동작한다.


전에 설정해놓은 http.conf 파일은 알아서 잘 수정해서 httpd.conf.pre-update에 반영해주면 된다.


이래서 업데이트 하겠나.. 짜증짜증.. T.T

이 댓글을 비밀 댓글로

ssh process continuation

Posted by nopsled
2015.10.10 11:03 운영체제

[english]

if disconnect ssh, process will be dead. so we using linux "screen".


# nopsled@localhost:~/Documents (=`ω´=)$ screen -S test


/* now created new screen ttys is 005 */

# nopsled@localhost:~/Document (=`ω´=)/$ screen -list

There is a screen on:

        5960.test       (Attached)


/* if you want execute test.py on ssh connection forever, using & and detach it */

# nopsled@localhost:~/Documents (=`ω´=)$ python test.py &


/* detach it now */

# nopsled@localhost:~/Documents (=`ω´=)$ screen -d

[remote detached]


/* now get out screen. and working at ttsy002*/

# nopsled@localhost:~/Documents (=`ω´=)$ ps -ef | grep python

  501  6043  5962   0 10:55AM ttys005    0:05.16 python test.py

  501  6012  5767   0 10:51AM ttys002    0:00.00 grep python




if you want re attach it, using "screen -r pid" like next.


nopsled@localhost:~/Documents (=`ω´=)$ screen -list

There is a screen on:

6080.test (Detached)

1 Socket in /var/folders/4c/8lgn3z2970v0qkwn2z08twhh0000gn/T/.screen.


nopsled@localhost:~/Documents (=`ω´=)$ screen -r 6080





if you want terminate screen, using exit!

nopsled@localhost:~/Documents (=`ω´=)$ exit

[screen is terminating]

nopsled@localhost:~/Documents (=`ω´=)$







[한국어]

끊긴 ssh에서 프로세스를 계속 사용하기 위해서는 screen을 사용해야 한다.


screen -list를 이용하여 리스트를 보고 screen -r을 사용하여 attach, screen -d를 사용하여 detach를 한다.


프로세스를 실행시킨후 screen -S 하는게 아닌, screen -S를 사용하여 새로운 스크린을 만든 후 프로세스를 실행시켜야 원활히 돌아간다.

이 댓글을 비밀 댓글로

/usr/bin/dpkg returned an error code (1) in ubuntu

Posted by nopsled
2015.08.18 17:31 운영체제


dpkg: error processing package python-wheel (--configure):

 의존성 문제 - 설정하지 않고 남겨둠

처리하는데 오류가 발생했습니다:

 python-minimal

 python

 python-chardet

 python-colorama

 python-dev

 python-distlib

 python-six

 python-html5lib

 python-pkg-resources

 python-urllib3

 python-requests

 python-setuptools

 python-pip

 python-wheel

E: Sub-process /usr/bin/dpkg returned an error code (1) 


error occurred while installing python modules.


i solved this problem using next method.


$ cd /var/lib/dpkg/info

$ rm -rf ./python*

$ apt-get install


'운영체제' 카테고리의 다른 글

Mac high sierra apache connection refused error  (0) 2018.01.08
ssh process continuation  (0) 2015.10.10
/usr/bin/dpkg returned an error code (1) in ubuntu  (0) 2015.08.18
how to resolve nokogiri 1.6.5 compile error  (0) 2015.01.24
metasploit on mac  (0) 2015.01.23
CleanMyMac2.dmg crack.  (0) 2014.05.13
이 댓글을 비밀 댓글로

how to resolve nokogiri 1.6.5 compile error

Posted by nopsled
2015.01.24 08:51 운영체제


Building native extensions with: '--use-system-libraries'
This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb --use-system-libraries
checking if the C compiler accepts ... yes
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... yes
Building nokogiri using system libraries.
libxml2 version 2.6.21 or later is required!
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/local/rvm/rubies/ruby-2.1.2/bin/ruby
    --help
    --clean
    --use-system-libraries
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib
    --without-xml2-lib=${xml2-dir}/lib
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-pkg-config
    --without-pkg-config
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-exslt-dir
    --without-exslt-dir
    --with-exslt-include
    --without-exslt-include=${exslt-dir}/include
    --with-exslt-lib
    --without-exslt-lib=${exslt-dir}/lib
    --with-libexslt-config
    --without-libexslt-config

extconf failed, exit code 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out

OS X에서 metasploit을 사용하려는데 bundle install을 해주라길래 해줬는데 자꾸 에러를 내뱉어서 찾아본 방법이다.


결과는 xcode를 전에 지웠었는데.. 다시 설치해주고 xcode에 저장된 library(libxml2)를 사용하면 되는 것이었다..


gem install nokogiri -v '1.6.5' -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2
그러므로 이렇게 해주면 정상적으로 설치 완료.. 고생이 많았다..ㅠ


'운영체제' 카테고리의 다른 글

ssh process continuation  (0) 2015.10.10
/usr/bin/dpkg returned an error code (1) in ubuntu  (0) 2015.08.18
how to resolve nokogiri 1.6.5 compile error  (0) 2015.01.24
metasploit on mac  (0) 2015.01.23
CleanMyMac2.dmg crack.  (0) 2014.05.13
boom.dmg crack  (0) 2014.05.13
이 댓글을 비밀 댓글로

metasploit on mac

Posted by nopsled
2015.01.23 13:32 운영체제

metasploit 업데이트를 모두 완료하고나서 ./msfconsole로 실행시켰는데 무슨 에러를 뱉어내네..


대충 읽어보니 bundle install 명령을 실행해라.였는데 하니깐 밑에 에러를 딱하고 뿜어주네..


bundle command not found 

알고보니 metasploit 업데이트 하고 나서 환경변수가 제대로 설정이 되어 있지 않은가보다..


export를 사용해서보면 PATH환경변수에 /usr/bin/, /usr/sbin인가 뭐 여러개 있는데 /opt/local/bin과 /opt/local/sbin이 없기 때문에 bundle이 실행이 안됬던 것..


그러므로 다음 명령어 한줄이면 된다.


export PATH=/opt/local/bin:/opt/local/sbin:$PATH 


결국 삽질 끝.

'운영체제' 카테고리의 다른 글

/usr/bin/dpkg returned an error code (1) in ubuntu  (0) 2015.08.18
how to resolve nokogiri 1.6.5 compile error  (0) 2015.01.24
metasploit on mac  (0) 2015.01.23
CleanMyMac2.dmg crack.  (0) 2014.05.13
boom.dmg crack  (0) 2014.05.13
TunesArt.dmg crack.  (0) 2014.05.13
이 댓글을 비밀 댓글로