Do Not Think!!!

Posted
Filed under 01010101

1. Install FreeTDS and the PHP MS SQL extension

2. Configure FreeTDS

3. Test FreeTDS using server name

4. Confiure Codeigniter






1. Install FreeTDS and the PHP MS SQL extension

[CODE]$ sudo apt-get install freetds-common freetds-bin php5-sybase[/CODE]
php5-sybase: This package provides a module for Sybase and Microsoft SQL Server
database connections directly from PHP scripts.


2. Configure FreeTDS

[CODE]$ vi /etc/freetds/freetds.conf

[yourserver]
host = your.server.name
port = 1433
tds version = 8.0[/CODE]


3. Test FreeTDS using server name

[CODE]$ tsql -S yourserver -U username -D databasename[/CODE]


4. Confiure Codeigniter

[CODE]$db['default']['hostname'] = 'yourserver';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'mssql';[/CODE]




Posted
Filed under 01010101

1. nginx 설정

2. php-fpm 설정

3. nginx, php-fpm 상태 확인하기






1. nginx 설정

[CODE]server {
    root /usr/share/nginx/www;
    index index.html index.htm;

    # Make site accessible from http://localhost/
    server_name localhost;

    auth_basic "Restricted Access";
    auth_basic_user_file /usr/share/nginx/www/.htpasswd;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
   
        # With php5-cgi alone:
        fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location = /status {
        fastcgi_param SCRIPT_FILENAME /status;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
    }

    location /nginx_status {
        stub_status on;
        allow all;
        deny all;
    }
}[/CODE]



2. php-fpm 설정

[CODE]$ vi /etc/php5/fpm/pool.d/www.conf

pm.status_path = /status ; <- 주석 제거[/CODE]



3. nginx, php-fpm 상태 확인하기

브라우저에서 각각
http://domain.com/nginx_status
http://domain.com/status
으로 확인합니다.
Posted
Filed under 01010101

1. Create EBS Volume

2. Attach the EBS volume

3. Create a file system and mount

4. Configuring MySQL to use the EBS volume

참고: http://aws.amazon.com/articles/1663





1. Create EBS Volume

EBS 볼륨을 생성합니다.
사용자 삽입 이미지



2. Attach the EBS volume

사용자 삽입 이미지
사용자 삽입 이미지



3. Create a file system and mount

[CODE]$ sudo apt-get install -y xfsprogs
$ grep -q xfs /proc/filesystems || sudo modprobe xfs
$ sudo mkfs.xfs /dev/xvdf

$ echo "/dev/xvdf /vol xfs noatime 0 0" | sudo tee -a /etc/fstab
$ sudo mkdir -m 000 /vol
$ sudo mount /vol[/CODE]



4. Configuring MySQL to use the EBS volume

MySQL 중지
[CODE]$ sudo /etc/init.d/mysql stop[/CODE]

MySQL 데이터 디렉토리 옮기기
[CODE]$ sudo mkdir /vol/etc /vol/lib /vol/log
$ sudo mv /etc/mysql /vol/etc/
$ sudo mv /var/lib/mysql /vol/lib/
$ sudo mv /var/log/mysql /vol/log/

$ sudo mkdir /etc/mysql
$ sudo mkdir /var/lib/mysql
$ sudo mkdir /var/log/mysql

$ echo "/vol/etc/mysql /etc/mysql none bind" | sudo tee -a /etc/fstab
$ sudo mount /etc/mysql
$ echo "/vol/lib/mysql /var/lib/mysql none bind" | sudo tee -a /etc/fstab
$ sudo mount /var/lib/mysql
$ echo "/vol/log/mysql /var/log/mysql none bind" | sudo tee -a /etc/fstab
$ sudo mount /var/log/mysql[/CODE]

MySQL 시작
[CODE]$ sudo /etc/init.d/mysql start[/CODE]

테스트
[CODE]$ mysql -u root -p[/CODE]

Posted
Filed under 01010101
Install Microsoft SQL Server database connection module
[CODE]$ sudo apt-get install php5-sybase
$ sudo /etc/init.d/apache2 restart[/CODE]


