'php'에 해당되는 글 2건

오늘 아침 눈뜨자 마자 갑자기 코딩이 하고 싶어서 일요일인데도 불구하고 6시 10분에 눈이 번쩍 하고 떠졌다.


꿈을 꾼것인지, 뭔지 ... 


어제는 계속 낚시하는 공부만 하다가 잤는데, 눈뜨자마자 그간 미뤄왔던 안드로이드 앱 수정과 그에 맞는 웹호스팅중인 php 코드도 좀 수정을 해야 겠다 마음을 먹고 바로 컴퓨터를 켰다.


오전내내 만들고 수정한것은 사람들이 대체 무엇을 검색하고 왜 검색하는지 다음,네이버 등을 들어가서 일일이 클릭해서 보는게 귀찮아서 내가 보고 싶을때, 사람들이 많이 본 검색어와 뉴스들을 한방에 긁어오는 웹앱을 만들었다. 근데 웹앱으로 만들어두니까, 가독성도 떨어지고, 나중에 저장해뒀다가 보는것이 불편해서 아예 이슈만 저장하는 블로그를 하나 팠다.


한번씩 긁 읽어볼 필요가 있을때, 즐겨찾기 해둔 웹앱을 실행해서 긁어다가 블로그에 넣고 앉아서 클릭 또는 넣어놓고 출퇴근중에 하나씩 보면 꿀같은 휴식을 취할수가 있다.


이런 웹앱 만드는것은 너무나 간단해서 아주 아주 오래전에 만들어뒀던 php 코드를 살짝 수정해서 완성했다.

처음에는 물론 버그가 있어서, 제일처음 글 올린것은 링크가 다 ....깨졌다.


오늘 자기전에 긁어서 저장해놨다가 내일 출근할때 봐야지.


이런 웹앱을 만드는데는 다른 것을 많이 사용하는 것보다 php로 curlsimplehtmldom 라이브러리만 있으면 만들수 있다.


예제 코드를 하나 올려보면 아래와 같이 함수로 하나 만들어두면 글을 긁어올수 있고, simplehtmldom을 사용하여 요소별로 분리할수 있다.





이것을 하고 나니, 오후가 되었는데, 왠지 오늘 코딩빨이 좀 받는 느낌이 들어서, 그간 귀찮아서 미뤄두었던 kpop app 의 업데이트를 위한 서버 작업, 앱 수정 배포도 했다.




생각보다 많은 외국인들이 사용해주고 메일도 주고 해서 업데이트를 빨리 해야지 하고 있었는데, 지난 몇년간 시달림이 있다보니, 이런 여유시간도 많이 없었고, 여유시간에 코딩을 한다는 것 자체가 정말 오랫만이되어버려서 2년인가 4년 만에 코딩을 다시 한 느낌이 든다.


지금 업데이트 올려보니, 그간 구글에서 많은 정책이 바뀌어서 그것 하나 하나 맞춰주느라.. 진땀 뺐다.


그리고 그간 사용하던 도메인하고, 웹호스팅도 다음달부로 만료된다고 해서 그것들도 다 연장하고 결재하고나니 일요일이 휘리릭 다갔네~


그래도 뭔가 그간 화장실 가고 싶은데 못갔던 느낌으로 몇년간 지내다가 이참에 정리해버리니 뭔가 정리된 느낌도 들고, 이제 앱 리뷰 오는거랑 해서 잘 업데이트 하면서 관리좀 해야지~~ 하며 마음을 다 잡았다.



블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

블로그정리중 글 옮김(2009년 3월 26일 글)

 

Apahche + PHP + MySQL을 같이 잘 맞물리게 해서 홈페이지나 사이트를 구축할때 게시판이나 각종 데이터 베이스 처리가 필요 할때, 보다 수월하게 사용할 수 있습니다.

Apache라는 것은 웹서버를 말하는 것인데, 지금 우리가 접할 수 있는 거의 대부분의 웹서버에서는 아파치를 사용하고 있습니다. 아파치는 1.X버전과 2.X버전 두가지 부류로 나뉘어 지는데, 그 설치 방법과 운영방법이 크게 다르기 때문에 설치 방법이나 운영방법에 대해서 잘 익힌 다음에 설치 하도록 해야 됩니다.
http://www.apache.org

PHP는 펄이나 CGI 프로그램 처럼 서버에서 정해진 작업을 한 다음에 클라인언트로 그 결과를 보내주는 언어 입니다. 그 사용방법이나 구조등이 C언어와 유사하기 때문에 많은 CGI프로그래머들이 PHP로 방향을 전환하게 되었고, 지금은 아주 많은 분야에서 사용되고 있습니다. 쇼핑몰의 구축이나 데이터 베이스등의 관리 여러가지 작업을 할 수 있는 반면 사용법이 아주 쉽기 때문에 널리 확산되었습니다.
http://www.php.net

