Rocky Linux - 라이믹스(Rhymix) 설치하기

    Rhymix란?

    라이 믹스는 PHP 기반의 오픈소스 콘텐츠 관리 시스템(CMS) 및 프레임워크입니다. 현재는 개발이 중단된 XE1버전의 가지치기 포크(Frok)로 별도 개발된 프로젝트이며 누구나 무료로 사용 및 개발에 참여할 수 있는 자유 소프트웨어입니다. 라이 믹스는 "시를 짓다, 운을 맞추다"라는 의미의 "rhyme"과 "조합하다, 변주하다"라는 의미의 "remix"를 합친 이름이라고 합니다.

     

    공식 홈페이지 : https://rhymix.org
    설치 매뉴얼 : https://rhymix.org/manual

    설치환경 및 준비물

    릴리즈 설치 테스트 : 2022-07-12

    □ VMware Workstation 가상화에서 Rocky Linux 8.6 OS 준비 [포스팅 참고]

    □ [root@localhost ~]# dnf update [※ OS 설치 후 기본 패키지 최신 업데이트]

    □ [root@localhost ~]# cat /etc/selinux/config | grep SELINUX  [보안 설정]

    SELINUX=disabled  [빠른 테스트를 위해 비활성화, 서버 재시작 필요]

     

    □ Rhymix 현재 릴리스 버전으로 요구하는 사항

    Rhymix 2.0.21  (2022-07-04 기준)
    Apache(Httpd) 또는 Nginx 버전은 언급하지 않음 (mod_rewrite 권장하나 필수는 아님)
    PHP 7.2 이상 (권장사항은 7.4 이상) / 필자는 PHP 8.0 으로 진행
    PHP 모듈(필수) curl, gd, iconv (mbstring), json, mcrypt (openssl), PDO_MySQL
    SimpleXML, Zend OPcache
    PHP 모듈(권장) apcu (캐시 사용을 통해 성능 향상 가능)
    exif (이미지 자동 회전 기능에 필요)
    fileinfo (첨부파일 보안 검사에 필요)
    intl (한글도메인 사용시 성능 향상 효과 있음)
    zip (추후 필수 모듈로 지정될 가능성 있음)
    MariaDB 또는 MySQL MariaDB 버전 언급은 없음, MySQL은 5.0.7 이상

    STEP01 → 아파치[Apache] 설치

    [root@]# dnf install httpd


    STEP02 → 마리아[Maria DB] 설치

    [root@]# dnf install mariadb-server mariadb


    STEP03 → PHP 설치[8.0 이상]

    ① 사용 가능한 PHP 버전 확인

    ※ Rocky 8.6 버전부터는 기본 저장소에 PHP 8.0 버전이 업데이트되어 해당 버전으로 설치 진행

    ※ 하위 OS라면 PHP 7.4 버전으로 진행해주시면 됩니다.

    [root@]# dnf module list php

    ② PHP [8.0] 모듈을 사용하기 위한 활성화 설정

    ※ 기존 모듈을 제거하고 재설정 하는게 좋다는 메시지가 나오므로 다음과 같이 먼저 진행합니다.

    [root@]# dnf module reset php:7.2    [기존모듈 제거]

    [root@]# dnf module enable php:8.0    [8.0 모듈 활성화]

    ③ PHP [8.0] 설치

    [root@]# dnf install php

    ④ Rhymix에 필요한 PHP-모듈(필수) 설치

    [root@]# dnf install php-curl php-gd php-iconv php-mbstring php-json php-openssl php-pdo_mysql php-simplexml php-opcache

    ⑤ Rhymix에 필요한 PHP-모듈(권장) 설치

    [root@]# dnf install php-apcu php-exif php-fileinfo php-intl php-zip

    ⑥ 설치된 PHP 모듈 확인

    [root@]# php -m | egrep -i "curl|gd|iconv|mbstring|json|openssl|pdo_mysql|simplexml|Zend opcache|apcu|exif|fileinfo|intl|zip"


    STEP04 → 설치 버전 확인

    [root@]# httpd -v
    Server version: Apache/2.4.37 (rocky)
    Server built:   Jun 22 2022 14:17:54

     

    [root@localhost ~]# php -v
    PHP 8.0.13 (cli) (built: Nov 16 2021 18:07:21) ( NTS gcc x86_64 )
    Copyright (c) The PHP Group
    Zend Engine v4.0.13, Copyright (c) Zend Technologies
        with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies

     

    [root@localhost ~]# mysql -V
    mysql  Ver 15.1 Distrib 10.3.32-MariaDB, for Linux (x86_64) using readline 5.1


    STEP05 → 아파치(Apache) 및 PHP(PHP.ini) 설정 및 구동

    ① Apache 기본 설정[수정 후 저장]

    [root@]# vim /etc/httpd/conf/httpd.conf

     

    #ServerName www.example.com:80

    ServerName 192.168.150.153:80    [도메인 또는 해당 서버 IP 입력 추가]

     

    <IfModule dir_module>
        DirectoryIndex index.html index.htm index.php    [일부 추가]
    </IfModule>

     

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php    [라인 추가]
    AddType application/x-httpd-phps .phps    [라인 추가]

    ② PHP.ini 기본 설정[수정 후 저장]

    [root@]# vim /etc/php.ini

     

    session.auto_start = off    [변경]

    upload_max_filesize = 2M    [기본 설정]

    post_max_size = 8M    [기본 설정]

    memory_limit = 128M    [기본 설정]

     

    ※ 기본 설정입니다. 서버 환경에 맞게 용량 수정 하면 됩니다.

    ※ 단, upload_max_filesize 보다 post_max_size 가 더 커야 하며, post_max_size 보다 memory_limit 값이 더 커야 합니다.

    ※ 라이믹스는 대용량 파일을 분할 업로드하는 것을 지원하므로 업로드 용량이 10M 이상 주어지기만 하면 서버 용량 내에서 사실상 무한대로 업로드가 가능

    ※ 대용량 이미지 처리가 필요한 사이트라면 memory_limit가 256M 설정 필요

    ③ PHP-FPM 기본 설정[수정 후 저장]

    [root@]# vim /etc/php-fpm.d/www.conf

     

    listen.acl_users = apache,nginx    [유지]
    listen.acl_groups = apache    [라인 추가]

    ④ 아파치/PHP-FPM 시작 및 프로세스 구동 확인

    [root@]# systemctl start httpd    [시작]

    [root@]# systemctl start php-fpm    [시작]

     

    [root@]# systemctl enable httpd php-fpm    [부팅 후 자동 실행 설정(비활성화 시 disable)]

    Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

    Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

     

    [root@]# ps -ef |egrep "httpd|www"  [아파치/PHP-FPM 구동 확인]

    ⑤ 방화벽 설정 및 적용

    [root@]# firewall-cmd --permanent --add-port=80/tcp    [HTTP 80번 포트 추가]

    success

    [root@]# firewall-cmd --reload    [적용]

    success

    [root@]# firewall-cmd --list-all    [추가된 포트 확인]

    ports: 80/tcp

     

    ⑥ 웹 구동 확인 테스트[스크린샷 참고]

    ⑦ PHP 적용 확인

    [root@]# cd /var/www/html/

     

    해당 경로에서 PHP의 정보를 보여주는 함수 파일 생성 후 저장
    [root@]# vim /var/www/html/phpinfo.php

     

    <?php phpinfo();?>      [라인 추가]

    [root@]# ls

    phpinfo.php    [파일 생성 확인]

     

    ⑧ PHP 웹 연동 확인 테스트[스크린샷 참고]


    STEP06 → MariaDB 구동 및 설정

    ① MariaDB 구동

    [root@]# systemctl start mariadb

     

    [root@]# systemctl enable mariadb    [부팅 시 자동 시작 활성화(비활성화 disable)]

    Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
    Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

     

    [root@]# ps -ef | grep mysql     [구동 확인]

    mysql    /usr/libexec/mysqld --basedir=/usr

    ② Maria DB 기본 설정 [DB가 구동된 상태에서 진행 가능]

    [root@]# mysql_secure_installation

     

    Enter current password for root (enter for none): [패스워드가 없기 때문에 엔터]

     

    ◇ 유닉스 소켓 관련 메시지는 10.4 버전 이상에서 나옵니다.

    Switch to unix_socket authentication [Y/n] Y    [MariaDB 실행 시 통신 소켓 생성 여부? Y 엔터]

    Change the root password? [Y/n] Y   [DB ROOT 패스워드 설정할 것인가? Y 엔터]

    New password:  패스워드 입력

    Re-enter new password:  재확인 패스워드 입력

    Remove anonymous users? [Y/n] Y  [익명의 접근을 막을 것인지? 보안을 위해 Y 엔터]

    Disallow root login remotely? [Y/n] Y  [DB ROOT 원격을 막을 것인지? 보안을 위해 Y 엔터]

    Remove test database and access to it? [Y/n] Y [Test 용으로 생성된 데이터베이스를 삭제할 것인가? Y 엔터]

    Reload privilege tables now? [Y/n] Y [현재 설정한 값을 적용할 것인지? 당연히 Y 엔터]
    Thanks for using MariaDB! [설정 완료]

    ③ MariaDB 접속 및 Rhymix 데이터베이스 생성

    ◇ 데이터베이스 이름이나 유저 ID/패스워드는 임의로 설정

     

    [root@]# mysql -u root -p  [DB 접속]
    Enter password패스워드 입력

    ◇ Rhymix 데이터베이스 생성 : CREATE DATABASE 데이터베이스 이름;
    MariaDB [(none)]> CREATE DATABASE rhymixdb;
    Query OK, 1 row affected (0.000 sec)

     

    ◇ 접근 유저 ID 및 패스워드 생성 : CREATE USER '유저 ID'@'localhost' IDENTIFIED BY '패스워드';
    MariaDB [(none)]> CREATE USER 'rhymix'@'localhost' IDENTIFIED BY 'test1234';
    Query OK, 0 rows affected (0.037 sec)

     

    ◇ 접근 권한 설정[모든 권한] : GRANT ALL ON 데이터베이스 이름.* TO '유저 ID'@'localhost';
    MariaDB [(none)]> GRANT ALL ON rhymixdb.* TO 'rhymix'@'localhost';
    Query OK, 0 rows affected (0.000 sec)

     

    ◇ 저장 종료
    MariaDB [(none)]> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.000 sec)

    MariaDB [(none)]> EXIT;
    Bye


    STEP07 → Rhymix 다운로드

    ◇ 공식 홈페이지 다운로드 : https://rhymix.org/news

    ◇ 또는 Git허브에서 다운로드 : https://github.com/rhymix/rhymix

    ※ Git으로 다운로드하는 방법도 있습니다. 매뉴얼에 따라 편한 것으로 진행하시면 됩니다.

    [root@]# wget https://rhymix.org/files/attach/releases/rhymix-2.0.21.zip    [wget 다운로드]

    rhymix-2.0.21.zip’ saved [14189999/14189999]

     

    [root@]# unzip rhymix-2.0.21.zip    [ZIP 압축해제]

     

    [root@]# mkdir rhymix/files    [압축해제 경로에 미리 Files 폴더 생성]

     

    [root@]# cp -R rhymix /var/www/html/rhymix    [웹 루트 경로에 복사 또는 이동]

     

    [root@]# chown -R apache:apache /var/www/html/rhymix    [유저/그룹 권한 설정]

    [root@]# chmod 777 /var/www/html/rhymix/files    [Files 권한 설정]

    ※ 서버 환경에 따라 777 또는 707 퍼미션을 부여합니다.


    STEP08 → Rhymix용 Apache 가상 호스트 구성 및 적용

    [root@]# vim /etc/httpd/conf.d/rhymix.conf    [파일 생성 후 저장]

     

    <VirtualHost *:80>    [시작]

    ServerName 192.168.150.153    [도메인 호스트 주소 또는 서버 IP]

    ServerAdmin foxydog@localhost

    DocumentRoot /var/www/html/rhymix

    <Directory "/var/www/html/rhymix">

    Options Indexes FollowSymLinks

    AllowOverride all

    Require all granted

    </Directory>

    ErrorLog /etc/httpd/logs/rhymix_error.log

    CustomLog /etc/httpd/logs/rhymix_access.log common

    </VirtualHost>    [끝]

    [root@]# systemctl restart httpd    [재시작 적용]

     

    [root@]# systemctl status httpd | grep active    [구동 확인]
       Active: active (running) since Wed 2022-07-13 04:32:15 EDT; 4s ago


    STEP09 → 브라우저에서 Rhymix 설정 및 설치[스크린샷 순서대로 진행]

    http://서버IP 입력


    마치며

    앞서 설명하였듯이 기본 베이스는 XE1(Xpress Engine.ver1) 이므로 해당 게시판을 운영을 해보았다면 비슷한 부분이 많아 개발 및 운영이 좀 더 익숙하다고 느낄 수 있습니다. 저도 개인적으로는 워드프레스보다는 좀더 친숙한 느낌이 드네요. 실제로도 운영하는 서버가 있어 관리하기가 좀더 편합니다. 개발자분들께서 최적화가 좀더 진행이 되었는지 VMWARE에서 기본 2코어/2GB 메모리만 할당하였음에도 엔진이 가볍다는 느낌이 듭니다. 웹 개발자로 공부하시는 분들은 개인 PC 가상 서버나 클라우드 서버에 업로드 설치하여 연습하면 좋을 것으로 보입니다.

    Designed by JB FACTORY