BNF Metalanguage

Backus-Naur Form(BNF)
BNF는 John Backus와 Peter Naur의 이름을 딴 것이고, 그들은 BNF를 1960년에 개발했다. BNF 구문 정의를 문자, 숫자, 그리고 특별한 기호를 사용해서 쓰여졌다.

예제.

<DecimalInteger> ::= <NonzeroDigit> | <NonzeroDigit><DigitSequence>
<NonzeroDigit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<DigitSequence> ::= <Digit> | <Digit><DigitSequence>
<Digit> ::= 0 | <NonzeroDigit>

Yubikey 이메일 인증 및 전자서명용으로 사용해보다.

yubikey 질렀었지요.

오늘은, 그동안 사용하지 않았던, 개인인증서를 다시 써볼까 싶어서 잠시 시간을 내었습니다.

comodossl에서 해보자.

https://www.comodossl.co.kr/certificate/Secure-Email-Stages.aspx
국내 리셀러?를 통하지 않고 comodo에서 바로 온라인으로 구매합니다.

https://secure.comodo.net/products/frontpage?area=SecureEmailCertificate&currency=USD&region=Asia%20%26%20Pacific&country=KR%20

이름, 이메일 주소를 입력하면, 인증서를 발급 받을 수 있습니다.

개인용 이메일 인증서는 무료로 제공하지요.

별도의 심사 같은 것 없고, 딱 위에 입력한 것만으로 발급이 바로 진행됩니다.

발급시에는 yubikey로 바로 넣는 것이 아닌, 소프트웨어 인증서 저장소를 택했습니다.
(혹시나 핸들링에 문제가 있을까 싶어서)

그리고, 인증서를 파일로 백업한 후, PIV Manager 통해서 다시 넣었습니다.

Firefox, Thunderbird에서 모두 yubikey에 있는 인증서가 잘 접근 됩니다.

그러나, opensc와 yubikey조합에서는 인증서 백업과 같은 것은 정상 동작하지 않습니다.참고하십시오.

firefox에 인증서를 넣어두고, openoffice에서 문서 서명을 해봅니다.
잘 됩니다.

thunderbird에 인증서를 넣어두고, 전자 서명메일을 발송해 봅니다.
잘 됩니다.

이메일이나 문서 서명의 경우, 기한을 가지더라도 큰 문제가 안 되는데,
파일 시스템 암호화의 경우는, 인증서를 쓰면 좋긴 한데,
아직까지 개인인증서 1년짜리는 문제가 좀 있다 싶고,
별개의 영역으로 다루어야 할 것 같긴 합니다.

Vostro 260s에는 yubikey로 로그인을 보호하고,
ecryptfs를 통해 파일시스템 암호화를 수행하여 보호합니다.
ecryptfs가 인증서를 지원할지는 미지수 …

yubikey를 질렀습니다.

yubikey를 질렀습니다.

YubiKey 4 Security Keys

물론, 해외직구를 하면 좋으나(?) 배송비가 배보다 배꼽이 커서, … 국내 대행사를 통해서 구매하였습니다.

처음에는, 인증서 저장도 염두에 두었습니다.
(사실, 2FA보다 여기에 무게를 더 두었습니다.)

그리고, 받아서 사용해 볼려고 끄적거렸고,

Mac에서 잘 되었습니다.
하지만, 아직은 Mac로그인용으로는 사용하지 않고,

SMIME인증서 저장으로 활용해 보려 했습니다.

Firefox, Thunderbird에서 라이브러리 설치해서 인식은 하는데, 인증서 저장에서 에러가 발생하더군요.

그리고, OpenOffice에서 서명을 시도했습니다. 마찬가지로, 인식해서 뜨긴 하는데, 인증서는 뜨지 않았고, …

찾다보니, yubikey에서 제공하는 프로그램에서 인증서를 넣는 것이 보였습니다.
PIV authentication, Digital Sign, Key Management? Card Authentication? 이란 4가지 용도로 인증서를 저장할 수 있다는 것을 보았고, 역시 인증서를 넣어보았습니다.

하지만, 위 4가지 모두, Firefox나 Thunderbird에서는 나오지 않았습니다.

그래서, 걍 포기하고 되는 걸 먼저 해보자 싶어서, …