Edit freetds.conf
[CODE]$ sudo vi /etc/freetds/freetds.conf
# A typical Microsoft server
[egServer70]
    host = sqlserver_hostname
    port = 1433
    tds version = 7.0 [/CODE]


Edit CodeIgniter config/database.php
[CODE]$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'egServer70';
$db['default']['username'] = 'USERNAAME';
$db['default']['password'] = 'PASSWORD';
$db['default']['database'] = 'DATABASE';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;[/CODE]


CodeIgniter Code
[CODE]$this->load->database();

$query = $this->db->select('*')
    ->from('table')
    ->limit(1)
    ->get();
$row = $query->row_object();
print_r($row);[/CODE]
Posted
Filed under 01010101

1. EC2 instance 생성
2. Key Pair
3. Security Groups 설정
4. SSH 접속
5. 웹서버 설치 (선택)
6. DB서버 설치 (선택)






1. EC2 instance 생성

사용자 삽입 이미지


2. Key Pair 생성 / 기존 Key Pair 선택

Key Pair 를 새로 만들거나 기존 Key Pair 를 선택합니다.
Key Pair 는 ssh 접속을 위해 사용되는데, 나중에 다시 다운로드 받을 수 없기 때문에 잘 보관해야 합니다.
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


3. Security Groups 설정

사용자 삽입 이미지


4. SSH 접속

[CODE]$ mkdir .aws
$ cp keypair.pem .aws/keypair.pem
$ chmod 400 .aws/keypair.pem
$ ssh -i .aws/keypair.pem ubuntu@XXX.compute-1.amazonaws.com[/CODE]
Ubuntu AMI 를 선택하면 기본 login user 가 ubuntu 입니다.



5. 웹서버 설치 (선택)

nginx + php-fpm

[CODE]$ sudo apt-get install -y python-software-properties
$ sudo add-apt-repository -y ppa:nginx/stable
$ sudo apt-get update
$ sudo apt-get install -y nginx
$ sudo apt-get install -y php5 php5-cli php5-cgi php5-common php5-mysql php5-dev php5-mcrypt php5-fpm php5-curl php-pear php5-imagick
$ sudo /etc/init.d/php5-fpm start
$ sudo /etc/init.d/nginx start[/CODE]



6. DB서버 설치 (선택)

MySQL

[CODE]$ sudo apt-get install -y mysql-server
$ sudo /etc/init.d/mysql start[/CODE]


Posted
Filed under 01010101

1. apache 에서는 잘 동작하던 xdebug 가 nginx + php-fpm 설치 후 xdebug 가 동작을 안합니다.


원인

xdebug 의 포트(9000)와 php-fpm 의 포트(9000)가 충돌 하기 때문에

해결

xdebug 의 port 를 변경합니다.

xdebug 설정파일 수정
[CODE]$ vi /etc/php5/conf.d/xdebug.ini
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_autostart=0[/CODE]

이클립스 설정 수정
이클립스 - Window - Preferences - PHP - Debug - Installed Debuggers - XDebug - Configure
Debug port 를 9001 로 변경합니다.
사용자 삽입 이미지



2. xdebug 에서 local variables 이 보이지 않습니다.


원인

xdebug 버그입니다.

해결

xdebug 를 업데이트 합니다.

[CODE]$ wget http://xdebug.org/files/xdebug-2.1.4.tgz
$ tar -xvzf xdebug-2.1.4.tgz
$ cd xdebug-2.1.4
$ phpize
$ ./configure
$ make
$ cp modules/xdebug.so /usr/lib/php5/20090626+lfs
$ /etc/init.d/apache2 restart[/CODE]
Posted
Filed under 01010101

우분투 10.04 에 nginx + phpmyadmin 설정하기


개발환경으로 apache + php + mysql + phpmyadmin 을 설치해서 사용하는데,
apache 대신 nginx 로 바꾸면서 삽질한 내용입니다.


참고