MySQL은 데이터 베이스를 처리하는 프로그램입니다. 
http://www.mysql.com

그러면 위의 세가지 프로그램을 연동 시켜 보기로 합시다.
첫번째는 Apache 1.3.XX + PHP + MySQL 방법에 대해서 이야기 해보겠습니다.

MySQL은 아파치의 버전에 상관없이 그냥 설치 해도 됩니다.

MySQL의 설치 방법

1.다운로드
MySQL 사이트에서 Stable Version 소스 코드를 다운로드 합니다.(예:mysql-4.0.13.tar.gz)

2.Linux Box의 적당한 디렉토리에 저장해둡니다.(예;/var/tmp)

3.tar과 gunzip로 패키징 되어 있는 파일이므로 압축을 해제합니다.
  어떤 파일인지 확실히 확인해 보시기 위해서는 "file 파일명" 명령으로 확인해보시면 됩니다.
  [root @linux]#pwd   --> 현재 디렉토리 확인
  /var/tmp

  [root @linux]#ls    --> 어떤 파일이 있는 지 확인
  mysql-4.0.13.tar.gz

  [root @linux]#tar xvfz mysql-4.0.13.tar.gz --> 압축해제
  ..................
  ..................
  ..................

  [root @linux]#ls
  mysql-4.0.13      mysql-4.0.13.tar.gz  ---> 새로운 디렉토리가 생겼음

  [root @linux]#cd mysql-4.0.13 --> MySQL의 소스파일이 있는 디렉토리로 이동.

4. 컴파일을 하기 위한 환경파일 Makefile들을 생성합니다.
  [root @linux]#./configure --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/DB
  make라는 유틸리티를 이용해서 컴파일 하기 때문에 make환경설정을 해주어야 됩니다.
  --prefix= 은 컴파일 후에 설치할 디렉토리를 지정하는 것입니다.(/usr/local/mysql이라는 디렉토리에 설치)
  --with-charset=euc_kr 어떤 문자셋으로 설정 할 것인지 지정합니다.(euc_kr :한국어)
  --localstatedir=/DB   데이터 베이스 파일들을 어디에 저장할 것인지를 지정합니다.(/DB라는 디렉토리에 저장.)
  이것은 일반적인 방법이고 좀더 다양한 옵션들을 지정해 줄 수도 있습니다.
  그것들에 대한 설명은 MySQL 문서들을 참고 하시면 됩니다.
  프렌존 서버는 다음과 같은 옵션으로 컴파일 되어있습니다.
  --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/DB

  성공적으로 작업이 끝나면 감사 메세지가 나옵니다. 안나오면 비정상이므로 다시 한번 확인해주시길 바랍니다.

5.make를 이용한 컴파일 및 설치
  [root @linux]#make --> 컴파일 합니다.
  [root @linux]#make install --> 설치 합니다.
  [root @linux]#cd /usr/local/mysql 
  파일이 다 만들어 져 있으면 일단 컴파일 및 설치는 끝난것입니다.

6.mysql 사용자 추가
  MySQL은 root권한으로 돌아가지 않고 mysql user의 권한으로 돌아가게 됩니다. 그렇기 때문에 시스템에 mysql이라는 사용자를 추가하고 패스워드를 설정해야 됩니다.
  최대한 어려운 패스워드를 설정해두면 나중에 보안상의 문제를 조금이나마 막을 수 있습니다.
  [root @linux]#useradd mysql -->사용자 추가(로그인 쉘등을 지정해서 로그인이 안되도록 설정해두는것도 좋습니다.)
  [root @linux]#pass mysql -->패스워드 설정.
  New password:
  
7.데이터 베이스가 저장되는 디렉토리의 소유자 및 그룹을 mysql로 변경.
  [root @linux]#chown -R mysql:mysql /DB --> /DB에 파일을 저장하기로 했으므로, 그 소유자와 그룹을 mysql로 설정합니다.

8.MySQL기본 권한 테이블을 설정
(스크립트가 제공 되기 때문에 한번 만 실행 시켜 주면 됩니다.)
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysql_install_db --> 때로는 scripts라는 디렉토리 밑에 있는 경우도 있습니다.

9.데이터 베이스 데몬을 실행
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysqld_safe & --> 백그라운드로 데몬을 실행 시킵니다.
  [root @linux]#ps -ef | grep mysqld --> 실행이 잘 되고 있는 지 확인.
  mysql      768   738  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      770   768  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      771   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      772   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      773   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      774   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      779   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      780   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      781   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      782   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  
  만약에 실행이 되지 않고 에러가 나온다면 /DB 디렉토리로 이동해서 error 로그 파일을 열어보시면, 그 원인이 적혀 있습니다.
  읽어보신 후에 적절한 조치를 취해주시면 됩니다.

