라이믹스/매뉴얼/설치 환경: 두 판 사이의 차이

imported>Gaon12
편집 요약 없음
Gaon12 (토론 / 기여)
m Gaon12님이 라이믹스/사양 문서를 라이믹스/매뉴얼/설치 환경 문서로 이동했습니다: 문서명 통일
 
(사용자 2명의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==라이믹스?==
== 개요 ==
* [[라이믹스]]에 대해 알아보고 싶다면 [[라이믹스]] 문서를 참고하자.
[[라이믹스]]를 설치하고 운영하기 위해 필요한 시스템 요구사항을 정리한 문서입니다. 기본적으로 웹 서버(예: Apache, Nginx) 같은 필수 요소는 당연히 있어야 하니 여기선 생략했습니다.<ref>웹 서버가 없으면 PHP 파일을 실행할 수 없기 때문.</ref>


==요구사양==
== 퍼미션 ==
* 라이믹스에서 요구하는 사양에 대해 알아보자.
라이믹스 설치 루트 폴더 안의 '''files''' 폴더 퍼미션은 707 또는 777로 설정해야 합니다. 설치 경로에 쓰기 권한이 있으면 설치 중 자동으로 files 폴더가 생성되지만, 권한이 없으면 직접 폴더를 만들고 퍼미션을 조정해야 합니다.
* 이때 진짜 기본적인 것(웹 서버)에 대해서는 작성하지 않았습니다.<ref>웹 서버 프로그램이 없으면 php 파일 등을 처리 할 수 없기 때문이다.</ref>


==퍼미션==
== PHP ==
# 라이믹스 설치 루트 폴더에 files 폴더의 퍼미션이 707이나 777이어야 한다.
=== 버전 ===
# 설치 경로에 쓰기 권한이 이미 있는 경우, 설치 과정에서 files 폴더를 자동으로 생성한다.
[[라이믹스]] 설치에는 PHP 7.4 이상이 필요합니다.


==PHP==
==== PHP 7.2 이상에서의 문제 ====
# [[라이믹스]]를 사용하려면, 7.0 이상이 설치 되어 있어야 합니다.
PHP 7.2 이상에서는 일부 서드파티 모듈 때문에 '''BaseObject''' 오류가 발생할 수 있습니다. 기존에 사용되던 <code>Object</code> 클래스가 PHP 7.2부터 지원되지 않아 'Fatal error'(HTTP 500 오류)가 뜨는 경우가 생깁니다. 
# PHP 5.x 버전대는 설치 자체가 안되도록 설정되었으며, 강제로 설치를 진행하여도 각종 오류가 난무하여 사용 할 수 없습니다.<ref>PHP 7 문법이 적용 되었기 때문이다.</ref>
이 문제는 [[XpressEngine|XE]]에서도 공통적으로 나타나는 현상으로, [https://www.xpressengine.com/devlog/23249915 XE 공식 공지]에 따르면 <code>Object</code>를 <code>BaseObject</code>로 바꿔야 해결됩니다.<del>손이 좀 가는 작업</del> 에디터에서 찾아바꾸기 기능을 활용하면 편리합니다.<ref>단, 'new Object'나 'extends Object'처럼 앞에 다른 단어가 붙은 경우만 변경해야 함. [https://xetown.com/questions/1164680#comment_1164942 기진곰님 댓글 참고]</ref>


===7.2 이상===
리눅스 환경이라면 아래 명령어로 쉽게 일괄 변경 가능합니다.
# PHP 7.2 이상에서 일부 서드파티들로 인해 오류가 발생 할 수 있다.
<syntaxhighlight lang="console">
# '''BaseObject''' 오류가 발생하는데, PHP 7.2 이상은 원래 사용하던 클래스인 '''Object'''를 사용하지 못해 'Fatal error'가 발생한다.(HTTP 500에러 발생)
root@gaon:/var/www/html/# find ./ -name "*.php" -exec sed -i 's/return\snew\sObject/return new BaseObject/g' {} \;
# 이 문제는 [[XpressEngine|XE]]에서도 나타나는 현상이다. [https://www.xpressengine.com/devlog/23249915 XE 공식 홈페이지 공지사항]
root@gaon:/var/www/html/# find ./ -name "*.php" -exec sed -i 's/extends\sObject/extends BaseObject/g' {} \;
# 그렇기 때문에 'Object'를 'BaseObject'로 바꿔줘야 한다.<del>노가다</del> 에디터에서 찾아 바꾸기를 통해 바꾸면 그나마 쉽다.<ref>new Object나 extend Object와 같이
</syntaxhighlight>
앞에 다른 단어가 있는 Object만 변경해야 한다. [https://xetown.com/questions/1164680#comment_1164942 xetown Object 변경 관련 기진곰님 댓글]</ref>
다만, [[XpressEngine/모듈/타임라인|타임라인]] 모듈처럼 예외적인 경우는 명령어가 적용되지 않을 수 있으니, 이런 경우엔 직접 수정해야 합니다. 타임라인 모듈이라면 <code>./modules/timeline/timeline.admin.model.php</code> 파일의 44번째 줄에서 <code>Object</code>를 <code>BaseObject</code>로 바꾸면 됩니다.
# 리눅스에서 라이믹스(XE)가 설치 된 폴더로 이동 후, 아래와 같이 입력하면 쉽게 바뀐다. 참고하자.<ref>[https://xetown.com/questions/1082527#comment_1082641 XETOWN php 7.2 업그레이드를 위한 return new object > return new BaseObject 일괄변경하기]</ref>
<syntaxhighlight lang="sh">
find ./ -name "*.php" -exec sed -i 's/return\snew\sObject/return new BaseObject/g' {} \;
find ./ -name "*.php" -exec sed -i 's/extends\sObject/extends BaseObject/g' {} \;
</syntaxhighlight><br/>


===PHP 모듈===
=== 필수 PHP 모듈 ===
* [[라이믹스]]를 설치하기 위해 필수적으로 설치되어야 하는 PHP 모듈은 다음과 같습니다.
라이믹스 설치에 반드시 필요한 PHP 모듈은 다음과 같습니다:
** curl
* <code>curl</code>
** gd
* <code>gd</code>
** iconv 또는 mbstring
* <code>iconv</code> 또는 <code>mbstring</code>
** json
* <code>json</code>
** mcrypt 또는 openssl
* <code>openssl</code>
** simplexml
* <code>PDO_MySQL</code>
* <code>SimpleXML</code>
* <code>Zend OPCache</code>


===php.ini 설정===
=== 권장 PHP 모듈 ===
# upload_max_filesize 설정치보다 post_max_size가 커야 합니다.
설치는 필수가 아니지만 성능 개선이나 특정 기능에 유용한 모듈들입니다:
# post_max_size설정치보다 memory_limit이 커야 합니다.<br/> → 라이믹스는 [[라이믹스#대용량 업로드|대용량 업로드]]를 지원하기 때문에, 업로드 용량이 10MB 이상이면 사실상 업로드에 제약을 받지 않습니다.
* <code>apcu</code> (캐시로 성능 향상)
# session.auto_start이 아래와 같이 off로 설정 되어야 합니다.
* <code>exif</code> (이미지 자동 회전)
* <code>fileinfo</code> (첨부파일 보안 검사)
* <code>intl</code> (한글 도메인 처리 효율성)
* <code>zip</code> (향후 필수로 바뀔 가능성 있음)
* <code>mod_rewrite</code> (Apache에서 짧은 주소 사용 시, 선택 사항)
 
=== php.ini 설정 ===
* '''<code>upload_max_filesize</code> < <code>post_max_size</code> < <code>memory_limit</code>''' 순으로 설정값이 커야 합니다.<ref>[[라이믹스/XE와의 차이점#대용량 업로드|대용량 업로드]] 지원 때문에 업로드 용량이 10MB 이상이면 제한이 거의 없음.</ref>
* <code>session.auto_start</code>는 반드시 꺼져 있어야 합니다:
<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
session.auto_start = off
session.auto_start = off
</syntaxhighlight>
</syntaxhighlight>
* <code>memory_limit</code>은 최소 128M 이상으로 설정되어 있어야 합니다.
== MySQL/MariaDB ==
MySQL은 5.7 이상 버전을 사용해야 하며, 개발진은 MariaDB 10.1 이상을 권장합니다.


==Mysql/MariaDB==
== 각주 ==
# Mysql은 5.0.7 이상의 버전을 사용해야 합니다.
<references />
# [[라이믹스]] 개발진들은 MariaDB를 권장한다고 한다.


==각주==
<!-- 분류 -->
[[분류:라이믹스]]

2025년 6월 13일 (금) 10:57 기준 최신판

개요[편집 / 원본 편집]

라이믹스를 설치하고 운영하기 위해 필요한 시스템 요구사항을 정리한 문서입니다. 기본적으로 웹 서버(예: Apache, Nginx) 같은 필수 요소는 당연히 있어야 하니 여기선 생략했습니다.[1]

퍼미션[편집 / 원본 편집]

라이믹스 설치 루트 폴더 안의 files 폴더 퍼미션은 707 또는 777로 설정해야 합니다. 설치 경로에 쓰기 권한이 있으면 설치 중 자동으로 files 폴더가 생성되지만, 권한이 없으면 직접 폴더를 만들고 퍼미션을 조정해야 합니다.

PHP[편집 / 원본 편집]

버전[편집 / 원본 편집]

라이믹스 설치에는 PHP 7.4 이상이 필요합니다.

PHP 7.2 이상에서의 문제[편집 / 원본 편집]

PHP 7.2 이상에서는 일부 서드파티 모듈 때문에 BaseObject 오류가 발생할 수 있습니다. 기존에 사용되던 Object 클래스가 PHP 7.2부터 지원되지 않아 'Fatal error'(HTTP 500 오류)가 뜨는 경우가 생깁니다. 이 문제는 XE에서도 공통적으로 나타나는 현상으로, XE 공식 공지에 따르면 ObjectBaseObject로 바꿔야 해결됩니다.손이 좀 가는 작업 에디터에서 찾아바꾸기 기능을 활용하면 편리합니다.[2]

리눅스 환경이라면 아래 명령어로 쉽게 일괄 변경 가능합니다.

root@gaon:/var/www/html/# find ./ -name "*.php" -exec sed -i 's/return\snew\sObject/return new BaseObject/g' {} \;
root@gaon:/var/www/html/# find ./ -name "*.php" -exec sed -i 's/extends\sObject/extends BaseObject/g' {} \;

다만, 타임라인 모듈처럼 예외적인 경우는 명령어가 적용되지 않을 수 있으니, 이런 경우엔 직접 수정해야 합니다. 타임라인 모듈이라면 ./modules/timeline/timeline.admin.model.php 파일의 44번째 줄에서 ObjectBaseObject로 바꾸면 됩니다.

필수 PHP 모듈[편집 / 원본 편집]

라이믹스 설치에 반드시 필요한 PHP 모듈은 다음과 같습니다:

  • curl
  • gd
  • iconv 또는 mbstring
  • json
  • openssl
  • PDO_MySQL
  • SimpleXML
  • Zend OPCache

권장 PHP 모듈[편집 / 원본 편집]

설치는 필수가 아니지만 성능 개선이나 특정 기능에 유용한 모듈들입니다:

  • apcu (캐시로 성능 향상)
  • exif (이미지 자동 회전)
  • fileinfo (첨부파일 보안 검사)
  • intl (한글 도메인 처리 효율성)
  • zip (향후 필수로 바뀔 가능성 있음)
  • mod_rewrite (Apache에서 짧은 주소 사용 시, 선택 사항)

php.ini 설정[편집 / 원본 편집]

  • upload_max_filesize < post_max_size < memory_limit 순으로 설정값이 커야 합니다.[3]
  • session.auto_start는 반드시 꺼져 있어야 합니다:
session.auto_start = off
  • memory_limit은 최소 128M 이상으로 설정되어 있어야 합니다.

MySQL/MariaDB[편집 / 원본 편집]

MySQL은 5.7 이상 버전을 사용해야 하며, 개발진은 MariaDB 10.1 이상을 권장합니다.

각주[편집 / 원본 편집]

  1. 웹 서버가 없으면 PHP 파일을 실행할 수 없기 때문.
  2. 단, 'new Object'나 'extends Object'처럼 앞에 다른 단어가 붙은 경우만 변경해야 함. 기진곰님 댓글 참고
  3. 대용량 업로드 지원 때문에 업로드 용량이 10MB 이상이면 제한이 거의 없음.