개발2013.06.03 15:46



 오래간만에 PHP 로 작업을 하다보니. 별것 아닌것에 헤매는 경우가 좀 있습니다.


요즘 XE  모듈을 하나 만들고 있는데 디버깅하거나 에러 로그같은걸 보는것도 간단치 않네요.



그중에 XE 모듈에서 뷰화면을 위해   some.view.admin.php  파일을 만들을 만들어서 실행시키는 데 아래와 같은 에러가 발생합니다.





페이지에 코딩에러 문제 인가 해서 찾아봤는데도 특별한 문제가 없었는데. 인터넷을 뒤져 보니 DisplayHandler.class.php 에 $this->gz_enabled = false를 해주라는 얘기가 있더군요.  물론 그렇게 해도 에러가 발생하지 않는데 뭔가 이상했습니다.


그래서 좀더 찾아보니  php 작성시 <?php  ...내용... ?>  이렇게 작성할때  ?> 뒤에 빈 공간등이 있으면 그런 문제가 발생한다는 얘기가 있더군요.    그래서 (?>) 뒷부분을 보니 줄바꿈이 있어서 제거를 하니 에러 없이 잘 나왔습니다.


그래서 여기서 이러한 불편한 문제를 위해  php 문법에서는 순수 php 파일인 경우 굳이 ?>로 닫지 않아도 되도록 하고 있었습니다.   ?> 뒤에 문자가 들어가서 뜻 하지 않은 내용이 전송되거나 하는것을 막기위해   ?> 없는경우에는 파일의 끝에 다다르면 자동으로 php 영역의 끝으로 보는거죠.


아래 php 사이트에 있는 기본 문법내용입니다. 제가 빨갛게 테두리 친 부분을 보면 그런 얘깁니다.



http://www.php.net/manual/en/language.basic-syntax.phptags.php




그래서  XECore 소스를 내려 받아 살펴보면 class.php, view.php 파일들에 ?> 로  굳이 닫지 않고 있습니다. 


괜히 열심히 닫다가 에러만 유발 시키는 것보단 확실하죠.



Posted by 퍼니로거 즐건록
TAG php, xe





우분투 환경에서  XE(XpressEngine)  설치하려면 사전에 필요한 패키지들이 몇 있습니다.


관련한 명령들만 간결하게 준비 정리해봅니다.



1)먼저 관리자용 사용자 id생성 (예 xeadmin),  그리고 원하는 유저를 admin그룹에 추가하면됨


#useradd xeadmin


2) 해당 관리자용 id를 sudo가능 사용자로 등록


#visudo

위 이용해 /etc/sudoers 파일에  다음 줄 추가(이미 넣어져 있을 수 있음)

#==================
%admin ALL=(ALL) ALL
#==================

 그리고 원하는 유저를 admin그룹에 추가.

#usermod -G admin  <userid>  



이제 부터는 앞서 만든 관리자아이디(xeadmin) 로 로그인 후 작업

3) apache2 설치

$sudo apt-get install apache2 

# 아래 모듈이 설치되지 않으면  XE DB 설정화면이 넘어가지 않은 현상 발생.
$sudo apt-get install libapache2-mod-auth-mysql

4) php5 설치

$sudo apt-get install php5
$sudo apt-get install libapache2-mod-php5
$sudo apt-get install php5-mysql

4-1) php5 용 GD 라이브러리 설치 (XE에서 이미지 변환용)
$ sudo apt-get install php5-gd

5) mysql 설치  (여기서  mysql root의 비밀번호 설정한다)
$ sudo apt-get install mysql-server




6) XE를 위한 mysql DATABASE 준비

$mysql -u root -p 


DB 생성

 

mysql> create database <db명> default character set utf8 default collate utf8_general_ci;


 User 생성및 권한 부여 

mysql> create USER '<유저id>'@'localhost' IDENTIFIED BY '<암호>';

mysql> GRANT ALL PRIVILEGES ON *.* TO '<유저id>'@'localhost' WITH GRANT OPTION;

mysql> use mysql

mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES('localhost','<db명>','<유저id>','Y','Y','Y','Y','Y','Y');

mysql> FLUSH PRIVILEGES; 


http://www.xpressengine.com/download  에  최신 XECore.zip 파일 다운로드 후 압축해제

필요시 XECore 압축해제 경로에 권한 부여 

$chmod -R 777  xe


 /etc/apache2/sites-available/default   파일에서  DocumentRoot 에  XE 압축해제 경로 지정 
 
그리고 apahce2 재시작 

$sudo service apache2 restart


웹브라우져로 접속 후 XECore Setup 진행


Posted by 퍼니로거 즐건록