sources.list 에 내용을 추가하고 apt-get update시

다음과 같이 GPG error 메시지를 내고 저장소 추가가 되지 않을 경우


W: GPG error: http://www.deb-multimedia.org jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907


빨간 부분에 주목하여

gpg --keyserver pgpkeys.mit.edu --recv-key 07DC563D1F41B907

gpg -a --export 07DC563D1F41B907 | sudo apt-key add -


위와 같은 명령으로 해결 할 수 있다

Posted by Mr.Jo :

Permalink를 설정하기 위해서는 rewrite를 설정해야 하는데

apache2에서 rewrite는 이전 글에서와 같이 모듈 하나를 추가해 주면 되지만 nginx에서 사용하기 위해서는 다음과 같이 한줄을 추가 하면 된다

location / {

                try_files $uri $uri/ /wordpress/index.php?$args;

        }



Posted by Mr.Jo :

분명 우분투에서는 정상 작동 했던것 같은데 Debian Jessie에서 셋팅했더니 phpinfo(); 정보 조차 나오지 않아 한참 헤맸다.


증상은 html은 정상 동작하나 php파일들은 어떠한 에러 로그도 없이 빈 페이지 (소스코드 보기를 해도 아무것도 없는 페이지)만 리턴했다.


구글링 결과 해결 방법은 간단.


/etc/nginx/fastcgi_params

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;


fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;

or


/etc/nginx/sites-available/default

location ~ \.php$ {

                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                fastcgi_pass unix:/var/run/php5-fpm.sock;

                fastcgi_index index.php;

                include fastcgi_params;

                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        }


밑줄친 빨간색 부분이 debian jessie 버젼의 fastcgi_param파일 부분에서 빠진듯 하다.

Posted by Mr.Jo :

/etc/localtime 이라는 파일이 어디 기준 시각을 표시할지에 대한 정보를 갖고 있는데

다른 유틸을 써서 변경하여도 좋지만 불가피 할 경우를 가정하여 정리해 놓는다


/usr/share/zoneinfo 에 보면 지역명으로 된 폴더가 있고 그 아래 도시명으로 된 파일들이 있는데

이녀석으로 변경해 주면 된다.


만약의 경우를 대비해 기존 파일을 이름변경으로 백업해 두고

# mv /etc/localtime /etc/localtime.bak


관리상 편하게 심볼릭 링크를 걸어주자

# ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime


date명령을 처보면 한국 시각으로 확인될 것이다.

Posted by Mr.Jo :

업데이트시 다음과 같은 오류를 발생시키면서 업데이트가 안되길래 

Setting up udev (215-5+b1) ...

dpkg: error processing package udev (--configure):

 subprocess installed post-installation script returned error exit status 1

Errors were encountered while processing:

 udev

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



/var/lib/dpkg/info/udev.postinst 파일을 찾아보니 밑줄친 부분에서 에러가 발생해서 확인했더니 그룹이 이미 추가되어 있어서 주석처리 했더니 정상 동작

case "$1" in

    configure)

    # update/create hwdb before we (re)start udev

    update_hwdb

    

    # Add new system group used by udev rules

    #addgroup --quiet --system input


    if [ -z "$2" ]; then # first install

      if ! chrooted && ! in_debootstrap; then

        write_interfaces_rules

        enable_udev



버그가 있는경우가 종종 있지만 이렇게 사용자 수정에 의해 복구되는점이 매력인듯

Posted by Mr.Jo :

apt-get으로 upgrade시 설치 스크립트중 오류가 발생하는 경우가 있다

apt-get -f install 을 실행해서 없어진다면 다행이지만

너무나도 꼬여버려서 이마져도 안되는 경우가 발생하는데 이럴때 apt-get dist-upgrade를 사용하라고 하지만


진짜 심한 경우에는 부팅조차 안되는 상황이 되어버린다



이럴때 수동으로 패키지를 설치하는 방법이 있는데 오류가 난 (Errors were encountered while processing:) [패키지명]에 관련된 패키기를 수동으로 설치하는데


1.

apt-get download [패키지명] 으로 패키지를 다운로드 한 후

dpkg -i [다운로드된 파일명] 으로 설치를 시도한다.


2.

아마 연관된 패키지가 없다고 설치 못한다고 할 땐 1번으로 돌아가 연관된 패키지를 설치해준다.


위 방법을 반복하다 보면 언젠가 설치가 되긴하는데 -_-; 만약 다운로드조차 받을 수 없다면 source.list를 다른 저장소로 수정하거나 https://packages.debian.org 에서 뒤져서 wget으로 다운로드 하는 방법도 있으니 참고!

