cakephp 처음 세팅시 아래와 같은 에러가 발생할 수 있다(경로 일부 생략)

Warning: _cake_core_ cache was unable to write 'cake_dev_ko-kr' to File cache in lib/Cake/Cache/Cache.php on line 306

Warning: _cake_core_ cache was unable to write 'cake_dev_ko-kr' to File cache in lib/Cake/Cache/Cache.php on line 306

Warning: app/tmp/cache/persistent/ is not writable in lib/Cake/Cache/Engine/FileEngine.php on line 320

Warning: app/tmp/cache/models/ is not writable in lib/Cake/Cache/Engine/FileEngine.php on line 320

Warning: app/tmp/cache/ is not writable in lib/Cake/Cache/Engine/FileEngine.php on line 320

Warning (512): _cake_model_ cache was unable to write 'default_blog_list' to File cache [CORE/Cake/Cache/Cache.php, line 306]

Warning (512): _cake_model_ cache was unable to write 'default_blog_list' to File cache [CORE/Cake/Cache/Cache.php, line 306]

Warning (512): _cake_model_ cache was unable to write 'default_posts' to File cache [CORE/Cake/Cache/Cache.php, line 306]

Warning (512): _cake_model_ cache was unable to write 'default_blog_posts' to File cache [CORE/Cake/Cache/Cache.php, line 306]

 
이는 서버가 app/tmp에  쓰기권한이 없을 때 발생한다.
해결방법은 app디렉토리로 이동해서 아래와 같이 입력하면 된다
$ sudo chown -R (서버 유저) tmp

이때 저 서버 유저를 모른다면 아무 php파일에 아래 내용을 추가해서 브라우저로 확인한다
whoami: <?php echo `whoami`; ?>

난 daemon으로 나오기 때문에 아래와 같이 입력했다
$ sudo chown -R daemon tmp

문제 해결!


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
lol

시작한지는 좀 됐는데 이제서야 30렙 달성했다.

깔끔하게 승리와 함께

카사딘은 역시 OP챔프.

갓만렙의 전적은 148승 160패
50%도 안된다니 슬프다 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
강원도에 있는 해군부대에서 하사로 근무중인 친구가 이번에 휴가를 나왔는데 여행이나 할겸 해서 친구 복귀할때 강원도로 따라갔다.

시골이라 별로 볼건 없었지만 하조대 근처라 겨울바다를 처음으로 보러 갔다.

전날 눈이와서 모래사장에 눈이 쌓여있었는데 날씨는 맑고 따뜻해서 기분좋게 바다를 구경하며 걸었다.
겨울이라 바람은 세게 불었지만 파도소리는 듣기 좋았다.

그렇게 무작정 걷다가 저녁에 집으로 돌아왔는데 가끔은 이런 여행이 필요한것 같기도 하다.
워낙 집에 있는걸 좋아하다보니 언제 또 여행을 가게 될지는 모르겠지만 기회가 생기면 또한번 가고싶다.

 
 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License

Missing Database Connection
Error: Mysql requires a database connection

Error: Confirm you have created the file : app/Config/database.php.

Notice: If you want to customize this error message, create app/View/Errors/missing_connection.ctp.

Stack Trace

#0 /home/widyou/www/blog/lib/Cake/Model/ConnectionManager.php(101): DboSource->__construct(Array)
#1 /home/widyou/www/blog/lib/Cake/Model/Model.php(3241): ConnectionManager::getDataSource('default')
#2 /home/widyou/www/blog/lib/Cake/Model/Model.php(1030): Model->setDataSource('default')
#3 /home/widyou/www/blog/lib/Cake/Model/Model.php(3265): Model->setSource('posts')
#4 /home/widyou/www/blog/lib/Cake/Model/Model.php(2483): Model->getDataSource()
#5 /home/widyou/www/blog/app/Controller/PostsController.php(7): Model->find('all')
#6 [internal function]: PostsController->index()
#7 /home/widyou/www/blog/lib/Cake/Controller/Controller.php(473): ReflectionMethod->invokeArgs(Object(PostsController), Array)
#8 /home/widyou/www/blog/lib/Cake/Routing/Dispatcher.php(104): Controller->invokeAction(Object(CakeRequest))
#9 /home/widyou/www/blog/lib/Cake/Routing/Dispatcher.php(86): Dispatcher->_invoke(Object(PostsController), Object(CakeRequest), Object(CakeResponse))
#10 /home/widyou/www/blog/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#11 {main}



 
php를 세팅한 후 Cakephp 예제를 따라하는데 위와같이 아주 이쁘고 사람 미치게하는 에러가 계속해서 발생했다.
아무리 포럼을 뒤져보고 해도 해결되지 않는 문제. 저 문제가 나는 경우가 매우 극소수인듯 한데다가 가끔 달린 답변글은 암호가 다르거나 어쩌구저쩌구..
이것떄문에 하루를 버리다가 끄트머리에서 cakephp도 로그를 남기겠지 하고 로그를 뒤져보았다.
로그는 app/tmp/logs/error.log 에 위치해있었다.
아래로 쭉 내려보니 원인을 추정할 수있는 단서를 찾을 수 있었다.

