리눅스에서 개발서버를 돌리지만, 로컬에서의 개발환경이 있어야 생산성을 확보할 수 있다.  


1. apmsetup 7 버전을 특정 위치에 설치한다.  (내 위치는 C:\APM_Setup)
http://www.apmsetup.com/

이 때 주의할 점은 잘 모르면, cubrid db를 반드시 설치해야 한다.
로컬 pc에 cubrid db를 설치안하면 cubrid 연동이 안되서 어제 고생좀 했는데. 그 이유는 바로 php_cubrid.dll 이 로딩되기 위해서는 의존하는 cubrid window version의 DB의 cascci.dll 파일이 있어야 한다. 이 파일은 cubrid db를 설치할 때 생성되는 거라, 인터넷에서는 다운받기 힘들다. 만약 cascci.dll 파일이 있으면 cubrid db를 설치안해도 된다. cascci.dll 파일을 apache가 설치된 경로의 bin 디렉토리나 window의 system32 디렉토리안에 두어야 한다. 

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\\APM_Setup\\Server\php5\\ext\\php_cubrid.dll' - %1\xc0\xba(\xb4\xc2) \xbf\xc3\xb9\xd9\xb8\xa5 Win32 \xc0\xc0\xbf\xeb \xc7\xc1\xb7\xce\xb1\xd7\xb7\xa5\xc0\xcc \xbe\xc6\xb4\xd5\xb4\xcf\xb4\xd9.\r\n in Unknown on line 0


http://www.cubrid.com/zbxe/56862
http://www.cubrid.com/zbxe/160377#comment_161268

그러면, apache-php  연동이 된다. apmsetup 모니터를 보고 mysql 데몬을 내린다.



C:\APM_Setup\php.ini 파일을 보면,  php cubrid interface dll 파일 (php_cubrid.dll
) 로딩에 대해서 주석이 되어 있다.

;extension=php_cubrid.dll

그리고,  C:\APM_Setup\Server\PHP5\ext 디렉토리에 dll 파일이 있는 지 확인한다.



2. php-cubird 연동

C:\APM_Setup\php.ini 파일을 보면,  php cubrid interface dll 파일(php_cubrid.dll
) 에 대한 주석을 해제한다.

extension=php_cubrid.dll


그리고, 아파치 재시작을 하고 나서, 다음 php 정보를 보는 화면에서 cubrid로 검색해본다.

http://127.0.0.1/?page=phpinfo



이러면 완전 ok


3. xe (express engine)를 설치한다.

http://www.xpressengine.com 에 접속해서 xe core를 다운받고 C:\APM_Setup 밑의 xe 디렉토리에 설치한다.

아파치 설정 파일 "C:\APM_Setup\Server\Apache\conf\httpd.conf" 파일에서

DocumentRoot "C:/APM_Setup/htdocs"  를

DocumentRoot "C:/APM_Setup/xe"  로 수정하고 아파치를 재시작한다.


4. xe를 설치한다.

http://localhost 에 접근한다.



cubrid db를 선택한다.



리눅스 서버에서 접속해서 db를 하나 생성한다.

/opt/cubrid/bin 디렉토리에서 cubrid createdb windowtest 하면 windowtest 라는 논리 db가 만들어진다.

그리고, vi /opt/cubrid/conf/cubrid.conf 파일에서 server=test,windowtest 를 수정하여 windowtest 라는 논리 db가 cubrid db가 런치될 때마다 접근할 수 있게 한다.

사용자를 추가한다.

$ csql -C -u dba test

csql> create user root password 'root'

csql> commit

csql> select * from db_user;
확인


새로만든 계정으로 접근해본다.

$ csql -C -u root

패스워드는 위에서 적은 root ...
이 정보를 가지고 xe 설정에 넣어주면 끝.


그리고, 다시 xe 설치 화면으로 돌아가서 진행하면 된다.






'scribbling' 카테고리의 다른 글

Apache Con 2011 자료  (0) 2011.11.15
전자기파 측정을 통해서 얻는 생활의 지혜  (0) 2011.11.07
Socket.io 설치 와 간단 사용  (0) 2011.11.02
websocket #4 (웹소켓의 한계)  (1) 2011.11.02
websocket #3  (0) 2011.10.31
Posted by '김용환'
,


