Cómo instalar Pico CMS con Nginx y Let’s Encrypt en CentOS 7

Pico es un CMS de código abierto, sencillo y rápido, escrito en PHP. Esto significa que no hay un backend de administración ni una base de datos de la que ocuparse. Simplemente creas archivos .md en la carpeta de contenido y eso se convierte en una página. Picoutiliza el motor de plantillasTwig , para obtener temas potentes yflexibles. El código fuente de Picoestá disponible en Github. En este tutorial, instalaremos Pico CMS con Nginx en un sistema CentOS 7.

Requisitos

Los requisitos para ejecutar Pico son

  • Nginx
  • Versión de PHP 5.3.6 o superior
  • Compositor

Requisitos previos

  • Un sistema operativo CentOS 7.
  • Un usuario no root con privilegios en sudo .

Pasos iniciales

Comprueba tu versión de CentOS:

cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)

Configura la zona horaria:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Actualiza los paquetes de tu sistema operativo (software). Este es un primer paso importante porque garantiza que tienes las últimas actualizaciones y correcciones de seguridad de los paquetes de software por defecto de tu sistema operativo:

sudo yum update -y

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

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

Paso 1 – Instalar PHP

Instala el repositorio YUM de Webtatic:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Instala PHP, así como las extensiones PHP necesarias:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-json php72w-zip php72w-xml php72w-mbstring

Para mostrar el PHP compilado en módulos, puedes ejecutar:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Comprobar la versión de PHP:

php --version
# PHP 7.2.19 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies

Iniciar y habilitar el servicio PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Paso 2 – Instalar el cliente acme.sh y obtener el certificado Let’s Encrypt (opcional)

Asegurar tu foro con HTTPS no es necesario, pero es una buena práctica para asegurar el tráfico de tu sitio. Para obtener un certificado TLS 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 con cero dependencias.

Descarga e instala 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 ~

Comprueba la versión de acme.sh:

acme.sh --version
# v2.8.2

Obtén certificados RSA y ECC/ECDSA para tu 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 quieres certificados falsos para hacer pruebas, puedes añadir --staginga los comandos anteriores.

Después de ejecutar los comandos anteriores, tuscertificados y claves estarán en:

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

Para listar tus certificados emitidos puedes ejecutar:

acme.sh --list

Crea un directorio para almacenar tus certificados. Nosotros utilizaremos el directorio/etc/letsencrypt.

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

Instala/copia los certificados en/etc/letsencryptdirectorio.

# 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 sal del usuario root y vuelve al usuario sudo normal:

exit

Paso 3 - Instalar y configurar NGINX

Descarga e instala Nginx desde el repositorio de CentOS:

sudo yum install -y nginx

Comprueba la versión de Nginx:

nginx -v
# nginx version: nginx/1.12.2

Inicia y activa el servicio Nginx:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

ConfiguraNGINX para Pico CMS ejecutando:

sudo vim /etc/nginx/conf.d/pico.conf

Y rellena el archivo con la siguiente configuración:

server {
  
  listen 80;
  listen 443 ssl;
  server_name example.com;
  root /var/www/pico;
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;
index index.php; location ~ ^/((config|content|vendor|composer\.(json|lock|phar))(/|$)|(.+/)?\.(?!well-known(/|$))) { deny all; } location / { index index.php; try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PICO_URL_REWRITING 1; } }

CompruebaNGINX en busca de errores de sintaxis:

sudo nginx -t

RecargaNGINX :

sudo systemctl reload nginx.service

Paso 4 - Instalar Composer

Instala Composer, el gestor de dependencias de PHP de forma global:

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

php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { 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

Comprueba la versión de Composer:

composer --version
# Composer version 1.9.0 2019-08-02 20:55:32

NOTA: Los comandos de instalación de Composer cambiarán en el futuro, así que comprueba en https://getcomposer.org/download/ los comandos más actualizados si los anteriores no funcionan.

Paso 5 - Instalar Pico CMS

Crea un directorio raíz de documentos para Pico CMS:

sudo mkdir -p /var/www/pico

Cambia la propiedad del directorio/var/www/pico a your_username que deberías haber creado antes y deberías iniciar la sesión como este usuario.

sudo chown -R your_username:your_username /var/www/pico

NOTA: No olvides sustituir tu_nombre_de_usuario por el nombre que hayas elegido.

Navega hasta el directorio raíz del documento:

cd /var/www/pico

Descarga Pico con compositor:

composer create-project picocms/pico-composer .

Proporciona la propiedad adecuada:

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

Ejecuta sudo vim /etc/php-fpm.d/www.conf y establece el usuario y el grupo como nginx. Inicialmente, se establecerán en apache. Ejecuta:

sudo vim /etc/php-fpm.d/www.conf

Y establece el usuario y el grupo a nginx, como se indica a continuación:

user = nginx
group = nginx

Y finalmente, reinicia el servicio PHP-FPM para que estos cambios surtan efecto:

sudo systemctl restart php-fpm.service

Has instalado con éxito Pico CMS en el servidor CentOS 7. Ahora puedes simplemente crear tu propia carpeta de contenido en el directorio raíz de Pico, crear archivos .md en el directorio de contenido y esos archivos se convertirán en tus páginas.

Enlaces

También te podría gustar...