The Pursuit of Happyness

반응형

mysql 데이터 저장 경로 변경하기

/data/mysql 로 변경한다고 가정


  • mysql 설정 파일을 변경한다.

vi /etc/mysql/my.cfg

datadir 부분을 찾아셔 다음과 같이 변경한다.

datadir     = /data/mysql


  • Apparmor access 변경

설정 파일을 변경한 후에 mysql 서비스를 실행하는 경우 로그에 다음과 같은 에러가 나올 경우

/etc/apparmor.d/usr.sbin.mysql 파일을 편집하여 해당 datadir 경로의 권한 추가해 준다.

110727 12:48:32 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110727 12:48:32 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110727 12:48:32  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

/data/mysql/ r,
/data/mysql/** rwk,

  • ldata 경로 변경
경로 변경 및 access 설정 변경후 아래와 같은 에러가 발생할 경우 다음과 같이 조치한다.
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
> mysql_install_db –-user=mysql ldata=/data/mysql
+ 잘 안되는 경우 그냥 mysql_install_db 만 실행 


반응형

반응형

Install Ubuntu Server


Select a language

English - English


Select your location

United States


Configure the keyboard

No


Configure the keyboard

English (US)


Configure the keyboard

English (US)


Configure the network

[hostname]


Set up users and passwords

Full name for the new user:

[display name]


Set up users and passwords

Username for your account:

[account name]


Set up users and passwords

Choose a password for the new user:

****

Set up users and passwords

Re-enter password to verify:

****

Set up users and passwords

Encrypt your home directory?

No


Configure the clock

Yes


Partition disks

Partitioning method:

Guided - use entire disk and set up LVM


Partition disks

Select disk to partition:

[select partition]


Partition disks

Write the changes

Yes


Partition disks

Amount of volume group to use for guided partitioning:

max


Partition disks

Write the changes to disks

Yes


Configure the package manager

Continue


Configuring tasksel

No automatic updates


Software selection

Continue


Install the GRUB boot loader on a hard disk

Yes


Finish the installation

Continue



반응형

반응형


Android


 Currency currency = Currency.getInstance(Locale.getDefault());

 String currencyCode = currency.getCurrencyCode();



iOS


 
 NSString *localeIdentifier = [[NSLocale availableLocaleIdentifiers] objectAtIndex:72];

 NSLocale *selectedLocale = [[NSLocale alloc] initWithLocaleIdentifier:localeIdentifier];

 NSString *currencyCode = [selectedLocale objectForKey:NSLocaleCurrencyCode];




반응형

반응형

1. install apache, mysql, php

sudo apt-get install tasksel

sudo tasksel install lamp-server


2. install oracle

apt-get install alien

alien -i oracle-xe-11.2.0-1.0.x86_64.rpm


3. edit TNS

vi /u01/app/oracle/product/11.2.0/xe/network/admin/tnsnames.ora


4. install php-pear

apt-get install php-pear php5-dev build-essential unzip libaio1


5. install oci

alien -i oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm 

alien -i oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm 

pecl install oci8


6. edit environment variable

echo ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe/ >> /etc/environment


7. edit php configuration

echo extension=oci8.so >> /etc/php5/apache2/php.ini

echo extension=oci8.so >> /etc/php5/cli/php.ini


8. edit apache2 envvars

vi /etc/apache2/envvars

# add this line 

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe


9. restart apache

sudo /etc/init.d/apache2 restart

or

sudo service apache2 restart


참고자료

https://help.ubuntu.com/community/ApacheMySQLPHP

https://help.ubuntu.com/community/PHPOracle

http://kogentadono.com/2011/11/02/installing-oci8-on-ubuntu/



반응형

반응형

현재 사용중인 SWAP 메모리 확인

more /proc/swaps


SWAP 메모리로 사용할 파일 생성 (파일당 1GB)

cd /var/tmp

dd if=/dev/zero of=swapfile1 bs=1024 count=1048576

dd if=/dev/zero of=swapfile2 bs=1024 count=1048576


SWAP 영역으로 설정

/sbin/mkswap -c -v1 /var/tmp/swapfile1

/sbin/mkswap -c -v1 /var/tmp/swapfile2


SWAP 파일 사용시작

/sbin/swapon /var/tmp/swapfile1

/sbin/swapon /var/tmp/swapfile2


바뀐 SWAP 메모리 확인

more /proc/swaps


시작시 SWAP 메모리가 적용이 되도록 설정
vi /etc/rc.d/rc.sysinit

아래 라인을 검색
swapon -a

다음 내용을 같은 줄에 추가
swapon /var/tmpswapfile1 swapon /var/tmp/swapfile2

결과는 다음과 같음
swapon -a swapon /var/tmpswapfile1 swapon /var/tmp/swapfile2


반응형

반응형

CENTOS 6.4 / PHP 5.3.3

VBbulletin 사용 도중 서버 이전 후 메일이 발송되지 않는 문제가 발생해서 원인을 찾아보니,

로그에 아래와 같은 경고 메시지가 뜨면서 발송이 되지 않고 있었음.


Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.google.com (Permission denied) in /xxxx.php on line xx


원인

대부분의 경우 리눅스 보안설정 SELinux 에서 httpd 에서 네트워크 커넥션을 허용하지 않는 경우이다.


해결책

커맨드 프롬프트에서 다음과 같이 입력 

setsebool httpd_can_network_connect=1

(혹시 setsebool이 path가 결려있지 않은 경우 /usr/sbin/setsebool 을 이용)





반응형

반응형

얼마전 Mavericks 가 무료로 배포되어 업그레이드를 했는데, 

즐겨쓰던 VritualBox (4.2.x) 에서 문제가 생겼습니다.

어플을 실행하여 인스턴스를 실행하려하면, 


Kernel driver not installed (rc=-1908) 


이라는 에러를 던져주고 실행이 되지 않았습니다.

virtualbox.org 에 가보니 4.3.0 버전이 출시되어 있길래 이걸 써야 된다고 생각하여 프로그램을 업데이트!

예상되로 잘 되는가 보다 싶었는데..

리붓을 하고 나면 다시 똑같은 에러를 던져주고 실행이 되지 않았습니다.


구글님의 힘을 빌어 여기저기 수소문해보았으나..

대부분 다시 인스톨 하면 해결된다 혹은 특정 스크립트를 실행해랴 라는 식의 답변이었는데,

아쉽게도 저의 경우는 그렇게 해서 해결이 되진 않았습니다.


아마도 기존에 설치되었던 파일 중에 무언가가 충돌을 일으키고 있다는 판단하에 이런 저런 방법을 살펴보다가,

/Liberary/Extensions 폴더에서 VBoxDrv.kext / VBoxNetAdp.kext / VBoxNetFlt.kext / VBoxUSB.kext 커널을 발견

날짜가 한달 전인것을 확인하고 다른 곳에 백업후 삭제하였습니다.

그리고 나서 4.3.0 을 재설치 (덮어쓰기) 하고 나니, 잘 돌아가는 것을 확인!

리부팅 후에도 잘 돌아가는 것을 확인하였습니다!


참고로 Retina, 15 inch, Early 2013 MBP 사용중이고, Mountain Lion 에서 Mavericks 로 업데이트 했었습니다.


반응형

반응형

1. 하드 디스크 연결 확인

> lsblk

새로 장착된 하드 디스크의 이름을 확인한다. 

ex) sdb


2. 하드 디스크 파티션 생성

> fdisk /dev/[하드 디스크 이름]

ex) fdisk /dev/sdb


fdisk 상에서의 커맨드

p : 파티션 정보 보기

n : 새 파티션 생성

e : extended

p : primary partition

파티션 아이디 입력 [1-4]

first cylinder : [시작 Cylinder]

last cylinder : [파티션에 사용할 사이즈 or 마지막 Cylinder] ex) 20G

w : 저장 후 종료

q : 저장하지 않고 종료


3. 하드 디스크 포맷

> mkfs -t [파일 시스템] /dev/[하드 디스크 이름 + 파티션 아이디]

ex) mkfs -t ext4 /dev/sdb (단일 파티션인 경우)

mkfs -t ext4 /dev/sdb1


4. 하드 디스크 마운트

마운트 할 폴더를 미리 지정한다.

ex) /home

> mount /dev/[하드 디스크 이름] [마운트 할 폴더]

ex) mount /dev/sdb /home

cf. unmount 는 umount 명령어를 사용한다.

ex) umount /home


5. 부팅시 자동 마운트

/etc/fstab 파일을 수정해서 필요한 내용을 추가한다.

<file system> : 마운트 하려는 파티션 이름 - 하드 디스크 변경이 잦은 경우 UUID=xxx 식으로 적어 주는 편이 안전함. UUID는 lsblk -f 명령어로 확인이 가능하다. 

UUID는 하드 디스크 이름을 아는 경우 

blkid /dev/[하드 디스크 이름]

ex) blkid /dev/sdb

하드 디스크 이름을 모르는 경우

ls -l /dev/disk/by-uuid/

명령어로 확인이 가능하다.


<dir> : 마운트 하려는 위치

<type> : 타입 혹은 파일 시스템

<options> : 파티션 옵션, 잘 모르면 defaults 를 적어준다. (자세한 옵션은 http://linux.die.net/man/8/mount 에서 Mount Option 부분을 참조)

<dump> : dump utility 로 백업할지를 결정 (0 : 끄기)

<pass> : fsck에 의해 파일 시스템을 체크할 순서 (0 : skip), root 파티션에 1을 적는다.

ex)

/dev/sdb        /home        ext4        defaults        0        0




반응형

반응형

맥에서 부트캠프를 설치하려고 하는데, USB 메모리를 이용해서 Windows 를 설치하기 위한 방법.

최근의 맥은 ODD가 없어서 USB 메모리를 이용한 Windows 설치가 지원되지만, 

ODD가 있는 구형 맥은 ODD를 이용해서 설치해야 하기 때문에 Windows CD 혹은 DVD 가 있어야 설치가 가능하지만,

아래의 방법을 이용하면 구형 맥에서도 USB 메모리를 이용해서 Windows 를 설치할 수 있다.


Terminal 에서 아래 파일을 편집한다.

/Applications/Utilities/Boot Camp Assistant.app/Contents/Info.plist

Terminal 이 익숙치 않은 경우, Applications > Utilities 에 가서,

Boot Camp Assistant 아이콘을 오른쪽 클릭하여, 

"Show Package Contents" 를 선택하면 Contents 폴더를 열면 Info.plist 파일이 있음.

TextEdit 등의 프로그램을 이용해서 편집하면 됨.


1. Boot Camp 4.x (Lion)

파일을 열어서 아래 내용을 검색한 후,

<key>USBBootSupportedModels</key>

하단에 나오는 array 내용 중에 사용중인 맥 타입을 찾아서 변경해 주면 됨..

<array>

<string>IM130</string>

<string>MM50</string>

<string>MP60</string>

<string>MB80</string>

<string>MBP90</string>

<string>MBA40</string>

</array>


IM : iMac

MM : Mac Mini

MP : Mac Pro

MB : Macbook

MBP : Macbook Pro

MBA : Macbook Air


맥 타입은 Applications > Utilities > System Information 에 있는 Boot ROM Version 에서 "." 으로 구분했을 때, 제일 앞에 오는 키워드를 사용하면 됨

(혹은 화면 왼쪽 상단의 사과마크 > About This Mac > More Info > System Report)

ex) Boot ROM Version 이 "MB41.00C1.B00" 으로 나오는 맥은 "MB41" 을 사용하면 됨.

<string>MB80</string> => <string>MB41</string> 로 수정


2. Boot Camp 5.x (Mountain Lion)

파일을 열어서 아래 내용을 검색한 후,

<key>PreUSBBootSupportedModels</key>


하단에 나오는 array 내용 중에 사용중인 맥 타입을 찾아서 Identifier 를 변경해 주면 됨..

<array>

<string>MacBook7,1</string>

<string>MacBookAir3,2</string>

<string>MacBookPro8,3</string>

<string>MacPro5,1</string>

<string>Macmini4,1</string>

<string>iMac12,2</string>

</array>


맥 Identifier는 Applications > Utilities > System Information 에 있는 Model Identifier 값이다.

(혹은 화면 왼쪽 상단의 사과마크 > About This Mac > More Info > System Report)

ex) Model Identifier "MacBookPro7,3" 의 맥북프로를 가진 사람은 아래 내용을

<string>MacBookPro8,3</string>    =>     <string>MacBookPro7,3</string> 

이런식으로 본인의 맥에 맞춰서 버전을 수정하면 됨.


반응형

반응형

PHP mail 보내기 - 파일첨부하기 / 이미지 보여주기

기본적인 메일 보내는 방법은 아래 링크 참고하세요.

http://shineum.tistory.com/56


1. 파일 첨부하기

$mail->AddAttachment("첨부파일 경로 혹은 파일 리소스", "첨부파일 이름");    //  해당 경로의 파일을 지정한 파일 이름으로 첨부


2. 메일에 이미지를 보여주기

- 보여줄 이미지를 유니크한 키를 사용해서 embeded image 로 추가를 해준다.

- embeded 할때 지정한 유니크 키를 src 태그를 사용해서 이미지 링크로 걸어준다.

$mail->AddEmbeddedImage("첨부파일 경로 혹은 파일 리소스", "유니크 키1");

$mail->AddEmbeddedImage("첨부파일 경로 혹은 파일 리소스", "유니크 키2");

$mail->MsgHTML("

<p><img src='cid:유니크 키1'></p>

<p><img src='cid:유니크 키2'></p>

");







반응형