블로그에 작성한 1.5.0.4-beta서버 설치 방법과 비슷하다.


XE 1.5.0 beta 버전의 UI는 아직 익숙치 않고, 어디에 무엇이 있는지 전혀 모르겠음.. 다시 UI를 1.4대로 바꾸는 게 나을 것 같아..

1.4.5.10으로 설치하는 것으로 하고, cubrid 연동하는 것에 대한 설치 문서이다.




ubuntu 에서 가장 먼저  큐브리드 8.4을 설치해야 하고, test 라는 DB를 만든다.
(큐브리드는 버전에 영향을 받으니. 늘 버젼을 기억해야 한다. 하위 호환성을 절대 생각하면 안됨.)

 

$  sudo add-apt-repository ppa:cubrid/cubrid-8.4.0

$  sudo apt-get update

$ sudo apt-get install cubrid


http://www.cubrid.com/zbxe/152840 에 보면. 그 다음 synaptic package manager를 실행하고 재설치하라고 해서.. 재설치해 본다.

 


cubrid를 검색한다.

 

 

다시 설치 표시를 하고 난다 . 또는 설치를 선택한다.


php5-cubrid를 설치하지 말자, 꼬일 수 있다.


툴 바에 있는 Apply를 선택을 하면 아래 창을 뜨면서  설치를 진행할 것인지 묻는다. 설치를 진행한다.

image007.png 


시냅틱 꾸러미 관리자를 사용하고 나면 반드시 종료해야한다. apt-get을 하려다가 시냅틱 꾸러미 관리자가 사용한 lock때문에 진행이 안될 수 있다.


$ vi /home/kimyonghwan/.bashrc

   .   /etc/profile.d/cubrid.sh  추가



$  source /home/kimyonghwan/.bashrc

$ cubrid createdb test
    512.0M 크기의 데이터베이스 생성 중.

     CUBRID 2008 R4.0

 
$ cubrid service start
@ cubrid master start
++ cubrid master (이)가 수행되고 있습니다.
@ cubrid broker start
++ cubrid broker (이)가 수행되고 있습니다.
@ cubrid manager server start
cubrid manager server is not installed.






데몬이 정상적인지 확인 한다. 잘 되고 있다.

 


   /opt/cubrid/bin 디렉토리에서 db를 생성한다.

$ cubrid createdb test




$ cubrid server start test
@ cubrid server start: test

This may take a long time depending on the amount of recovery works to do.

CUBRID 2008 R4.0

++ cubrid server start: success


$ cubrid server status
@ cubrid server status
 Server test (rel 8.4, pid 5606)


$ ps -ef | grep 5606
1000      5606     1  0 10:48 ?        00:00:00 cub_server test
1000      5829  1874  0 10:49 pts/0    00:00:00 grep --color=auto 5606



 

그 다음은 XE에서 cubrid를 쓸 수 있도록 php-cubrid integration library(so)가 필요하다.  (내용을 읽다보면, 이 방법이 안통할 수 있다. 따라서, apt-get 방식을 사용해야 한다. 아래 내용을 다볼 것!!!)

http://www.cubrid.org/php_api_for_cubrid 에 접속


이 중에서 CUBRID 8.4.0, PHP 5.3.x를 선택하고, CUBRID-PHP5-5.3-LINUX-X86-8.4.0.0003.bin.zip을 클릭

그러면, 다음 주소로 연결된다.

http://sourceforge.net/projects/cubridinterface/files/PHP/PHP%20Driver/CUBRID%208.4.0/Linux/CUBRID-PHP5-5.3-LINUX-X86-8.4.0.0003.bin.zip/download


zip 파일을 /var/www/에 설치후, php5 lib 폴더로 이동한다. php가 로딩하면서 so 파일을 읽어서 작동되게 하기 위함이다.

$ sudo mv /var/www/cubrid.so /usr/lib/php5/20090626+lfs/


 