Posted by Mr.Jo :

워드 프레스를 가지고 이것 저것 해보고 있는데 WP SUPER CACHE를 적용하려 하니 Permalink를 설정해야 한다고 메시지가 나오길래 적용했더니 모든 링크에 404에러가 발생했다.


상황을 보아하니 가상의 경로를 접근하려 하니 에러가 발생하는것 같고

이 가상의 경로를 매핑 시켜줘야 하는 무언가가 필요한 것 같아 구글링 해보니 mod_rewrite.so가 적용 되야 한다는 정보를 얻었다.


php 정보를 보는 <?php phpinfo(); ?>로 페이지를 생성해 보아도 모듈을 로딩 되어 있지 않고

php.ini에 extension=mod_rewrite.so해도 모듈은 로딩 되지 안았다.


해결 방법은 apache2의 셋팅에 추가해야 하는데 구글링 결과 옛 버젼이여서 httpd.conf에 LoadModule rewrite_module modules/mod_rewrite.so 를 추가 해야 한다는 말 뿐...


httpd.conf는 내 서버에 없었고 apache.conf로 변경되었다는 말을 들어 추가해 보아도 서버가 안올라올뿐...



결론을 말하면 /etc/apache2/mods-enabled 에 /etc/apache2/mods-available/rewrite.load 에 해당하는 심볼릭 링크를 생성해 주면 끝!

# cd /etc/apache2/mods-enabled

# ln -s /etc/apache2/mods-available/rewrite.load




여기에 apache.conf에 자신이 올린 웹페이지 경로를 찾아 AllowOverride None 이라 되어 있다면 AllowOverride All 로 변경하면 아마 정상 작동 할 것이다.



Posted by Mr.Jo :

리눅스 머신에서 파일시스템을 생성하려 할 경우 다음과 같이 "Permission denied" 에러나 날 경우가 있다

# mkfs -t ext4 /dev/sda1

mkfs.ext4: Permission denied


다른 패키지의 리눅스에서는 잘 쓰던 명령어였는데 원인을 찾을 수 없어서 고민하던 중 /sbin아래서 mke2fs라는 명령어가 존재함을 찾아내서 실행해 보니

# mke2fs -t ext4 /dev/sda1

mke2fs 1.42.11 (09-Jul-2014)

Creating filesystem with 488378368 4k blocks and 122101760 inodes

Filesystem UUID: db8b2a2a-b725-40f8-b956-13fc7ae3f5f1

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

        102400000, 214990848


Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information:

done


아직 정확한 원인을 모르겠으나 지금 짐작하기로는 패키지별로 다른 무언가가 있지 않을까 생각된다.



Posted by Mr.Jo :

우선 시스템 상태, 측 CPU 사용률, IO등을 웹으로 자동화 하여 모니터링 하기 위해서는

iostat, vmstat, /proc/stat 등 유틸을 이용하면 되지만

이를 웹페이지 등으로 만들어 외부에서 모니터링 하기 위해서는 텍스트에서 특정 수치만을 갖고 와야 하는 경우가 생긴다.


cpu사용률을 구하기 위한 예를 작성해 보면


iostat의 -c옵션으로 가져 올 수 있는데

# iostat -c

Linux 3.13.0-24-generic (test)         09/01/2014      _x86_64_        (1 CPU)


avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.59   90.03    9.19    0.00    0.00    0.19


위 값에서 숫자만을 분리해 내야 한다

tail 명령어를 사용하면 특정 줄을 가져 올 수 있으니 사용하면

# iostat -c | tail -2

           0.59   90.03    9.19    0.00    0.00    0.19


여기서 1번째 0.59만을 가져오기 위해 awk를 사용하자

# iostat -c | tail -2 | awk '{print $1}'

0.59


이런 식으로 쉘에 변수 할당 혹은 프로그램에서 외부 실행 후 변수에 값 할당으로 원하는 결과를 얻을 수 있을 것이다.


Posted by Mr.Jo :

보통 멀티코어 시스템을 갖고 있을텐데

그냥 make 명령으로 컴파일 할 경우 작업을 한번에 한개만 사용하게 된다

make -j4

처럼 j뒤 숫자를 코어수에 맞게 적당히 할당하면 컴파일 속도를 올릴 수 있다


Usage: make [options] [target] ...

Options:

  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no arg.

....

Posted by Mr.Jo :