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 :

한참 잘 쓰고 있데 upgrade시 에러가 발생해서 진행이 안되서 찾아보니 구글에서 다음과 같은 방법이 있길래 한글로 된문서가 없어 공유한다.

Setting up plymouth (0.9.0-7) ...

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

 subprocess installed post-installation script returned error exit status 1

Errors were encountered while processing:

 plymouth

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


설치전 스크립트에서 발생한 에러여서 다음 부분을 다음과 같이 수정하면 정상처리 됨

# Automatically added by dh_installinit

if [ -x "/etc/init.d/plymouth" ]; then

        update-rc.d plymouth start 41 2 3 4 5 . stop 41 0 6 . >/dev/null || exit $?

fi

# End automatically added section

# Automatically added by dh_installinit

if [ -x "/etc/init.d/plymouth-log" ]; then

        update-rc.d plymouth-log start 40 S . >/dev/null || exit $?

fi


원래 어떻게 사용하는건지 모르겠어서 고칠 엄두가 안났는데 방법이 있어서 다행이다.

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 :

테스트 하려 mariadb를 설치하려다 기회가 온김에 정리해 본다.



우선 Mariadb 홈페이지에 가서 자신의 서버에 맞는 Binary 버젼을 받는다.

ps. 순서는 Mysql도 같음으로 Mysql을 설치하고 싶다면 받는것만 Mysql을 받으면 OK

//주소는 버전과 환경에 따라 달라지니 그대로 하면 안됨

# wget -O mariadb-10.0.14-linux-x86_64.tar.gz https://downloads.mariadb.org/f/mariadb-10.0.14/bintar-linux-x86_64/mariadb-10.0.14-linux-x86_64.tar.gz/from/http%3A/ftp.kaist.ac.kr/mariadb?serve



다운로드 받아 졌으면 적당한 곳에 압축을 풀고 보통 많이들 하는 경로(/usr/local/mysql)로 심볼릭 링크를 걸어주자.

(추후 버젼 업그래이드시 심볼릭 링크만 바꿔주면 되는 이점이 있다.)

# tar -xzf mariadb-10.0.14-linux-x86_64.tar.gz

# ln -s /home/Mariadb/mariadb-10.0.14-linux-x86_64 /usr/local/mysql




Mariadb를 서비스 할 계정을 생성하고 권한을 준다.

# groupadd mariadb

# useradd -d /home/Mariadb -g mariadb -p mariadb -s /bin/bash mariadb

# chown -R mariadb.mariadb mariadb-10.0.14-linux-x86_64



my.cnf를 생성하기 위해 suport-file에서 적당한 파일을 복사하고 경로 및 서비스계정 등 자신의 상황에 맞게 옵션을 수정하자.

# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

# vi /etc/my.cnf



기본 디비 생성

ps. /usr/local/mysql에서 실행하지 않으면 에러가 발생하며 basedir, datadir 등의 옵션도 있으니 참고

# cd /usr/local/mysql

# ./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mariadb



자동 시작 할 수 있도록 서비스를 등록하고

//서비스에 등록될 파일 복사

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


//데비안

# update-rc.d mysqld defaults


//레드햇

# chkconfig –add /etc/init.d/mysqld



서비스 시작

# service mysqld start




/etc/profile 혹은 개인의 profile에

PATH=$PATH:/usr/local/mysql/bin

문구를 추가해 주면 mysql 문장으로 접속이 가능하다



이제 암호 설정 등 이것 저것 설정하고 사용하면 된다.






ps. 라이브러리가 없다는 메시지를 만났을 경우 데비안 기준

//libstdc++.so.6

# apt-get install lib32stdc++6

//libaio.so.1

# apt-get install libaio1


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 :