가장 먼저 시도한 것이, 잘 쓰지는 않지만, 만들어 두었던 Dropbox …
거기에 2FA 용도로 등록해 보았습니다.

잘 됩니다. (물론, Chrome에서…)

그리고, 다음으로 구글…

역시 잘 됩니다. (물론, Chrome에서…)

왜 Chrome인지는 모르겠으나, … Firefox에서는 2FA로 휴대폰 인증을 받더군요 …

그리고, 오늘은 Ubuntu에 시도해 보았습니다.
한시간 삽질했으나, 되긴한다. 라고 알고, 세팅했습니다.

Vostro 260s에 적용했습니다.

하는김에 랩톱에도 해보자 싶어서 Libreboot X200에 시도 합니다. …

프로그램은 있어서 설치되는데, … 키가 인식되지 않는군요.

소프트웨어 업데이트가 상대적으로 느린 Trisquel 7.0 … 안 되니, 걍 쉽게 포기했습니다.

언젠가 Libreboot X200에 Ubuntu를 깔아버리는 것이 좋을까? ㅋㅋㅋ

윈도우에서는 어디까지 되나 시험해 보고 싶으나, 내가 가진 유일한 윈도우였던 Vostro 260s Windows 10은, Ubuntu로 바뀐지라 테스트 해보지 못하고, …

직장에서는. DLP툴이 차단해서 한번 꽂아보고, 포기. 물론 인터넷이 되지 않는 환경에서 드라이버가 잡힐까 싶긴 하고, ㅋㅋㅋ

나중에 PIV인증서를 좀더 파보고 사용할 수 있으면 사용해 보려 합니다.

사실 보안PKI 쪽에서는, 서명용으로 포기한 것 같고, 인증에 무게를 두는 것 같은데, … 대다수 2FA용으로 많이 홍보하고, …
서명이 그렇게 무효한지는 모르겠으나, … 나는 써보고 싶은데, … Letsencrypt에서도 개인 인증서를 발급하지 않으니,
당분간은 authentication에 관심을 둬야 하나 싶고, …

우분투 로그인은 challenge-response로 했는데, 나중에 시간이 되면, OTP 기능도 좀 파보고 잘 활용해야 되겠ㅋㅋ

서버 구축 노트.

이번에, www 서버를 이전하였다.
그래서, 이 작업에서 수행한 작업들을 메모해 보고자 한다.

목표는, wordpress 웹서버이다. (MariaDB도 같은 서버에 구동한다.)

1. Linode 서버 구매.
2. Debian 9 이미지 세팅.
3. sudo 권한 가진 사용자 생성. – Ubuntu, AWS 같이 root를 바로 사용하지 않으려고,
4. ssh 키세팅. – root, 관리자 두 계정에 대해서, 모두 비밀번호를 사용하지 않고, ssh 키인증을 한다.
5. hostname 설정 – hostnamectl
6. timezone 설정 – timedatectl
7. logwatch + postfix 설치 – logwatch를 통해, 서버 상황 데일리 리포트를 받아보면서 건강한지 확인한다.
8. root 메일 수발신 테스트
9. 방화벽 설정 – 이번에는 firewallcmd 말고, ufw를 사용해 보기로 하고, ufw 설치 및 허용포트 오픈.
10. mariadb-server 설치
11. apache 설치
12. certbot 설치 및 SSL 세팅.
13. libapache2-mod-php7.0 및 php7.0-mysql, php7.0-ldap 설치
14. 유틸리티 설치. ( netstat, mailutils .. )

15. mariadb dump.sql 파일 통해서 DB 복구, wordpress 사용자 생성
16. wordpress 파일 이전.
17. wordpress 구성 점검.

이슈 사항.
백업을 암호화해서 보관했었다. mysqldump | openssl enc -e > dump.sql.enc
그런데, 악 ㅋㅋ 복구가 안되 openssl 버전이 달라서 안되는지 뭔지…
그래서, 아래와 같은 기술을 사용.

