최근에는 로컬 윈도우 PC에 개발 환경을 세팅하는 일이 많아졌다.
대부분 리눅스 서버에 접속해서 vim 으로 작업하는 것만으로도 충분했는데 이제는 조율이 필요할 때이다.
누구는 윈도우에서 작업하고 누구는 리눅스에서 작업하다보니 라인 피드 문제가 간혹 생기기도 했으며,
각기 다른 로컬 서버 세팅으로 인해 이 자리에서는 되고 저 자리에서는 안되고...
웹개발자님덜 모두 이런식으로 작업하시는 건가요??
이런 저런 꼬라지 안보려면, 특정 패키지(WAMP)의 특정 버전으로 모든 개발 PC에 동일한 세팅을 해야만 한다.
Apache 버전/설정 맞추고, PHP 버전/설정 맞추고, 하면 잘 될 줄 알았는데 이번엔 리눅스(Real) 서버와 엇갈린다.
리눅스는 되고, 윈도우즈는 안되는 정말 아이러니한 상황.
OpenSSL Library Version 과 Header Version 이 다른 이유로. PHP OpenSSL 관련 함수들이 모두 동작하지 않는다.
리눅스에서는 그냥 아무거나 갖다 깔아도 잘 맞는 것들이, 윈도우즈에서는 시간을 자꾸 투자해야 한다.
이 거지같은 상황은 WAMP의 무수히 많은 버전들을 직접 깔아보면서 재수좋게 맞아 떨어지는 것으로 해결하긴 했다.
가장 확실한 것은 리눅스에 깔린 Apache / PHP 버전을 그대로 받아서 컴파일 하는 것이 최고이겠으나,
이 여러대의 컴퓨터에 직접 돌아다니면서 그짓을 하는 것은 바람직하지 않다.
인터넷에는 이런 글이 많았다.
아파치에 로드된 openssl 버전과 php에 로드된 openssl 버전이 다르니,
관련 파일인 libeay32.dll 과 ssleay32.dll 파일을 한쪽으로 덮어 씌우면 버전이 동일해질 것이다.
이론적으로는 그럴싸 하나, apache가 실행되질 않는다.
둘째로, PDO Driver for MySQL (Client API version)
리눅스랑 똑같은 버전의 PHP 인데 왜 윈도우즈에서만 MySQLnd가 깔려?
이것도 리눅스랑 똑같이 만들 자신은 없어서 로컬에서 매일 이 오류와 함께 작업하고 있지.
Warning: PDO::prepare(): SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 는 true 상태인데 왜이러는 거니.
게다가 윈도우즈에서 개발할 때 필요한 추가 작업들이 더 있다.
인증 결제 모듈도 윈도우즈 용을 준비해야 하며, 절대경로가 필요한 곳에도 모든 로컬PC에 맞게 세팅을 해줘야 한다.
해외 결제쪽은 64비트 윈도우즈를 사용할 경우 레지스트리까지 건드려야 한다.
여러 사람이 윈도우즈에서 php 개발하는게 이렇게 번거로운 거였는지 딴동네 사람들에게 묻고 싶다.
한가지 고무적인 것은 많은 WAMP와 Aptana를 써보는 계기가 됐다는 것.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.