그리고, php.ini 파일을 수정하고 아파치 서버를 재시작한다.

$ vi /etc/php5/apache2/php.ini

[CUBRID]
extension=cubrid.so



$ sudo service apache2 restart





그러나 에러로그 보니. cubrid 라이브러리 로딩 실패..

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/cubrid.so' - /usr/lib/php5/20090626+lfs/cubrid.so: undefined symbol: executor_globals_id in Unknown on line 0

음. 이거 머냐.. so 파일에 심볼하나가 없다..ㅡ.ㅡ;;





그냥 cubrid 공식 페이지에 있는 apt-get을 이용해서 ubuntu php-cubrid 설치 방법 선택한다.


 

$ sudo rm /usr/lib/php5/20090626+lfs/cubrid.so

$ sudo apt-get install php5-dev
$ sudo apt-get install php-pear
$ sudo pecl install cubrid
$ sudo pecl install cubrid-8.4.0.0003

설치 위치를 물어볼 때. /opt/cubrid 로 선택



다음과 같은 내용이 나오고, cubrid.so파일을 잘 저장했다고 나온다.
 

Build process completed successfully
Installing '/usr/lib/php5/20090626+lfs/cubrid.so'
install ok: channel://pecl.php.net/CUBRID-8.4.0.0003
configuration option "php_ini" is not set to php.ini location
You should add "extension=cubrid.so" to php.ini


다시 한번 확인하고, 아파치 재실행

$ cat /etc/php5/apache2/php.ini

[CUBRID]
extension=cubrid.so


$ sudo service apache2 restart






아파치 에러 로그에 deprecated는 되지만.. 큰 문제는 없다. 그대로 진행

[

Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBCubrid.class.php on line 682, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBCubrid.class.php on line 735, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBFirebird.class.php on line 710, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMssql.class.php on line 552, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMssql.class.php on line 596, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMysql.class.php on line 460, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMysql.class.php on line 487, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBPostgresql.class.php on line 587, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBPostgresql.class.php on line 621, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite2.class.php on line 436, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite2.class.php on line 467, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite3_pdo.class.php on line 465, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite3_pdo.class.php on line 502, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

 
phpinfo로 cubrid가 제대로 설치되었는지 확인한다.


이렇게만 따라오면, xe 설치에서 DB를 cubrid로 선택할 수 있다.


터미널에서 cubrid 의 db와 계정을 만들어야 한다.

cubrid 서버를 실행할때 함께 띄우는 db를 지정하고, cubrid 서버를 재시작한다.

$ vi /opt/cubrid/conf/cubrid.conf

# server=foo,bar

이렇게 되어 있는 설정을 아래와 같이 수정 (아까 위에서 test라는 db를 만들었었다.)

server=test

 

$ sudo cubrid server restart


kimyonghwan@kimyonghwan-desktop:~$ csql test

 CUBRID SQL 수행기


도움말 메시지를 보려면 ';help' 명령어를 입력하세요.

csql>




csql 이라는 명령어를 이용해서 test 라는 db에 잘 접근했다.


xe 설치화면에서 cubrid DB 설정에서 admin 계정으로 접근하면 그냥 더이상의 진전이 안된다.


그래서, 오류 메시지가 잘 나오는 큐브리드 쿼리 브라우져를 이용하였다. 윈도우에 설치하고, ubuntu에 설치된 cubrid db에 접근해보았다.





xe 설정에서 admin계정으로 접근하니. 165 에러 발생


검색해보니. 계정에러이다.

4, Error Code:-165
"User "aaa(user name)" is invalid
- 원인 및 확인 사항:
1) aaa(user name) user가 없는 경우

   

윈도우에 큐브리드 DB 를 설치할 때는 admin /admin 으로 접속 가능했지만, 리눅스는 따로 계정을 만들어야 한다.


$ csql -C -u dba test

 CUBRID SQL 수행기


도움말 메시지를 보려면 ';help' 명령어를 입력하세요.

csql> create user root password 'root';

csql> commit

csql> select * from db_user;

 
만들어진 root 계정으로 접속하면, 잘 접근이 된다.