1. 기존 백업 볼륨이 있는 서버를 ubuntu stick을 통해서 복구용으로 부팅한다.
2. 기존 백업 볼륨의 OS 영역을 read-only 복구용으로 마운트 한다.
3. OS 영역을 chroot해서 구버전 openssl 사용할 환경으로 만들고, 암호화된 백업을 복구해 본다.
4. chroot 하고, read-only 라서, 복구한 파일을 백업 볼륨에 만들 수는 없다. ( 물론, 이동식 저장장치를 쓴다거나 할 수 있지만 귀찬다. )
5. 그래서, … 아주 오래되었지만, 여전히 유효한 기술인 유닉스 파이프를 활용하는 걸로 복구를 진행한다. 로컬에서 복호화 돌리고, ssh 채널로 전송하면서, 파일로 쓰기, … 오랜만에 해본 것인데, … 역시 유닉스는 강력하다는 것을 또 느낀다.

추가 이슈.
wordpress가 첫 페이지 뜰 때는, 몰랐는데, 글 작성하고 링크를 공유하려니, rewrite가 안 먹는다.
rewrite 모듈 확인하고, .htaccess 확인. 문제없는데? 지만, 아래를 참조하여 수정함.
https://stackoverflow.com/questions/22797931/htaccess-is-not-working-in-linuxdebian-apache2

telegram bot 테스트 노트

얼마전, telegram 공개 채널을 한번 만들어 보았다.

https://t.me/okkykr

그리고, bot을 다시 한번 테스트 해볼까 시동을 걸었다.

시작은.. 검색 ‘telegram python bot’

https://github.com/python-telegram-bot/python-telegram-bot

git clone 받고, git submodule update 하고, …

… 두둥 …


ImportError: No module named future.backports.urllib

음, … pip install을 피하고자 했는데, …
음, … future란 것도 모듈이네, 이런 건 설치해보자.

https://pypi.python.org/pypi/future/0.16.0
다운로드 받고, setup.py install 사용해서 설치함.

다시한번


>>> import telegram
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "telegram/__init__.py", line 94, in <module>
from .bot import Bot
File "telegram/bot.py", line 34, in <module>
from telegram.utils.request import Request
File "telegram/utils/request.py", line 31, in <module>
import certifi
ImportError: No module named certifi

… 두둥 …

certifi란 것도 필요하구나.
https://pypi.python.org/pypi/certifi/2017.7.27.1
그런데, … .whl 음.. 느낌이 안 좋다.

pip를 설치하자.
https://stackoverflow.com/questions/17271319/how-do-i-install-pip-on-macos-or-os-x

다음. pip install certifi

다시한번


>>> import telegram
>>>

되는 것 같다.

… 잠시 추가로 테스트 …
( bot을 만드는 것도, telegram은 웹 관리자 화면 같은 걸 통하지 않고 봇에게 말을 걸어서 만든다. … 만들었다. )

… 1분 후, …


>>> import telegram
>>> bot = telegram.Bot(token='nnnnnn:alphanumber')
>>> bot.get_me()
<telegram.user.User object at 0x10x10x10x>
>>>

된다.

… 10분 후, …
봇에게 말을 걸어보고, 봇이 응답하게 해보았다.


>>> updates = bot.get_updates()
>>> updates
[]
>>> updates = bot.get_updates()
>>> updates
[<telegram.update.Update object at 0x10x10x10x>, <telegram.update.Update object at 0x10x10x10x>]
>>> chat_id = bot.get_updates()[-1].message.chat_id
>>> chat_id
1x60x39x2
>>> bot.send_message(chat_id=chat_id, text="I'm a bot")
<telegram.message.Message object at 0x10x10x10x>

다음 단계, bot 을 채널에 초대해보자.

https://stackoverflow.com/questions/42674340/how-to-join-my-telegram-bot-to-public-channel
https://stackoverflow.com/questions/33126743/how-do-i-join-my-bot-to-the-channel

관리자가 관리자로 추가할 수 있군.

… 8분 후, …


>>> bot.send_message(chat_id='@dgkimnet', text='hi')
<telegram.message.Message object at 0x10x10x10x>

올, 된다. 지금 만든 것은, 말하기 전용? 이지만. 되긴 된다. 듣고 반응하는 것도 가능하겠지만. 지금 하기에는 dgkim이 너무 나태하다.

ps. 워드프레스에서 코드 활용할 때, lt, gt 넣는 것 참 번거롭네.

심심해서 적어보는, 건축과 프로그래밍 관련 비유.

언어나 프레임워크에 대해서, 뭔가 거창하게 비유할 것은 아니고, 걍 단순하게 분류해본다.

