편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
{{테스트| | {{테스트|리눅스, PHP 5.2.10, PHPExcel 1.7.7}} | ||
;PHPExcel 설치 | ;PHPExcel 설치 | ||
;PHPExcel 시작하기 | ;PHPExcel 시작하기 | ||
<img src='http://download-codeplex.sec.s-msft.com/Download?ProjectName=phpexcel&DownloadId=65397&Build=20798' width='150px' /> | |||
==다운로드== | ==다운로드== | ||
*http://phpexcel.codeplex.com/ 접속 | *http://phpexcel.codeplex.com/ 접속 | ||
*[Download] 클릭하여 | *[Download] 클릭하여 다운로드 | ||
*PHPExcel-1.7.9.zip 압축해제 | |||
:내부에 Classes, Documentation, Examples 폴더가 있다. | |||
==설치== | ==설치== | ||
* | *웹서버의 DOCUMENT_ROOT 폴더 아래에 PHPExcel 폴더 생성 | ||
*Classes, Documentation, Examples 폴더를 방금 생성한 PHPExcel 폴더로 업로드 | |||
*웹브라우저에서 http://서버주소/PHPExcel/Examples/01simple.php 접속 | |||
* | |||
== | ==실행예시 (오류)== | ||
브라우저에서 위 주소대로 접속해보니 다음과 같은 오류 메시지가 나온다. | |||
<source lang='text'> | |||
16:00:25 Create new PHPExcel object | |||
< | 16:00:25 Set document properties | ||
16:00:25 Add some data | |||
16:00:25 Rename worksheet | |||
16:00:25 Write to Excel2007 format | |||
Warning: unlink(/var/www/html/PHPExcel/Examples/01simple.xlsx) [function.unlink]: Permission denied in /var/www/html/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php on line 214 | |||
== | Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Could not close zip file /var/www/html/PHPExcel/Examples/01simple.xlsx.' in /var/www/html/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php:348 Stack trace: #0 /var/www/html/PHPExcel/Examples/01simple.php(88): PHPExcel_Writer_Excel2007->save('/var/www/html/P...') #1 {main} thrown in /var/www/html/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php on line 348 | ||
</source> | |||
:→ Permission denied 가 나왔다. Examples 폴더에 엑셀 파일을 저장하려는 데 권한이 없는 것이다. | |||
==폴더 권한 조정== | |||
[[httpd]]<ref>보다 정확하게는 httpd를 실행한 리눅스 계정</ref>에게 해당 폴더의 쓰기 권한이 없기 때문에 오류가 발생한다. | [[httpd]]<ref>보다 정확하게는 httpd를 실행한 리눅스 계정</ref>에게 해당 폴더의 쓰기 권한이 없기 때문에 오류가 발생한다. | ||
< | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# ps -ef | grep httpd | grep -v grep | ||
root 1750 1 0 Jun13 ? 00:00:00 /usr/sbin/httpd | root 1750 1 0 Jun13 ? 00:00:00 /usr/sbin/httpd | ||
apache 6874 1750 0 Jun19 ? 00:03:56 /usr/sbin/httpd | apache 6874 1750 0 Jun19 ? 00:03:56 /usr/sbin/httpd | ||
111번째 줄: | 48번째 줄: | ||
apache 25934 1750 0 Jun20 ? 00:02:20 /usr/sbin/httpd | apache 25934 1750 0 Jun20 ? 00:02:20 /usr/sbin/httpd | ||
apache 29616 1750 0 Jun18 ? 00:04:32 /usr/sbin/httpd | apache 29616 1750 0 Jun18 ? 00:04:32 /usr/sbin/httpd | ||
</ | </source> | ||
:→ 최초 구동은 root가 했지만, 실제로 사용자의 요청을 받아 PHP 명령어를 수행하는 계정은 apache이다. | :→ 최초 구동은 root가 했지만, 실제로 사용자의 요청을 받아 PHP 명령어를 수행하는 계정은 apache이다. | ||
< | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# cd /var/www/html/PHPExcel | ||
drwxr-xr-x | [root@jmnote PHPExcel]# ll | ||
</ | total 8 | ||
:→ | drwxr-xr-x 3 root root 4096 Jun 22 16:39 Classes | ||
drwxr-xr-x 4 root root 4096 Jun 22 16:40 Examples | |||
</source> | |||
:→ Examples 폴더의 퍼미션이 [[755]]이고, owner가 root이므로 apache 계정을 파일을 쓸 수 없는 상태이다. | |||
< | <source lang='dos'> | ||
[root@ | [root@jmnote PHPExcel]# chown apache:apache Tests | ||
</source> | |||
:→ Examples 폴더의 소유자를 apache로 바꾸었다. | |||
</ | |||
:→ | |||
==실행예시 (성공)== | ==실행예시 (성공)== | ||
이제 브라우저로 다시 접속(또는 새로고침)해보자. | |||
< | <source lang='text'> | ||
15:58:26 Create new PHPExcel object | |||
</ | 15:58:26 Set document properties | ||
15:58:26 Add some data | |||
15:58:26 Rename worksheet | |||
15:58:26 Write to Excel2007 format | |||
15:58:26 File written to 01simple.xlsx | |||
Call time to write Workbook was 0.0275 seconds | |||
15:58:26 Current memory usage: 7.5 MB | |||
15:58:26 Write to Excel5 format | |||
15:58:26 File written to 01simple.xls | |||
Call time to write Workbook was 0.0347 seconds | |||
15:58:26 Current memory usage: 10.5 MB | |||
15:58:26 Peak memory usage: 10.5 MB | |||
15:58:26 Done writing files | |||
Files have been created in /var/www/html/PHPExcel/Examples | |||
</source> | |||
:→ 오류 없이 정상적으로 수행되었다. | :→ 오류 없이 정상적으로 수행되었다. | ||
:→ /var/www/html/PHPExcel/Examples 폴더에 파일이 생성되었다고 한다. | |||
다음과 같이 xlsx파일이 생성되었음을 확인할 수 있다. | |||
< | <source lang='dos'> | ||
[root@ | [root@jmnote PHPExcel]# cd Examples | ||
-rw-r--r-- 1 apache apache | [root@jmnote Examples]# ll 01simple.* | ||
</ | -rw-r--r-- 1 root root 4412 Oct 16 23:50 01simple.php | ||
-rw-r--r-- 1 apache apache 4608 Oct 16 23:58 01simple.xls | |||
-rw-r--r-- 1 apache apache 6371 Oct 16 23:58 01simple.xlsx | |||
</source> | |||
== | ==결과물== | ||
01simple.xlsx을 열어보니 내용은 다음과 같았다. | |||
{{엑셀 행| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8}} | |||
{{엑셀 열| A | B | C | D}} | |||
{{엑셀 데이터 | |||
| {{!}} Hello {{!!}} {{!!}} Hello {{!!}} | |||
| {{!}} {{!!}} world! {{!!}} {{!!}} world! | |||
| {{!}} {{!!}} {{!!}} {{!!}} | |||
| {{!}} Miscellaneous glyphs {{!!}} {{!!}} {{!!}} | |||
| {{!}} éàèùâêîôûëïüÿäöüç {{!!}} {{!!}} {{!!}} | |||
| {{!}} {{!!}} {{!!}} {{!!}} | |||
| {{!}} {{!!}} {{!!}} {{!!}} | |||
| {{!}} Hello World {{!!}} {{!!}} {{!!}} | |||
}} | |||
==주석== | ==주석== | ||
<references/> | <references/> | ||
[[분류: | [[분류: PHP]] | ||
[[분류: | [[분류: 엑셀]] |