10.MySQL 관리가 패스워드 설정
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysql -u root
  mysql>SET PASSWORD for root=password('password');
  mysql>exit


PHP 설치
다음 단계는 Apache 1.3.XX 버전을 사용하기로 했기때문에 PHP와 연동을 위해서 Apache의 환경 설정을 먼저 한번 해주어야 됩니다.

[root @linux]#cd /var/tmp/apache-1.3.XX
[root @linux]#./configure --prefix=/usr/local/apache


이제는 PHP의 소스코드가 있는 디렉토리로 이동하여 컴파일을 해주면 됩니다.

[root @linux]#cd /var/tmp/php-4.3.2
[root @linux]#./configure --prefix=/usr/local/php --with-apache=/var/tmp/apache-1.3.XX --with-mysql=/usr/local/mysql --with-language=korean --with-charset=euc_kr --with-config-file-path=/usr/local/apache/conf --enable-track-vars=yes
[root @linux]#make
[root @linux]#make install 

 PHP설치 끝입니다.(PHP는 모듈로 아파치에 같이 들어 가게 되므로, 실행 할 필요가 없습니다.)

APACHE 설치

[root @linux]#cd /var/tmp/apache-1.3.XX
[root @linux]#./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --> php 연동을 위한 것입니다.
 [root @linux]#make
 [root @linux]#make install

Apache 설치 끝입니다.

환경설정 및 실행
PHP 소스 디렉토리에 보면 php.ini-XXXXX라는 파일들이 있습니다. 이중에서 php.ini-recommended 라는 파일을 apache의 conf라는 디렉토리에 php.ini라는 파일로 복사합니다.Apache의 conf 디렉토리를 보면 httpd.conf라는 파일이 있습니다. 그 파일을 자신의 환경에 맞게 설정해주면 됩니다.

AddType application/x-httpd-php .php .php3 .php4 .phtml .html
AddType application/x-httpd-php-source .phs .phps

이 부분을 httpd.conf에 추가 해줍니다. (Add for PHP라는 부분이 있을 것입니다.)

이제 모든 준비가 끝났습니다.
아파치만 실행 시키면 여러분의 박스에는 APM연동이 끝난 웹서버가 돌아가게 될것입니다.
실행은 다음과 같은 명령으로 할 수 있습니다

[root @linux]#/usr/local/apache/bin/apachectl start --> 시작
[root @linux]#/usr/local/apache/bin/apachectl stop --> 정지
[root @linux]#/usr/local/apache/bin/apachectl restart --> 새로 시작.


서버가 부팅 될때마다 Mysql과 Apache를 실행 시킬 수 있게 하시려면, /etc/rc.d/rc.local이라는 파일에 실행 명령을 추가 해주면 됩니다.

[root @linux]#vi /etc/rc.d/rc.local
#MySQL Start
cd /usr/local/mysql
./bin/mysqld_safe &
#Apache Start
/usr/local/apache/bin/apachectl start &




APACHE 2.0.XX 버전사용시
MySQL은 설치 해둔 상태에서 위의 방법과는 다르게 Apache를 설치 합니다.(PHP를 수동으로 적재)

[root @linux]#cd /var/tmp/apache-2.0.XX
[root @linux]#./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=all --enable-modules=shared --with-mpm=threadpool
[root @linux]#make
[root @linux]#make install

이제는 PHP를 설치 합니다.

[root @linux]#cd /var/tmp/php-4.3.2
[root @linux]#CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient"
[root @linux]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --enable-track-vars=yes --with-language=korean --disable-debug --with-charset=euc_kr --enable-modules=so --enable-trans-sid --with-config-file-path=/usr/local/apache2/conf 
[root @linux]#make
[root @linux]#make install

PHP의 컴파일 방법이 조금 달라 진것이 보이 실 것입니다.
이렇게 해두면 수동으로 모듈을 적재 시킬 수 있게 됩니다.

환경 파일은 apache의 httpd.conf만 수정해주면 됩니다. 위에서 한 작업과 동일합니다.
물론 php.ini파일은 conf디렉토리로 복사해 주셔야 됩니다.

httpd.conf 수정

LoadModule php4_module        modules/libphp4.so 
AddType application/x-httpd-php .php .php3 .php4 .phtml .html
AddType application/x-httpd-php-source .phs .phps



 

블로그 이미지

rekun,ekun 커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?