http://wiki.nginx.org/Install
http://www.justincarmony.com/blog/2011/10/24/setting-up-nginx-php-fpm-on-ubuntu-10-04/
http://www.base-10.net/blog/2009/11/06/nginx-and-non-document-root-phpmyadmin/


0. 다른건 이미 설치가 되어 있는 상황에서, nginx 만 설치합니다.

[CODE]$ sudo apt-get install nginx[/CODE]
[CODE]$ sudo apt-get install python-software-properties
# sudo add-apt-repository ppa:brianmercer/php
$ sudo apt-get update
$ sudo apt-get install php5-fpm[/CODE]

1. http://localhost/phpmyadmin 으로 접속하기 위해 /etc/nginx/sites-enabled/default 파일을 수정합니다.

나머지는 기본으로 설정되어 있는 내용이고, 노란색 부분만 추가했습니다.
[CODE]server {
    listen   80 default;
    server_name  localhost;

    access_log  /var/log/nginx/localhost.access.log;

    location / {
        root   /var/www/nginx-default;
        index  index.html index.htm;
    }

    location /doc {
        root   /usr/share;
        autoindex on;
        allow 127.0.0.1;
        deny all;
    }

    location /images {
        root   /usr/share;
        autoindex on;
    }

    location /phpmyadmin {
        root  /var/www/nginx-default;
        index index.php;
    }
    location ~ ^/phpmyadmin.+\.php$ {
        root /var/www/nginx-default;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }
}[/CODE]

2. www 디렉토리에 phpmyadmin 심볼릭링크를 만듭니다.

[CODE]$ cd /var/www/nginx-default
$ sudo ln -s /usr/share/phpmyadmin phpmyadmin[/CODE]
Posted
Filed under 01010101

0. 준비
1. Sign Up
2. AWS Management Console
3. Simple Email Service 선택
4. 이메일 인증
5. SMTP 설정 (선택)
6. 인증서 생성 (선택)
7. SMTP 확인 (선택)
8. SES API를 이용해서 PHP 에서 이메일 보내기






0. 준비

적용 환경: PHP + CodeIgniter
참고: http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/Welcome.html



1. Sign Up Now

Amazon Simple Email Service 서비스에 로그인을 합니다.
참고: http://dont.pe.kr/tt/382
사용자 삽입 이미지



2. AWS Management Console

AWS 관리 콘솔에 접속합니다.
사용자 삽입 이미지



3. Simple Email Service 선택

SES 탭을 선택합니다.
사용자 삽입 이미지



4. 이메일 인증

SES 를 테스트하기 위해서는 인증된 이메일로만 메일을 전송할 수 있습니다.
(테스트 완료 후 별도로 production 모드로 전환해야 합니다.)
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지



5. SMTP 설정 (선택)

SMTP 로 메일을 보내기 위한 설정입니다.
사용자 삽입 이미지



6. 인증서 생성 (선택)

SMTP 인증서를 만듭니다.
사용자 삽입 이미지

사용자 삽입 이미지



7. SMTP 확인 (선택)

이메일이 보내지는 지 확인합니다.
[CODE]openssl s_client -quiet -crlf -connect email-smtp.us-east-1.amazonaws.com:465
또는
openssl s_client -quiet -crlf -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:25[/CODE]

[CODE]openssl s_client -quiet -crlf -connect email-smtp.us-east-1.amazonaws.com:465
...
EHLO localhost
...
AUTH LOGIN
...
<base64 로 인코딩된 Smtp Username>
..
<base64 로 인코딩된 Smtp Password>
...
MAIL FROM:duddns@cultstory.com
...
RCPT TO:duddns@cultstory.com
...
DATA
Subject:Hello from Amazon SES!

This email was sent using the Amazon SES SMTP interface.
.[/CODE]



8. SES API를 이용해서 PHP 에서 이메일 보내기

SES API 를 이용하기 때문에 5. 6. 7. 과정이 필요 없습니다.
https://github.com/joelcox/codeigniter-amazon-ses
CodeIgniter 라이브러리를 추가해서 이메일을 보냅니다.

8.1 access_key/secret_key 생성

Account - Security Credentials - Access Credentials - Access Keys Tab