2012-03-01 23:09:05 Error: [MissingConnectionException] Database connection     "Mysql" is missing, or could not be created.



아니 이게 무슨소리야! mysql연결에 쓰는 객체 자체가 없다니!
cakephp가 곶아라니!
저 에러로 검색을 해보니 cakephp는 pdo라는걸 이용해 db에 연결한다는 걸 알아냈다.
내 php에는 모듈이 하나도 없었으니 혹시나 하는 마음에 php 소스디렉토리에 가서 ext에 pdo로 시작하는 디렉토리를 찾아보니 떡하니 나오는 pdo_mysql...

속으로 온갖 욕을 하며 이전글처럼 모듈을 따로 빌드해다가 php에 넣었더니 무슨일 있었냐는 듯이 잘 연결된다.
으으 그래도 로그에서 저 한줄 찾은게 실마리가 되어서 다행이다.
오늘안에 못돌리면 포기하려고 했는데. 휴~

내일은 튜토리얼대로 간단한거 하나 만들어보고 내가만든 네모로직게임 자바스크립트 라이브러리로 사이드 하나 만들어본 후 잘 돌아가면 가상서버호스팅까지 해봐야겠다.

가상서버호스팅 대비해서 서버도 vmware는 최소화해놓고 후 모든 작업은 putty로 ssh콘솔 열어서 작업하고 있다.
영어채팅이 점점 빨라지는 기분이야!

아무튼 이런 삽질은 나만 하자는 마음으로 기록을 공유해본다.

계속 삽질하니 점점 apache와 php에 대해 알아가고 있는 느낌이 들어 좋다. 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
저번 글처럼 apache와 php를 설치한 후 phpMyAdmin을 설치했는데 아래쪽에 mysqli와 mcrypt를 찾을 수 없다는 경고가 떠서 내 신경을 긁었다. 알아보니 빌드할때 configure 에 --with-mysqli --with-mcrypt 이런 옵션을 붙인 후 빌드를 해야 하는 것이었다. 근데 이제와서 php를 다시 빌드할 수는 없잖아? 그래서 구글링을 열심해 해봤다.

우선 php소스파일이 있던 곳으로 이동해 ext/(모듈명) 디렉토리로 이동한다.
mysqli를 예로 들면
$ cd ext/mysqli

php관련 실행파일이 있는곳의 phpize라는 실행파일을 찾아 실행한다.
php빌드할때 prefix를 줬다면 그 경로의 bin에 있을 가능성이 높다. 나갔은 경우는 기본값으로 빌드했는데 /usr/local/bin에 있었다.

$ /usr/local/bin/phpize

그러면 라이브러리가 부족할경우 에러가 뜨는데 apt-get을 이용해서 가뿐히 설치해주고 해결한다. 난 autoconf가 없다고떠서 설치하니 해결되었다.

phpize가 완료돠면 이제 configure 파일이 생성되게 되는데 mysqli는 아래와 같이 옵션을 주자
$ ./configure --with-php-config=/usr/local/bin/php-config --with-mysqli=/usr/bin/mysql_config
사실 위 옵션을 몰라도 그냥 configure를 해본 후 에러메세지를 본 후 부족한 옵션을 추가하면 된다.

이제 make 까지만 실행 한다(install은 하지 않는다)
$ sudo make

이후 modules 디렉토리를 보면 mysqli.so 파일이 생성되어있을 것이다.
이것을 적당한 공간에 복사한다.
$ sudo mkdir /usr/local/lib/php/modules
$ sudo cp modules/mysqli.so /usr/local/lib/php/modules

이제 php.ini파일을 열어 수정해야한다.
$ sudo vim /usr/local/lib/php.ini

파일을 살펴보면 아래와 같이 모듈 경로 지정하는 부분이 주석처리되어있을 건데 이를 수정한다.
; extension_dir = "./"
->
extension_dir = "/usr/local/lib/php/modules "

그리고 더 내려가면 extension=모듈명 이런 구분들이 쭉 주석처리된 곳이 있는데 아래와 같이 모듈명을 추가해준다
extension=mysqli.so

이제 저장하고 apache를 재시작하면 적용이 된다!
mcrypt모듈도 같은 방법으로 하면 된다. mcryipt는 libmcryipt 를 요구하는데 sudo apt-get install libmcrypt-dev 명령으로 설치 후 그냥 configure & make 하면 된다.
 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
