GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Fork CMS con NGINX en Debian 9

Fork es un CMS de código abierto fácil de usar que utiliza componentes de Symfony. Tiene una interfaz intuitiva y fácil de usar, potentes aplicaciones que puede descargar para expandir su sitio y una amplia colección de hermosos temas. En este tutorial, revisaremos la instalación y configuración de Fork CMS en el sistema Debian 9 usando Nginx como servidor web, MariaDB como motor de base de datos y, opcionalmente, puede proteger la capa de transporte usando el cliente Acme.sh y el certificado Let's Encrypt. autoridad para agregar soporte SSL.

Requisitos

Los requisitos para instalar y ejecutar Fork CMS son:

  • PHP versión 7.1 o superior.
  • Deben instalarse y habilitarse las siguientes extensiones de PHP:cURL , libxml , DOM , XML simple , SPL , PDO (con controlador MySQL) , mb_cadena , iconv , biblioteca de gráficos GD2 , JSON , PCRE , intl .
  • MySQL 5.0 o superior.
  • NGINX o Apache con .htaccess , mod_rewrite , mod_expires (opcional pero recomendado), mod_deflate (opcional) habilitado.

Requisitos

  • Un sistema operativo que ejecuta Debian 9.
  • Un usuario no root con privilegios sudo.

Pasos iniciales

Compruebe su versión de Debian:

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

Configurar la zona horaria:

dpkg-reconfigure tzdata

Actualice los paquetes de su sistema operativo (software). Este es un primer paso importante porque garantiza que tenga las últimas actualizaciones y correcciones de seguridad para los paquetes de software predeterminados de su sistema operativo:

apt update && apt upgrade -y

Instale algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo Debian:

apt install -y curl wget vim git sudo unzip socat bash-completion dirmngr apt-transport-https

Paso 1:instalar PHP y extensiones de PHP

Debian no proporciona la última versión de PHP en sus repositorios de software predeterminados. Tendremos que agregar una comunidad mantenida en el repositorio de terceros.

sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update

Instale PHP, así como las extensiones de PHP necesarias para Fork CMS:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mysql php7.2-curl php7.2-json php7.0-zip php7.2-gd php7.2-xml php7.2-mbstring php7.2-opcache php7.2-intl

Para mostrar PHP compilado en módulos, puede ejecutar:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Compruebe la versión de PHP:

php --version
# PHP 7.2.19-1+0~20190531112637.22+stretch~1.gbp75765b (cli) (built: May 31 2019 11:26:38) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.19-1+0~20190531112637.22+stretch~1.gbp75765b, Copyright (c) 1999-2018, by Zend Technologies

El servicio PHP-FPM se inicia y habilita automáticamente al reiniciar el sistema Debian 9, por lo que no es necesario iniciarlo y habilitarlo manualmente. Podemos pasar al siguiente paso, que es la instalación y configuración de la base de datos.

Paso 2:instalar MariaDB y crear una base de datos para Fork CMS

Instale el servidor de base de datos MariaDB:

sudo apt install -y mariadb-server

Compruebe la versión de MariaDB:

mysql --version
# mysql Ver 15.1 Distrib 10.1.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Ejecute mysql_secure installation secuencia de comandos para mejorar la seguridad de MariaDB y establecer la contraseña para el usuario root de MariaDB:

sudo mysql_secure_installation

Contesta cada una de las preguntas:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Conéctese al shell de MariaDB como usuario raíz:

sudo mysql -u root -p
# Enter password

Cree una base de datos MariaDB vacía y un usuario para Fork CMS y recuerde las credenciales:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
mysql> FLUSH PRIVILEGES;

Reemplace la palabra mypassword con una contraseña segura de su elección. Salir de MariaDB:

mysql> exit

Reemplace dbname, username and password with your own names.

Paso 3:instale el cliente Acme.sh y obtenga el certificado Let's Encrypt (opcional)

No es necesario proteger su sitio web con HTTPS, pero es una buena práctica para asegurar el tráfico de su sitio. Para obtener un certificado SSL de Let's Encrypt, utilizaremos el cliente Acme.sh. Acme.sh es un software de shell Unix puro para obtener certificados TLS de Let's Encrypt sin dependencias.

Descargue e instale acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Compruebe la versión de acme.sh:

acme.sh --version
# v2.8.2

Obtener RSA y ECC/ECDSA certificados para su dominio/nombre de host:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si desea certificados falsos para realizar pruebas, puede agregar --staging flag to the above commands.

Después de ejecutar los comandos anteriores, sus certificados y teclas estará en:

  • Para RSA :directorio /home/username/example.com directory.
  • Para ECC/ECDSA :/home/username/example.com_ecc directory.

Para enumerar sus certificados emitidos, puede ejecutar:

acme.sh --list