Java : 철근 콘크리트 구조물.
Java + Spring + Spring WebMVC : 철근 콘크리트 아파트에, 4-Bay 설계?

Bootstrap, vuejs, dojo 등 : 인테리어 자재

Django : 컨테이너집? – 뭔가 집으로서의 기능을 패키지로 모두 제공해 주는 느낌이다.

PHP : 목조 주택? – 뭔가 가벼운 재료를 사용해서, 쉽게 뚝딱뚝딱 만들어 붙이면 될 것 같은 느낌이다. – 예전 같으면, 통나무집 느낌이었으나, 요즘은 규격화된 재료를 사용하는 목조 주택이다.

그래서, 내가 회사를 꾸민다고 하면, 시스템들은 Java로 단단하게 만든 주요 시스템과, 그때 그때 필요에 따라 만드는 카페 같은 Django를 놓기도 하고, 뭔가 새로운 형태를 만들고 싶으면 PHP 등을 사용해서, 전혀 새로운 형태도 만들어 보기도 할 것 같다.


현재, 나는 경험이 가장 많은 것은 Java Spring이지만, 주력 언어로 4개는 기본으로 가져가려 한다. Java, Python, PHP, Javascript … 선호도로는 Javascript가 앞에 서야 하지만.

ps. django가 특징이 있어 넣었는데, … python은 위에 PHP 자리에 넣어도 설명은 바뀌지 않는다, … php보다는 python 언어가 끌리는데, … 뭔가 두서 없는 …

그냥 생각

게시판, 블록체인, 유즈넷.

지금은 인터넷에 특정 사이트의 게시판에 글을 쓰면, 해당 사이트 관리자에게 게시물에 대한 처리를 요청할 수 있다.

하지만, 유즈넷 시절에는 불가능했겠지?

그리고, 다가오는 블록체인 기술을 활용해서, 인터넷 사이트의 컨텐츠가 유즈넷 같이 바뀐다면 게시글의 수정이 더 어려워지겠지?

파일용 클라우드의 경우, 블록체인을 사용하는 것을 만들었다?는 것을 본 것 같은데,

일반 인터넷 사이트에도 블록체인, 클라우드, P2P 같은 기술이 쓰일 날이 올까?

북마크 프로그램 만들려 하면서, …

