Cómo instalar Fuel CMS con Nginx en Fedora 31

Configuración de combustible CMS

Fuel CMS es un sistema de gestión de contenido de código abierto para sitios web y blogs de primer nivel. está construido sobre CodeIgniter, un marco web PHP popular. Este tutorial cubrirá cómo instalar Fuel CMS en un servidor basado en Fedora 31.

requisitos previos

  • Un servidor que ejecuta Fedora 31 configurado con LEMP Stack. Puede seguir nuestra guía para hacerlo.
  • Un usuario sudo no root.
  • Asegúrate de que todo esté actualizado.
    $ sudo dnf upgrade
    

Configurar MariaDB para Fuel CMS

Primero, necesitamos configurar una base de datos para usar con Fuel CMS. Para hacer eso, inicie sesión en el indicador de MySQL.

$ sudo mysql

Una vez que se le solicite, ingrese los siguientes comandos que configurarán una base de datos llamada cms de combustible y un usuario de base de datos llamado usuario de combustible y concederle acceso a la base de datos.

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

Configurar PHP para Fuel CMS

En nuestra guía, instalamos PHP 7.4 pero Fuel CMS aún no es compatible con él en el momento de este tutorial. Cuando sea compatible, puede omitir este paso.

Ahora, necesitamos instalar PHP 7.3 junto con PHP 7.4. Esto se puede hacer fácilmente usando el siguiente comando.

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

Esto instala PHP 7.3 como una colección que le permite ejecutarlo simultáneamente con PHP 7.4.

Inicie y habilite el servicio PHP 7.3.

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

Para verificar si está instalado correctamente, ejecute el siguiente comando.

$ 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

Abra el archivo /etc/opt/remi/php73/php-fpm.d/www.conf.

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

Necesitamos configurar el usuario/grupo de Unix de procesos PHP para nginx. Busque las líneas user=apache y group=apache en el archivo y cámbielas a 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
...

Además, ubique la variable escucha.acl_users y cambiar su valor de la siguiente manera.

listen.acl_users = nginx

Asimismo, tome nota de la escuchar variable. Le dará la ruta sobre dónde escuchar el proceso PHP-FPM. Para nosotros, muestra lo siguiente.

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

Copie la ruta porque la necesitaremos.

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Reinicie el proceso de PHP-fpm.

$ sudo systemctl restart php73-php-fpm

Configurar Nginx

Ejecute el siguiente comando para agregar un archivo de configuración para Fuel CMS.

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

Pegue el siguiente código en el editor.

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; } }


Este archivo asume que instalaremos Fuel CMS en el dominio ejemplo.com y en el directorio /var/www/fuel. También usamos el valor de la escuchar variable de arriba para especificar un valor para fastcgi_pass.

Active este archivo de configuración vinculándolo al directorio de sitios habilitados.

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

Pruebe la configuración de Nginx.

$ sudo nginx -t

Debería ver el siguiente resultado que indica que su configuración es correcta.

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

Vuelva a cargar el servicio Nginx.

$ sudo systemctl reload nginx

Instalar combustible CMS

Cree una carpeta raíz de documentos vacía para Fuel CMS.

$ sudo mkdir -p /var/www/fuel

los -pags El argumento asegura que los directorios principales var y www se creen automáticamente si no existen.

Navegue a la carpeta raíz del documento.

$ cd /var/www/fuel

Obtenga la última versión de Fuel CMS de su repositorio Git.

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

Extraiga el archivo en la carpeta /var/www/fuel.

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

Cree el directorio de sesiones.

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

Abra el archivo /var/www/fuel/application/config/database.php.

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

Configure los parámetros de la base de datos que creamos antes.

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

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Importe el archivo /var/www/fuel/install/fuel_schema.sql en la base de datos recién creada.

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

Genere una clave de cifrado aleatoria utilizando OpenSSL. Puedes usar cualquier número en lugar de 20.

$ openssl rand -base64 20

Obtendrá una clave aleatoria como salida. Cópialo.

Abra el archivo /var/www/fuel/fuel/application/config/config.php.

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

Cambiar el valor de $config[‘encryption_key’] a la clave que obtuviste en el paso anterior.

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

A continuación, busque el valor $config[‘sess_save_path’] y cambiar su valor de NULO a la ruta de la sesión que creamos anteriormente.

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

APLICACIÓN aquí se refiere al directorio /var/www/fuel/fuel/applications/. Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

A continuación, debemos habilitar el panel de Administración. Para eso, abre el archivo /var/www/fuel/fuel/application/config/MY_fuel.php.

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

Realice el siguiente cambio.

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

Configuración de la modo_combustible a auto permite que Fuel CMS verifique primero la página en su base de datos y, si no la encuentra, tomará la página de su carpeta de vista. Puede cambiar otras configuraciones, como el nombre del sitio en el panel de administración, el tamaño de carga de la imagen, establecer un correo electrónico, el tamaño de carga del archivo, seleccionar un editor de texto, establecer un motor de análisis y su configuración y establecer una lista de módulos permitidos.

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

El paso final es otorgar los permisos adecuados al directorio /var/www/fuel.

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

La configuración ahora está completa. Abra fuel.example.com/fuel en su navegador e inicie sesión con las credenciales que creó anteriormente y comience a desarrollar.

Configuración de combustible CMS

Una vez que inicie sesión en el panel de administración, se le pedirá que cambie la contraseña. Haga clic en Cambia la contraseña continuar.

Configuración de combustible CMS

En la página que se abre, puede cambiar su contraseña. También debe cambiar su nombre de usuario predeterminado y agregar una dirección de correo electrónico. También deberá ingresar su nombre para continuar. Guarde para continuar cuando haya terminado.

Para obtener más información, consulte el oficial Documentación de combustible CMS.

Configuración de HTTPS con Let’s Encrypt

Para usar Let’s encrypt, necesitamos instalar el Certbot paquete.

Instale Certbot.

$ sudo dnf install certbot certbot-nginx -y

Instale el certificado.

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

Si es la primera vez que usa la herramienta en este servidor, debe aceptar los términos e ingresar su dirección de correo electrónico. Decir no cuando se le pregunte si desea compartir su correo electrónico con la fundación EFF.

Si eso tiene éxito, certbot le preguntará cómo le gustaría configurar sus ajustes de 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):

Seleccione 2 y luego presione ENTER. Su certificado ya está instalado y activado.

Ejecute el siguiente comando para configurar la renovación automática.

$ 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

Inicie https://fuel.example.com en su navegador para verificar.

Secure Fuel CMS con un certificado Let's encrypt SSL gratuito

Conclusión

Esto concluye nuestro tutorial. Ahora puede usar Fuel CMS para crear sus sitios web. Si tienes alguna pregunta, publícala en los comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *