ExpressionEngine es un sistema de administración de contenido (CMS) maduro, flexible, seguro y gratuito de código abierto escrito en PHP. Su código fuente está alojado en Github. Con ExpressionEngine, puede crear sitios web completos, crear una aplicación web o entregar contenido a aplicaciones móviles. Todo sin requerir habilidades de programación complejas. Esta guía lo guiará a través del proceso de instalación de ExpressionEngine en un CentOS 8 nuevo usando PHP, MariaDB como base de datos y Nginx como servidor web.
Requisitos
ExpressionEngine requiere un servidor web que ejecute PHP y MySQL/MariaDB. Las pilas y versiones de software recomendadas son:
- PHP versión 7.0 o superior, ejecutándose con PHP-FPM y con las siguientes extensiones de PHP (
gd
,fileinfo
,intl
,mbstring
). - MySQL versión 5.6 o superior o Percona versión 5.6 o superior. Este tutorial usará MariaDB.
- Un servidor web como Nginx o Apache. Este tutorial usará Nginx.
Pasos iniciales
Compruebe su versión de CentOS:
cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)
Configurar la zona horaria:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
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:
sudo yum update -y
Instale 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
Instale PHP, así como las extensiones de PHP necesarias:
sudo yum install -y php-cli php-fpm php-common php-mbstring php-gd php-intl php-mysql php-json php-zip
Compruebe la versión de PHP:
php --version
# PHP 7.2.19 (cli) (built: Jun 2 2019 09:49:05) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Para mostrar PHP compilado en módulos, puede ejecutar:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Inicie y habilite el servicio PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Paso 2:instalar MariaDB
Instale el servidor de base de datos MariaDB:
sudo yum install -y mariadb-server
Compruebe la versión de MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1
Inicie y habilite el servicio MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Ejecute mysql_secure_installation
script para mejorar la seguridad de su instalación de MariaDB:
sudo mysql_secure_installation
Inicie sesión en MariaDB como usuario raíz:
sudo mysql -u root -p
# Enter password:
Cree una nueva base de datos MariaDB y un usuario de base de datos, y recuerde las credenciales:
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
dbname
y username
con los nombres apropiados para su configuración. Reemplazar password
con una contraseña segura.
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.3
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 Nginx
Instalar el servidor web Nginx:
sudo yum install -y nginx
Compruebe la versión de Nginx:
nginx -v
# nginx version: nginx/1.12.2
Inicie y habilite Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configure Nginx para ExpressionEngine. Ejecute sudo vi /etc/nginx/conf.d/expressionengine.conf
y complete el archivo con la siguiente configuración.
server {
listen 443 ssl;
listen 80;
server_name example.com;
root /var/www/expressionengine;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
index index.php;
location / {
index index.php;
try_files $uri $uri/ @ee;
}
location @ee {
rewrite ^(.*) /index.php?$1 last;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
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 ExpressionEngine
Cree un directorio raíz de documentos en el que debería residir ExpressionEngine:
sudo mkdir -p /var/www/expressionengine
Navegue a la carpeta raíz del documento:
cd /var/www/expressionengine
Descargue la última versión de ExpressionEngine y descomprima los archivos en una carpeta de su servidor:
sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip
Cambiar la propiedad de /var/www/expressionengine
directorio a nginx:
sudo chown -R nginx:nginx /var/www/expressionengine
Ejecute sudo vim /etc/php-fpm.d/www.conf
y establezca el usuario y el grupo en nginx
. Inicialmente, se establecerán en apache:
sudo vi /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Reinicie el servicio PHP-FPM:
sudo systemctl restart php-fpm.service
Apunte su navegador a la URL de admin.php
archivo que cargó. Por ejemplo:http://example.com/admin.php
. Siga las instrucciones en pantalla para instalar ExpressionEngine. Una vez que finalice el asistente de instalación, debe cambiar el nombre o eliminar el system/ee/installer/
directorio de su servidor.
Paso 6:complete la configuración de ExpressionEngine
Complete la instalación de ExpressionEngine ingresando la base de datos y los detalles de la cuenta del administrador:
Después, verá la página de inicio de sesión predeterminada:
Este es el panel de administración de ExpressionEngine:
Y aquí está la página de inicio:
¡Eso es todo! Se completó la instalación de ExpressionEngine.
Enlaces
- https://expressionengine.com/
- https://github.com/ExpressionEngine/ExpressionEngine