웹사이트 검색

Fedora 31에서 Nginx와 함께 Fuel CMS를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Fuel CMS용 MariaDB 구성
  3. Fuel CMS용 PHP 구성
  4. Nginx 구성
  5. 연료 CMS 설치
  6. 연료 CMS 구성
  7. Lets Encrypt를 사용하여 HTTPS 설정\n
  8. 결론

Fuel CMS는 프리미엄급 웹사이트 및 블로그를 위한 오픈 소스 콘텐츠 관리 시스템입니다. 널리 사용되는 PHP 웹 프레임워크인 CodeIgniter를 기반으로 합니다. 이 튜토리얼에서는 Fedora 31 기반 서버에 Fuel CMS를 설치하는 방법을 다룹니다.

전제 조건

  • A server running Fedora 31 configured with LEMP Stack. You can follow our guide for doing so.

  • A non-root sudo user.

  • Make sure everything is updated.

    $ sudo dnf upgrade
    

Fuel CMS용 MariaDB 구성

먼저 Fuel CMS에 사용할 데이터베이스를 설정해야 합니다. 그렇게 하려면 MySQL 프롬프트에 로그인하십시오.

$ sudo mysql

프롬프트에서 다음 명령을 입력하여 fuelcms라는 데이터베이스와 fueluser라는 데이터베이스 사용자를 설정하고 데이터베이스에 대한 액세스 권한을 부여합니다.

mysql> CREATE DATABASE fuelcms;
mysql> CREATE USER 'fueluser'@'localhost' IDENTIFIED BY 'yourpassword';
mysql> GRANT ALL PRIVILEGES ON fuelcms.* TO 'fueluser'@'localhost';
mysql> exit

Fuel CMS용 PHP 구성

가이드에서는 PHP 7.4를 설치했지만 이 튜토리얼을 진행하는 시점에는 Fuel CMS가 아직 호환되지 않습니다. 호환되면 이 단계를 건너뛸 수 있습니다.

이제 PHP 7.4와 함께 PHP 7.3을 설치해야 합니다. 다음 명령을 사용하여 쉽게 수행할 수 있습니다.

$ sudo dnf install php73-php-fpm php73-php-mysqlnd php73-php-cli -y

이렇게 하면 PHP 7.3이 컬렉션으로 설치되어 PHP 7.4와 동시에 실행할 수 있습니다.

PHP 7.3 서비스를 시작하고 활성화합니다.

$ sudo systemctl start php73-php-fpm
$ sudo systemctl enable php73-php-fpm

제대로 설치되었는지 확인하려면 다음 명령을 실행하십시오.

