Configurando un proyecto PHP con Wordpress en nginx

De MediaWiki
Ir a la navegación Ir a la búsqueda

Prerrequisitos

Unha instalación de Nginx como a feita nesta sección.

Instalación de MySQL

apt update
apt install gnupg
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
dpkg -i mysql-apt-config*
apt update
apt install mysql-server 

Na instalacion configurar autenticacion legacy con versión 5 para que funcione correctamente por defecto con wordpress. Escoller contrasinal para o usuario root:

# Usuario root Contraseña root

Comprobar que queda correctamente instalado e levantado:

systemctl status mysql

Configuración do firewall para acceso remoto á consola de mysql

Para conectarse remotamente a mysql, hai que abrir o porto (por defecto) 3306: ufw allow 3306

Instalación de php

apt install php

Instalación de php-fpm

apt install php7.4-fpm
systemctl restart php7.4-fpm
Importante. 7.4 foi a versión no momento de elaborar este artigo. No futuro, pode haber que instalar unha versión superior, e con ese díxito de versión haberá que deixalo reflexado no ficheiro de configuración

Instalación de php-mysql

apt install php-mysql

Cando instalamos php instálase o módulo Apache, que non imos utilizar. Poderíamos facer:

apt remove apache2

Ou:

apt autoremove

Instalación de WordPress

Descarga e descompresión

cd /var/www
mkdir wordpress
cd wordpress/
wget -O wp.zip https://es.wordpress.org/latest-es_ES.zip
unzip wp.zip

Unha vez descomprimido, podemos eliminar o ficheiro comprimido descargado:

rm wp.zip

Configuración

cd /var/www/wordpress/wordpress
cp wp-config-sample.php wp-config.php
nano wp-config.php
DB_NAME 'wordpress'
DB_USER 'wpuser'
DB_PASSWORD 'wpuser'
DB_HOST 'localhost'

Creando base de datos WordPress en MySQL

mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' identified by 'wpuser';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Cambiando propietario en rutas recursivas

cd /var/www/wordpress/wordpress
chown -R www-data:www-data /var/www/wordpress/wordpress

Configuración de Nginx para WordPress

nano /etc/nginx/sites-available/wp.aclasedopeque.com
server {
 listen 80;
 root /var/www/wordpress/wordpress;
 index index.php index.html index.htm;
 server_name wp.aclasedopeque.com;

 access_log /var/log/nginx/wordpress_access.log;
 error_log /var/log/nginx/wordpress_error.log;

client_max_body_size 64M;

 location / {
  try_files $uri $uri/ /index.php?$args;
 }

location ~ \.php$ {
 try_files $uri =404;
 include /etc/nginx/fastcgi_params;
 fastcgi_read_timeout 3600s;
 fastcgi_buffer_size 128k;
 fastcgi_buffers 4 128k;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
 fastcgi_index index.php;
 }
}

client_max_body_size é para que o servidor teña capacidade de subir ficheiros.

Ollo. Pode ser preciso crear os ficheros access log e error log cun touch
Ollo. Cuidado coas versións. Neste intre usouse php7.4-fpm. Se fora outra versión, hai que cambiar o número de versión correspondente no ficheiro de configuración.
ln -s /etc/nginx/sites-available/wp.aclasedopeque.com /etc/nginx/sites-enabled/wp.aclasedopeque.com
systemctl restart nginx

Acceder a inferfaz web e loguearse:

usuario admin contraseña admin

E podo crear unha entrada, e ver que se publica correctamente.

Referencias