$csql -C -u root test


 

사용자 등록을 마치고 나서 XE DB  &관리자 정보 입력 에 정보만 잘 지정하면 된다.



db : test
사용자 이름 : root
비밀번호 : root
ip : 192.168.56.102
port : 30000

이렇게 입력하고 등록 버튼을 누른다.



 

 







큐브리드 쿼리 브라우저를 통해서 보면.. 아래와 같이 잘 table이 만들어졌는지 확인가능하다.

Posted by '김용환'
,


현재는 베타버전이라 약간 이슈가 있는 버전이지만, 1.5.0 정식 릴리즈가 되면 쓸만해질 것 같다.
생전 처음 XE를 설치해봤다.

apmsetup을 사용하면 된다고 하는데.. 서버가 문제가 있다.. 흘 ㅡ.ㅡㅔ;





알아서, apache/php 설치를 해야겠다.

sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart

sudo chown kimyonghwan.kimyonghwan /var/www

cat > /var/www/index.php
<?php
phpinfo();
?>



설치를 확인한다.


xe core를 다운받기
http://www.xpressengine.com/index.php?mid=download&category_srl=18322907&package_srl=18325662
에서 download 해서 zip 파일 다운 받기

그리고, /var/www/ 밑에 extract하면, /var/www/xe 디렉토리가 생긴다. (beta버전에서는 하나의 파일때문에 extract하면서 문제가 생긴다.. 리눅스 사용자들은 알아서 잘 설치하게 한다.)

웹  브라우져에서 http://locahost/xe 로 테스트해 본다.



첫번째 라이선스 동의에서 승인하고 나면, 설치 조건 확인에서 퍼미션 문제가 나는 것을 발견할 수 있다.

내 계정에 맞게 권한을 넣어준다. 

sudo chown kimyonghwan.kimyonghwan /var/www

sudo chmod 707 /var/www/xe




 


이번에는 GD 라이브러리에서 "불가능"이라는 것이 되어 있다.

gd 라이브리를 설치하고 아파치 서버를 재시작한다.

 

sudo apt-get install php5-gd

sudo /etc/init.d/apache2 restart



설치 웹 화면을 refresh하면 다음과 같이 더 이상의 "불가능"은 없고, 계속 설치를 진행하면 된다.


다음 화면은 "DB 정보 입력"이다.
mysql로 선택해도 진행해도 DB가 설치되지 않아서 더이상 진행되지 않는다.


php와 mysql 연동하는 library가 없었던 것임. (apache의 debug 로그 레벨을 내려도 안보였음. ㅡ.ㅡ;;;)

해당 라이브러를 설치하고, 아파치를 재시작한다.


sudo apt-get install php5-mysql

sudo /etc/init.d/apache2 restart



웹 설치화면에서 "다음"을 선택하면 상세 정보를 넣을 수 있다.


 

이젠 mysql을 설치한다.

sudo apt-get install mysql-server


   여기서 root 패스워드를 잘 입력한다.

 ps -ef | grep mysql 로 확인가능..


DB에 접속해서  test 라는 database를 선택해서 xe가 사용할 테이블을 저장하게 한다.

mysql -uroot -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql>



화면에서 "다음"을 선택하면 다음 화면으로 진행된다.

 


관리자 로그인 정보 잘 넣고 설치를 완료한다. (이메일, 패스워드)

그리고, 나면, 로그인을 해본다.



잘 된다... 아직 beta라 그런지. 로그인했는지. 좌측 로그인 UI에서는 로그인을 인식못하긴 한다..
정식버전이 나오면 고쳐질 것이라 생각된다.




 

xe는 apache rewrite를 써야 그나마 쓸만해 진다. 설치디렉토리/.htaccess에 관련 정보들이 들어가 있다.

sudo cp  '/etc/apache2/mods-available/rewrite.load' '/etc/apache2/mods-enabled/'


 

/etc/apache2/apache2.conf 파일 수정

RewriteEngine   On


<Directory /var/www/xe>
    AllowOverride All
</Directory>




 

sudo /etc/init.d/apache2 restart


 



끝.

Posted by '김용환'
,