$ php73 --version
PHP 7.3.16 (cli) (built: Mar 17 2020 10:18:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies

/etc/opt/remi/php73/php-fpm.d/www.conf 파일을 엽니다.

$ sudo nano /etc/opt/remi/php73/php-fpm.d/www.conf

PHP 프로세스의 Unix 사용자/그룹을 nginx로 설정해야 합니다. 파일에서 user=apachegroup=apache 줄을 찾아 nginx로 변경합니다.

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...

또한 listen.acl_users 변수를 찾아 값을 다음과 같이 변경합니다.

listen.acl_users = nginx

또한 청취 변수를 기록해 두십시오. PHP-FPM 프로세스를 청취할 경로를 제공합니다. 우리에게는 다음을 보여줍니다.

listen = /var/opt/remi/php73/run/php-fpm/www.sock

경로가 필요하므로 경로를 복사하십시오.

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

PHP-fpm 프로세스를 다시 시작하십시오.

$ sudo systemctl restart php73-php-fpm

Nginx 구성

Fuel CMS에 대한 구성 파일을 추가하려면 다음 명령을 실행하십시오.

$ sudo nano /etc/nginx/sites-available/fuel.conf

편집기에 다음 코드를 붙여넣습니다.

server {
  listen 80;
  listen [::]:80;
  root /var/www/fuel;
  index index.php index.html index.htm;
  server_name fuel.example.com;
    
  client_max_body_size 100M;

  location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
  }

access_log /var/log/nginx/fuel.example.com.access.log;
error_log /var/log/nginx/fuel.example.com.error.log; location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

이 파일은 Fuel CMS를 example.com 도메인과 /var/www/fuel 디렉토리에 설치한다고 가정합니다. 또한 위의 listen 변수 값을 사용하여 fastcgi_pass 값을 지정했습니다.

sites-enabled 디렉터리에 연결하여 이 구성 파일을 활성화합니다.

$ sudo ln -s /etc/nginx/sites-available/fuel.conf /etc/nginx/sites-enabled/

Nginx 구성을 테스트합니다.

$ sudo nginx -t

구성이 올바르다는 것을 나타내는 다음 출력이 표시되어야 합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginx 서비스를 다시 로드합니다.

$ sudo systemctl reload nginx

연료 CMS 설치

Fuel CMS용 빈 문서 루트 폴더를 만듭니다.

$ sudo mkdir -p /var/www/fuel

-p 인수는 상위 디렉토리 varwww가 존재하지 않는 경우 자동으로 생성되도록 합니다.

문서 루트 폴더로 이동합니다.

$ cd /var/www/fuel

Git 리포지토리에서 최신 버전의 Fuel CMS를 가져옵니다.

$ sudo wget https://github.com/daylightstudio/FUEL-CMS/archive/master.zip

파일을 /var/www/fuel 폴더에 추출합니다.

$ sudo unzip master.zip
$ sudo rm master.zip
$ sudo mv FUEL-CMS-master/* .
$ sudo rm -r FUEL-CMS-master

sessions 디렉터리를 만듭니다.

$ sudo mkdir /var/www/fuel/fuel/application/sessions

/var/www/fuel/application/config/database.php 파일을 엽니다.

$ sudo nano /var/www/fuel/fuel/application/config/database.php

이전에 생성한 데이터베이스 매개변수를 구성합니다.

$db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',
        'username' => 'fueluser',
        'password' => 'yourpassword',
        'database' => 'fuelcms',
        'dbdriver' => 'mysqli',

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

/var/www/fuel/install/fuel_schema.sql 파일을 새로 만든 데이터베이스로 가져옵니다.

$ mysql -u fueluser -p fuelcms < /var/www/fuel/fuel/install/fuel_schema.sql

OpenSSL을 사용하여 임의의 암호화 키를 생성합니다. 20 대신 아무 숫자나 사용할 수 있습니다.

$ openssl rand -base64 20

출력으로 임의의 키를 얻게 됩니다. 그것을 복사하십시오.

/var/www/fuel/fuel/application/config/config.php 파일을 엽니다.

$ sudo nano /var/www/fuel/fuel/application/config/config.php

$config['encryption_key'] 값을 이전 단계에서 얻은 키로 변경합니다.

$config['encryption_key'] = 'nisT56baLm+U24ZYFRvVbVKIdOE=';

다음으로 $config[sess_save_path] 값을 찾아 값을 NULL에서 위에서 생성한 세션 경로로 변경합니다.

$config['sess_save_path'] = APPPATH.'sessions/';

여기서 APPPATH는 /var/www/fuel/fuel/applications/ 디렉토리를 나타냅니다. Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

다음으로 관리 패널을 활성화해야 합니다. 이를 위해 /var/www/fuel/fuel/application/config/MY_fuel.php 파일을 엽니다.

$  sudo nano /var/www/fuel/fuel/application/config/MY_fuel.php

다음과 같이 변경합니다.

// whether the admin backend is enabled or not
$config['admin_enabled'] = TRUE;
....
$config['fuel_mode'] = 'auto';

fuel_mode를 auto로 설정하면 Fuel CMS가 먼저 페이지에 대한 데이터베이스를 확인하고 찾지 못한 경우 보기 폴더에서 페이지를 선택합니다. 관리 패널에서 사이트 이름, 이미지 업로드 크기, 이메일 설정, 파일 업로드 크기, 텍스트 편집기 선택, 파서 엔진 및 구성 설정, 허용된 모듈 목록 설정과 같은 다양한 기타 설정을 변경할 수 있습니다.

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

마지막 단계는 /var/www/fuel 디렉토리에 적절한 권한을 부여하는 것입니다.

sudo chown -R nginx:nginx /var/www/fuel

이제 설정이 완료되었습니다. 브라우저에서 fuel.example.com/fuel을 열고 위에서 만든 자격 증명으로 로그인하고 개발을 시작하세요.

연료 CMS 구성

관리 패널에 로그인하면 비밀번호를 변경하라는 메시지가 표시됩니다. 계속하려면 비밀번호 변경을 클릭하십시오.

열리는 페이지에서 비밀번호를 변경할 수 있습니다. 또한 기본 사용자 이름을 변경하고 이메일 주소를 추가해야 합니다. 진행하려면 이름도 입력해야 합니다. 완료되면 저장하여 계속 진행하십시오.

자세한 내용은 공식 Fuel CMS 문서를 참조하십시오.

Lets Encrypt를 사용하여 HTTPS 설정

Lets encrypt를 사용하려면 Certbot 패키지를 설치해야 합니다.

Certbot을 설치합니다.

$ sudo dnf install certbot certbot-nginx -y

인증서를 설치합니다.

$ sudo certbot --nginx -d fuel.example.com

이 서버에서 도구를 처음 사용하는 경우 약관에 동의하고 이메일 주소를 입력해야 합니다. EFF 재단과 이메일을 공유하고 싶은지 물으면 아니오라고 말하십시오.

성공하면 certbot이 HTTPS 설정 구성 방법을 묻습니다.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

2를 선택한 다음 ENTER를 누르십시오. 이제 인증서가 설치되고 활성화되었습니다.

다음 명령을 실행하여 자동 갱신을 설정하십시오.

$ echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null

확인하려면 브라우저에서 https://fuel.example.com을 실행하세요.

결론

이것으로 튜토리얼을 마칩니다. 이제 Fuel CMS를 사용하여 웹사이트를 만들 수 있습니다. 질문이 있으시면 의견에 게시하십시오.