Cree un directorio para almacenar sus certificados. Usaremos un directorio /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instalar/copiar certificados en el directorio /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Todos los certificados se renovarán automáticamente cada 60 días.

Después de obtener los certificados, salga del usuario raíz y regrese al usuario sudo normal:

exit

Paso 4:instalar y configurar NGINX

Instale el servidor web NGINX:

sudo apt install -y nginx

Compruebe la versión de NGINX:

sudo nginx -v
# nginx version: nginx/1.10.3

Configure NGINX para Fork CMS. Ejecute sudo vim /etc/nginx/sites-available/fork.conf y agregue la siguiente configuración:

server {
    listen 80;
    listen 443 ssl;
root /var/www/fork; index index.php index.html; server_name example.com;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key; location / { # Checks whether the requested url exists as a file $uri or directory $uri/ in the root, else redirect to /index.php. try_files $uri $uri/ @redirects; } location @redirects { rewrite ^ /index.php; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_read_timeout 60; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # Don't pollute the logs with common requests location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } # As Fork CMS has the app_root as doc_root, we need to restrict access to a few things for security purposes! location ~* ^/(composer\..*|vendor\/.*|Procfile$|\.git\/.*|src\/Console.*|.*\.gitignore|\.editorconfig|\.travis.yml|autoload\.php|bower\.json|phpunit\.xml\.dist|.*\.md|app\/logs\/.*|app\/config\/.*|src\/Frontend\/Cache\/CompiledTemplates.*|src\/Frontend\/Cache\/Locale\/.*\.php|src\/Frontend\/Cache\/Navigation\/.*\.php|src\/Frontend\/Cache\/Search\/.*|src\/Backend\/Cache\/CompiledTemplates\/.*|src\/Backend\/Cache\/Locale\/.*\.php)$ { deny all; access_log off; log_not_found off; } # Deny access to dot-files. location ~ /\. { deny all; access_log off; log_not_found off; } }

Activar el nuevo fork.conf  configuración vinculando el archivo a sites-enabled directorio:

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

Compruebe la configuración de NGINX para ver si hay errores de sintaxis:

sudo nginx -t

Recargar servicio NGINX:

sudo systemctl reload nginx.service

Paso 5:Instalar Composer

Instale Composer, el administrador de dependencias de PHP a nivel mundial:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

Comprobar versión del compositor:

composer --version
# Composer version 1.8.5 2019-04-09 17:46:47

Paso 6:Instalar Fork CMS

Cree un directorio raíz de documentos.

sudo mkdir -p /var/www/fork

Cambiar la propiedad del /var/www/fork directorio al usuario con el que está conectado actualmente, en mi caso, este nombre de usuario es johndoe .

sudo chown -R johndoe:johndoe /var/www/fork

Reemplazar johndoe con su nombre de usuario de inicio de sesión en el comando anterior! Descarga la última versión estable de Fork CMS desde la línea de comandos.

cd /var/www/fork
composer create-project forkcms/forkcms .

Cambiar la propiedad del /var/www/fork directorio a www-data .

sudo chown -R www-data:www-data /var/www/fork

Edite app/config/parameters.yml.dist archivar y configurar la información de la base de datos.

sudo vim /var/www/fork/app/config/parameters_install.yml

Usando su navegador web preferido, abra su sitio y siga el instalador de Fork CMS. Después de seguir el instalador, debería tener Fork en funcionamiento. Para acceder al área de administración de Fork, simplemente agregue /private a la URL de su sitio.

Paso 7:complete la configuración de Fork CMS

Asegúrate de que tu servidor cumpla con todos los requisitos y continúa:

Seleccione el idioma y haga clic en siguiente:

Seleccione la configuración que desee y haga clic en siguiente:

Ingrese la configuración de su base de datos y haga clic en siguiente. Asegúrese de que ya creó la base de datos.

Crear usuario y finalizar la instalación:

Verá la siguiente página después de completar todos los pasos anteriores:

Has instalado correctamente Fork CMS. ¡Disfruta de tu nuevo CMS!

Enlaces

  • https://www.fork-cms.com/
  • https://github.com/forkcms/forkcms

Debian
  1. Cómo instalar Phorum con Nginx en Debian 9

  2. Cómo instalar PHP 7.4/7.3/7.2/7.1 en Debian 10/Debian 9

  3. Cómo instalar Plone 4 CMS en Debian Wheezy con Nginx

  4. Cómo instalar PHP 7.3 en Debian 9

  5. Cómo instalar Magento con Nginx en Debian 10

Cómo instalar Shopware con NGINX y Lets encrypt en Debian 9

Cómo instalar Bludit CMS con NGINX en Debian 9

Cómo instalar Pico CMS con Nginx en Debian 10

Cómo instalar Grav CMS con Nginx en Debian 9

Cómo instalar Nginx con PHP-FPM en Debian 10

Cómo instalar Nginx y PHP en Debian 10