일전 포스트에서 적었듯, SiteBar( http://sitebar.org/ ) 대신할 프로그램을 만들어볼까 고민중인데, …

기술적인 구현도 문제지만 ( RESTful Server, 인증 )

개념적인 구현도, 막상 닥쳐보니 고민할 것이 많다.

우선, Tag 개념은 넣을려고 하는데, 이건 그리 복잡하지 않을 수 있겠다 싶기도 한데, …
( 실제 데이터 모델을 생각하니 복잡할 수도. … )

먼저, Category 혹은 Directory 개념은 있어야 할 듯 하고, 바로 막막하네, …
그래서, 잠시 ownCloud 같은 클라우드를 백으로 활용할까 생각하고, …

Directory 개념은 Tree 구조로 가져가는 것이 복잡할 것 같지만, 향후를 생각해도 기본적인 것 같아 복잡하다.

추가로, … public, private 개념을 두려고 하니, … 또 하나, ACL 넣기가 필요하다.

역시나 기존에 구현된 filesystem의 권한 및 tree 구조를 바로 활용하면 편한데, …
이번 프로젝트는 직접 구현해 보는 것이 목표라서 re-inventing wheel은 하려고 한다.

firefox의 bookmark API는 우선 고려 대상에서 제외하고, ( bookmark를 사용할 분들은 잘 사용하시고, 나는 따로 서버에 두고, bookmark와는 별개의 sidebar와 web interface, 앱 인터페이스로 가려고 한다 … )

그래서 생각하는 것이, sidebar를 사용하고, 거기에 SiteBar와 유사하게 디렉토리 구조를 표현하면서, drag and drop을 편하게 해 보고자 한다.

drag and drop은 내 블로그에 전에 테스트하던 것을 참조하면서도, 오늘 추가로 아래 자료도 보고,
https://developer.mozilla.org/en-US/docs/Web/Events/drop
https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations
https://24ways.org/examples/marking-up-a-tag-cloud/example.html

게시판도 하나 직접 만들어보지 않은 dgkim이라, directory, acl, tag, 인증을 적절하게 만들어보면, 다른 업무용 프로그램 만드는데도 쉽게 재활용할 수 있지 않을까 기대하는데, …
기존 구현된 tree나 relation, rdb 구조를 보면 어렵지는 않을 것 같은데, 로직 코드를 그다지 꺼내쓰듯 하지 못하니 어려움으로 다가오는듯 하다.

ps. 그리고, 만들고 나서는 현재의 2900여개의 북마크를 이전해야 하는데, …
여전히, 내 자료 저장은 좀 다양한 도구에 의존하는데, 개선해야 하나 싶기도 하고, … 메일, 블로그, 클라우드, 파일서버, 북마크, 노트, …

그러고 보니, 북마크를 만들고 나면, 자신감을 가지고 노트도 대신할 것을 만들까 싶지만, 거기에는 문서 표현(wiki? or html?)이라는 어려운 벽이 또 하나 있다.

추억의 프로그램 picasa

추억의 프로그램 picasa

ps. 2000년 초반, 엽기, 싸이 데이터를 삭제하던중, picasa.ini 발견하고, …

firefox sidebar를 준비해보다…

아래 삽질 기록이 좀 있습니다만.

우선, 기본적인 클라이언트측 컨셉은 가능하겠다는 판단까지 왔습니다.

우선, webextension 예제에서 2가지를 테스트하였고, 조합하면 동작할 것 같습니다.

https://github.com/mdn/webextensions-examples/tree/master/annotate-page
위 예제를 통해서, sidebar를 띄우는 방법이 나왔습니다.
단, sidebar 내용이 서버측 내용이 아닌 로컬 내용인데, 로컬에서 커버할지 웹을 띄울지 고민이 필요한 것 같습니다.

https://github.com/mdn/webextensions-examples/tree/master/bookmark-it
bookmark에 바로 접근하는 것이 가능한 것으로 나오는데,
이걸 활용하고, 로컬 북마크와 서버측 북마크를 연동할 것인지는 고민이 필요합니다.

annotate-page는 sidebar에 뭔가 표시가 가능하다는 것을 의미하며,
bookmark-it은 currentTab.url에 접근 가능하고, XHR 요청이 가능하다는? 것이 테스트되었습니다.

이제 이걸 쓸만하도록 클라이언트 앱을 만드는 것이 필요한데, …
먼저 해결해야할 산이 남은 것이 아래 적은 것과 같이. codeigniter restful 서버 만드는 것, 그 전에 인증 문제 해결하는 것 등이 남았네요. 웹에 표현하는 tag cloud 같은 건 논외로 하더라도, …

어쨌든, firefox extension 완성되면, codeigniter 버전도 만들어 보고, django 버전도 만들어 보면 좋겠다는 계획입니다. … 이 계획이 언제 실현되어 제품으로 나올지는 모르겠지만 … spring에서는 restful API나, spring-security가 경험이 있어 model만 만들면 바로 동작하는 것은 만들 수 있겠다고 생각하지만,, …. 무엇보다 큰 문제는, 사용자 웹 인터페이스가 …


예전에는 SiteBar라는 프로그램을 사용하여 북마크를 관리?했었습니다.

그러던 중, SiteBar가 PHP7과 호환성 문제가 있어 사용하지 못하게 되었습니다.

그래서 이번에는 한번 만들어 볼까? 고민하고 있었지요.

간편한 시작을 위해서 웹서버쪽을 PHP + CodeIgniter사용하고,
클라이언트는 Firefox Sidebar를 사용해 보고자 했습니다.

Firefox Sidebar를 만드는 방법이 역사가 있고, 바뀌어 가기도 하는데, 그중 최신인,
web extension을 사용해서 틀을 잡아보기로 하였습니다.

https://github.com/mdn/webextensions-examples/

그런데, …

XHR을 통해서 링크를 서버로 보내는 것을 준비하다가, …

심각한 상황에 빠졌느데, … CI에서 log_message 걸다보니, httpd가 hang 걸리고, …

그러다가, gdb, lsof, debuginfo-install httpd-2.4.6-45.el7.centos.x86_64
하는 상황까지 오게된. …

그나 저나, 해야 할 일들은 아래와 같이 시작도 못했는데, …

1. firefox web extension 사용하여 sidebar 활용 등의 클라이언트 프로그램 준비
2. 서버측 bookmark 모델 설계
3. 서버측 codeigniter LDAP 및 인증 모듈 개발
4. 서버측 codeigniter bookmark RESTful 인터페이스 개발
5. 서버측 codeigniter web 인터페이스 개발 ( bootstrap 사용할까? )

참조 URL
https://developer.mozilla.org/en-US/docs/Mozilla/Creating_a_Firefox_sidebar
https://github.com/kyoshino/simple-sidebar
https://developer.mozilla.org/en-US/Add-ons/WebExtensions
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Sidebars
https://github.com/mdn/webextensions-examples/

ps. 헐, 위에 적은 debuginfo-install은 시작이었고, 아래와 같은 엄청난 메시지가 나오는데, 포기할까 싶은 생각이 바로 …
debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 cyrus-sasl-lib-2.1.26-20.el7_2.x86_64 elfutils-libelf-0.166-2.el7.x86_64 elfutils-libs-0.166-2.el7.x86_64 file-libs-5.11-33.el7.x86_64 freetype-2.4.11-12.el7.x86_64 gmp-6.0.0-12.el7_1.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.14.1-27.el7_3.x86_64 libX11-1.6.3-3.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXpm-3.5.11-3.el7.x86_64 libattr-2.4.46-12.el7.x86_64 libcap-2.22-8.el7.x86_64 libcom_err-1.42.9-9.el7.x86_64 libcurl-7.29.0-35.el7.centos.x86_64 libgcc-4.8.5-11.el7.x86_64 libgcrypt-1.5.3-13.el7_3.1.x86_64 libgpg-error-1.12-3.el7.x86_64 libidn-1.28-4.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libssh2-1.4.3-10.el7_2.1.x86_64 libstdc++-4.8.5-11.el7.x86_64 libuuid-2.23.2-33.el7.x86_64 libxcb-1.11-4.el7.x86_64 libxml2-2.9.1-6.el7_2.3.x86_64 libxslt-1.1.28-5.el7.x86_64 libzip-0.10.1-8.el7.x86_64 mariadb-libs-5.5.52-1.el7.x86_64 mod_dav_svn-1.7.14-10.el7.x86_64 mod_wsgi-3.4-12.el7_0.x86_64 nspr-4.11.0-1.el7_2.x86_64 nss-3.21.3-2.el7_3.x86_64 nss-softokn-freebl-3.16.2.3-14.4.el7.x86_64 nss-util-3.21.3-1.1.el7_3.x86_64 openldap-2.4.40-13.el7.x86_64 openssl-libs-1.0.1e-60.el7.x86_64 php-5.4.16-42.el7.x86_64 php-common-5.4.16-42.el7.x86_64 php-gd-5.4.16-42.el7.x86_64 php-ldap-5.4.16-42.el7.x86_64 php-mbstring-5.4.16-42.el7.x86_64 php-mysql-5.4.16-42.el7.x86_64 php-pdo-5.4.16-42.el7.x86_64 php-process-5.4.16-42.el7.x86_64 php-xml-5.4.16-42.el7.x86_64 python-libs-2.7.5-48.el7.x86_64 sqlite-3.7.17-8.el7.x86_64 subversion-libs-1.7.14-10.el7.x86_64 t1lib-5.1.2-14.el7.x86_64 xz-libs-5.2.2-1.el7.x86_64
지금 서버가 테스트 개발 서버라면 몰라도, 준 운용 서버인데, 위와 같은 짓을 하기는 싫은데, …

ps. 환장할 일일쎼… Java는 보통 hang상황에서 thread dump라는 편리한 도구를 사용했었고, apache는 server-status 활용하고, tcpdump나 lsof 등으로 대충 찍으면, 뭔짓을 하는지 나왔었는데, … 지금 버그인지, 뭔지는, gdb로 찾아야 하다니 하면서, …

ps. 정확한 원인은 모르겠으나, 우선 보이는 것부터 잡아보려고, …
#9 0x00007f01cba6a344 in php_verror (docref=, params=params@entry=0x7f01cbb81ce5 “”, type=type@entry=2,
format=format@entry=0x7f01cbb7bb08 “It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you”…,
args=args@entry=0x7fff62819750) at /usr/src/debug/php-5.4.16/main/main.c:862