mysql은 apt-get으로 설치하고 이전 글대로 apache2는 최신버전을 직접 빌드했을 때 php 빌드하기

최신버전 다운로드
http://www.php.net/downloads.php 
 
php 사이트에서 제시한 configure는 아래와 같이 하면 된다고 하는데
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
해보면 mysql을 apt-get으로 설치해서인지 헤더 파일을 찾을 수 없다고 나온다

우선 헤더파일 설치
$ sudo apt-get install libmysql++-dev

이후 configure를 아래와 같이하고 make
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/include/mysql
$ sudo make
$ sudo make install

설정파일 넣기
$ sudo cp php.ini-development /usr/local/lib/php.ini

아파치 설정 수정
$ sudo vi /usr/local/apache2/conf/httpd.conf
파일 하단에 아래 3줄 추가
<IfModule php5_module>
AddType application/x-httpd-php .php .phtml .php3 .php5
</IfModule>

아파치 재시작
$ sudo /usr.local/apache2/bin/apachectl restart
또는 이전글처럼 서비스 등록을 해뒀으면
$ sudo /etc/init.d/apache restart

 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
ubuntu 10.04 기준으로 작성

apache2 소스를 받아 configure를 해보면 apr, aprutil, pcre가 각각 필요한데
apr과 aprutil을 apt-get을 이용해 설치를 하게되면 최신버전이 아니어서 그런지 configure는 성공하지만 make할때 에러가 발생하는 경우가 생긴다. (난 apr_file_link 에러가 발생했다)

수동으로 빌드하기로 마음먹었으면 라이브러리도 수동으로 설치하자.

apr & aprutil
http://apr.apache.org/download.cgi 

pcre
http://pcre.org/ 

apr은 간단함
$ ./configure --prefix=/usr/local/apr
$ make
$ sudo make install 

aprutil은 apr경로 지정해줘야함
$ ./configure --prefix=/usr/local/aprutil --with-apr=/usr/local/apr
$ make
$ sudo make install 

pcre도 간단함
$ ./configure --prefix=/usr/local/apr
$ make
$ sudo make install 


이제 아파치 소스 디렉토리로 가서 아래처럼 경로를 지정해주자
$ ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/aprutil --with-pcre=/usr/local/pcre --enable-module=so --enable-so
$ make
$ sudo make install


빌드가 완료되었으면 테스트
$  /usr/local/apache2/bin/apachectl -k start
netstat -ntl 해봤을때 80번 포트 열리면 성공 

자동으로 시스템 부팅시 실행되도록 서비스 등록
실행 스크립트를 init.d에 복사한 뒤 update-rc.d 이용
$ sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache
$ sudo update-rc.d  apache defaults


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
지난주 월요일에 면접볼때 합격이든 불합격이든 1주일안에 연락준다고 하더니 열흘이 넘게 지났다.
그냥 불합격이라고 생각하면 편하겠지.

가고싶은곳중 하나였는데 조금 아쉽네 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
졸업을 앞두고있는 요즘.
취업준비생이라는 명함을 들고다니는 백수생활을 하고 있는데
이 취업준비라는 것이 참 힘들다.

사실 내가 뭐 학원다니면서 영어를 공부한다거나 이런건 아니지만
어디를 지원할지 고르는건 내기준에서 정말 힘든 일이다.

취업준비 초기엔 내가 하고싶은일에 남들도 알만한 회사를 생각해 봤는데 네이버나 다음 정도가 떠올랐다.

내가 학교다니면서 휴학중일때 여기저기서 일 해보면서 이 프로그래머라는 직업이 아무곳이나 가서는 정말 몸만 망가지고 내시간은 거의 없겠구나 생각을 했다. SI도 해보고 공기업 계열사에서도 일해봤지만 즐겁진 않았던 것 같다.
그나마 단월드에서 일했을땐 사람들이 너무 좋은분들만 계셔서 참 좋았다고 생각한다. 기회가 된다면 계속 일하고 싶은 마음이었다.

난 역시 즐거운 곳에서 일하고 싶다. 그런데 이런 회사를 찾는건 정말 쉽지 않다. 특히나 프로그래머로서 이런 직장을 찾는 것은 정말 어려운 일이 될 것이다. 그래도 포기는 하지 않을 생각이다.

다음주면 면접을 보는데 잘될거라 생각한다. 난 나를 믿으니까.


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
마영전을 하면서 제일 거슬리는건 역시 캐릭이 속옷이랍시고 입고있는 내복이었는데

이번에 에피소드10 업데이트를 하면서 무기한 이너아머를 판단다

기간제 캐시템을 절대 안사는 주의인 나에게 이너아머는 그냥 구경거리일 뿐이었는데

이번에 질러줘야겠다 

내복파티



내복은 이제 안녕

 


License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License

+ Recent posts