2014년 7월 28일 월요일

PHP 5.3.28 설치시 --with-freetype-dir= 에러발생 해결

./configure --with-freetype-dir=/usr

했을시,

freetype.h 파일을 찾을수 없다고 나온다.

http://sourceforge.net/projects/freetype/files/freetype2/

여기서 파일을 다운받은후

$ tar zxvf freetype-x.x.x.tar.gz

$ cd freetype-x.x.x

$ ./configure --without-png

$ make

$ make install

인스톨 하고 나면 /usr/include/freetype2 , /usr/local/include/freetype2 두 폴더가 생기는데

이대로 하면 똑같은 에러가 발생 그래서 찾아본 결과

$ sudo ln -s /usr/include/freetype2 /usr/include/freetype2/freetype

$ sudo ln -s /usr/local/include/freetype2 /usr/local/include/freetype2/freetype

이렇게 해줘야 에러가 발생하지 않고 설정이 된다.

아무래도 경로상 문제인거 같은데 삽질끝에 해결!

2014년 7월 23일 수요일

Ubuntu 에서 mysql 세팅

$ sudo apt-get install mysql-server mysql-client

$ sudo mysql -p password


1) 외부접속 허용하기



1. mysql 접속 후 mysql database 선택 
mysql> use mysql;

2. user 테이블 살펴보기 
mysql> select host, user, password from user;

root 의 host 값들은 localhost, 127.0.0.1 등으로 기본 등록되어 있지만, 외부접속을 나타내는 값이 없다. 특정 아이피로 지정할 수도 있지만 여기선 % 기호로 어디서든 접속 가능하게 만든다. 

3. 권한 설정 
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';
Query OK, 0 rows affected (0.03 sec)

4. 등록확인하기
mysql> select host, user, password from user;

root 계정의 host 필드에 % 가 등록되었는지 확인한다. 

5. refrash
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

위 단계는 my.cnf 파일 수정후 서버를 재시작할 것이기 때문에 굳이 안해도 된다. 

6. my.cnf 에서 외부접속 관련사항 변경하기 
user@home:~$ sudo vim /etc/mysql/my.cnf 

파일 내용중 
bind-address = 127.0.0.1 
부분 주석처리후 저장하기 

7. mysql 재시작 
user@home:~$ sudo /etc/init.d/mysql restart 

8. 완료. 
이제 외부 클라이언트 프로그램에서 접속이 가능하다 ^^ 



2) 캐릭터셋 변경

To set the default to UTF-8, you want to add the following to my.cnf
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8


2014년 7월 22일 화요일

Ubuntu 에서 Nginx + PHP5-fpm 설치하기

이번에 AWS ( Amazon Web Services ) 에서 

Ubuntu Server 14.04 LTS (HVM), SSD Volume Type 인스턴스를 생성하여 사용해보았습니다.

대단히 만족스러우며 그래서 php 기반 웹 사이트를 구성하기 위해서 세팅한것을 기록해봅니다.


1. 설치하기전 우선적으로 패키지 정보를 업데이트 해줍니다. 

$ sudo apt-get update



2. Nginx + PHP5-fpm


$ sudo apt-get install nginx php5-fpm php5-mysql php5-curl php5-json



3. NGINX 세팅


설정파일은 /etc/nginx/sites-available/ 에 있으며

첫번째로 새로운 설정파일을 만들어보겠습니다.

우선 그전에 웹서버에 동작시킬 폴더를 만들어둡니다.

$ mkdir ~/www

$ mkdir ~/www/domain.com

설정파일이 있는 폴더로 이동합니다.

$ cd /etc/nginx/sites-available

$ sudo cp default domain.com

$ sudo nano domain.com

domain.com 파일에서 삭제 또는 수정해야되는것

listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
root /home/ubuntu/www/domain.com

index index.html index.htm;
index index.html index.htm index.php;

server_name localhost;
server_name domain.com

#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;
#}

위에 부분에서 주석을 모두 제거해줍니다.

fastcgi_pass 부분이 중요한데 tcp 또는 unix 소켓 둘중에 하나를 사용해야되는데

이 부분은 /etc/php5/fpm/pool.d/www.conf 파일 안에 listen 부분과 일치해야합니다.

$ sudo nano /etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm.sock 이렇게 되어있는걸로 확인할수가 있었음.

그래서 완성된 형태는

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;
}

4. PHP 세팅


$ sudo nano /etc/php5/fpm/php.ini

short_open_tag = Off On // ON 으로 변경