페이스북 로그인 API 사용시 curl PHP extention 오류처리

코드이그나이터 프레임워크로 웹 개발을 하면서 페이스북으로 로그인 처리를 연동하는데 잘 안되어 로그메시지를 보니 다음과 같은 CURL extension 설치가 필요하다는 것을 알 수 있었다.

PHP Extension CURL Error

사용하는 PHP버전은 5.4대 이고, 이전 버전들과 달리 php.ini에서 curl 부분 주석을 해제하는 방식으로는 문제가 해결되지 않는다.

먼저는 curl 패키지를 설치한다.

그리고 난 후 php5enmod라는 명령어를 통해서 curl 라이브러리를 등록하면 된다.

명령을 실행하고 나면 php5 폴더 밑 mods-available에 curl.ini이 추가된 것을 확인할 수 있다.

php5.4 curl참고: http://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntu

 

만들면서 배우는 CodeIgniter 프레임워크 리뷰

코드이그나이터 표지3년 째 워드프레스를 다루다 보니 정식으로 공부하지 않았지만 PHP 코딩이 편해졌습니다. 물론 PHP가 가지고 있는 단순한 문법 떄문인지 모르겠습니다만, 이러한 배경하에 PHP를 가지고 좀 더 진지하게 웹서비스를 구현해 볼까 하는 마음이 늘 있었고 때 마침 “만들면서 배우는 CodeIgniter 프레임워크” 책을 선택해서 읽게 되었습니다.

최근의 웹서비스 구현은 거의 예외없이 개발 편의 및 생산성 향상 등의 목적으로 프레임워크를 사용하고 있으며 CodeIgniter역시 대표적인 PHP기반 프레임워크입니다. 제목에서 드러내듯이 “만들면서 배우는 CodeIgniter”(이하 CodeIgniter) 책은 프로젝트 기반으로 기능을 하나씩 구현하면서 CodeIgniter 프레임워크 학습을 도와줍니다.

책은 11개의 챕터로 구성되어 있지만 실습 프로젝트 주제에 따라  Todo, 게시판, SNS의 3가지로 나눌 수 있습니다. 3개의 주제는 각각의 챕터 내에서 점진적 개발을 통해서 CodeIgniter의 기능을 맛 볼 수 있도록 도와줍니다.

책의 소스코드를 직접 다운 받을 수 있지만, 저는 일일이 소스코드를 처읍부터 타이핑하면서 읽어나갔습니다. 그러다보니 예상 밖의 코드오류들이 심심찮게 보였습니다. 타이포도 있었지만 제가 만난 대부분의 코드오류는 점진적인 기능 추가에 따라 코드 변경된 부분이 제대로 적용되지 않아 발생한 것들이었습니다. 예를 들면, 라이브러리 사용을 위한 선언 코드가  빠져있다든지, 기능이 개선되면서 함수의 매개변수가 바뀐 부분들이 적용이 안 된채로 남아 있다든지 하는 코드 오류들이 종종 보였습니다. 따라서 유의깊게 보지 않으면 책에 있는 소스대로 실행이 되지 않는 부분을 볼 수 있습니다.

그러나, 위와 같은 문제를 보완할 수 있는 방법들이 다행이 있습니다. 우선은 코드이그나이터 한국 커뮤니티의 존재입니다. 이 책의 저자분께서 코드이그나이터 커뮤니티에서 활동중이시며 궁금한 질문들을 책 전용 게시판에 올리면 빠르게 저자로부터 직접 답변들이 올라오며, 이미 비슷한 문제들에 대해서 검색을 통해서 해결방법들을 확인할 수 있습니다. 또한 다음 그림처럼 책의 방대한 코드에서 중요한 라인에 일일이 넘버링을 하고 설명을 하고 있어 길을 헤매지 않고 차근히 이해하는데 도움을 주고 있습니다.

코드이그나이터 코드예제

