Поиск по сайту:

Как установить Fuel CMS с Nginx на Fedora 31


На этой странице

  1. Предпосылки
  2. Настройка MariaDB для Fuel CMS
  3. Настройка PHP для Fuel CMS
  4. Настройка Nginx
  5. Установить топливную систему управления контентом
  6. Настройка топливной системы управления контентом
  7. Настройка HTTPS с помощью Lets Encrypt
  8. Заключение

Fuel CMS — это система управления контентом с открытым исходным кодом для веб-сайтов и блогов премиум-класса. Он построен на CodeIgniter, популярном веб-фреймворке PHP. В этом руководстве рассказывается, как установить Fuel CMS на сервер на базе Fedora 31.

Предпосылки

  • 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
    

Настройте MariaDB для Fuel CMS

Во-первых, нам нужно настроить базу данных для использования в 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

Настройка PHP для Fuel CMS

В нашем руководстве мы установили PHP 7.4, но Fuel CMS еще не совместима с ним на момент написания этого руководства. Когда он станет совместимым, вы можете пропустить этот шаг.

Теперь нам нужно установить PHP 7.3 вместе с PHP 7.4. Это можно легко сделать с помощью следующей команды.

$ 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

Нам нужно установить для пользователя/группы Unix процессов PHP значение nginx. Найдите в файле строки user=apache и group=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

Также обратите внимание на переменную listen. Это даст вам путь, где можно прослушать процесс 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 обеспечивает автоматическое создание родительских каталогов var и www, если они не существуют.

Перейдите в корневую папку документа.

$ cd /var/www/fuel

Загрузите последнюю версию Fuel CMS из репозитория Git.

$ 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.

Настройка HTTPS с помощью Lets Encrypt

Для использования Lets encrypt нам необходимо установить пакет 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 для создания своих сайтов. Если у вас есть какие-либо вопросы, задайте их в комментариях.