이 책에서 제대로 설명해주지 않는 부수적 효과(장점)은 트위터 부트스트랩의 활용입니다. 책 전반에서 트위터 부트스트랩을 사용하기 때문에 부트스트랩에 경험이 없는 분들도 자연스럽게 트위터 부트스트랩에 익숙해 질 수 있습니다. 다만 책에서 사용하는 부트스트랩은 버전이 2.x이므로 최근에 개편되 버전3와는 코드 호환이 되지 않습니다.

결론적으로, 이 책은 PHP에 대한 기본적인 이해와 웹서비스(HTML, javascript, ajax)에 대한 어느정도의 지식을 가지고 있어야 읽는데 지장이 없습니다. PHP를 가지고 한번 웹서비스를 제대로 구현해 보고 싶으신 분들께 실제적인 학습을 위한 도구로서 이 책을 주저없이 추천할 만 합니다.

비글본 블랙: nginx+php+mysql설치

(*이 포스팅은 ICBANQ 10기 무상체험단에 선정되어 작성하는 비글본 블랙 개봉기입니다.)

지난 포스팅에서는 비글본 블랙의 기본 OS인 Angstrom 대신 우분투13.04 이미지 설치하는 방법을 설명했다. 이번 포스팅에서는 nginx서버와 함께 PHP, MySQL을 설치해보기로 한다.

먼저 우분투에 설치되어 있는 apache를 제거해서 미리 nginx와의 충돌을 피해야 한다.

apache 제거 후 nginx와 PHP FPM를 설치한다. 먼저 다음과 같이 nginx 패키지를 설치한다.

그리고 PHP관련 패키지를 설치한다.

nginx와 PHP 설치는 끝이 났지만 한가지 nginx 설정에서 PHP FPM과 연동을 해줘야 한다. 우선 다음 명령으로 설정 파일을 연다.

파일을 열면 아래와 유사한 설정 부분을 찾아 주석을 제거하고 마지막 줄에 “try_files $uri =403″을 넣어준다.

설졍을 변경했으니 관련 프로그램을 재시작한다.

nginx가 잘 운영되는지 직접 서버의 주소로 들어가 확인하여 아래와 같은 화면을 만나면 성공이다.

nginx 서버 설치 성공

nginx의 동작을 확인했으면 이제 PHP와 nginx가 잘 연동되었는지 확인하기 위해서 phpinfo()함수를 넣은 파일을 하나 만들어 nginx의 웹 루트 폴더(/usr/share/nginx/html)에 넣어서 브라우저에서 실행해 본다.

브라우저에서 아래와 같은 창이 뜨면 PHP FPM이 잘 설치되어 nginx와 연동되었다는 뜻이다.

phpinfo

mysql은 다음의 명령으로 설치 한다. 중간에 묻는 패스워드 설정만 하면 쉽게 설치할 수 있다.

다음으로 편의를 위해서  phpmyadmin도 설치한다. 설치할 때 웹서버를 묻는데 일단 아파치로 하고 넘어간다.

설치 중간 중간에 비번을 잘 입력하고 난 후 설치가 끝나면 현재  phpmyadmin의 폴더를 nginx 서버의 웹루트 폴더에 심볼릭 링크를 걸고 nginx를 재시작한다.

phpmyadmin을 실행시켜 정상적으로 뜨면 성공이고, 403 에러가 뜬다면 nginx의 설정을 확인해 봐야 한다.

설정 파일에서 처음 서버 설정 밑에 index에 “index.php”가 추가되었는지 확인하고 안 되어 있어 넣었더니 정상적으로 phpmyadmin이 작동했다.

오늘 작업은 여기저기 참조를 많이 했다. 아래 참조한 사이트들이다.

  • http://www.networkinghowtos.com/howto/installing-nginx-php-and-mysql-on-ubuntu-13-04/
  • http://www.unixmen.com/install-lemp-server-nginx-mysql-mariadb-php-ubuntu-13-10-server/
  • https://bbs.archlinux.org/viewtopic.php?id=163714