GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Aloja WordPress en Ubuntu 20.04, Mysql 8, Ubuntu 20.04, Nginx

WordPress es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP y combinado con una base de datos MySQL o MariaDB. WordPress es uno de los CMS más populares disponibles en la actualidad.

WordPress.com es una plataforma alojada de software como servicio (SaaS) que le permite crear un sitio web utilizando los componentes básicos de WordPress. Le costará alojar su sitio web en el sitio de WordPress.

El software de WordPress es gratuito y de código abierto, pero para tenerlo en funcionamiento, debe configurar el alojamiento. En esta guía vamos con esta opción, configurando WordPress en Ubuntu 20.04.

Requisitos

Para seguir esta guía, necesitamos lo siguiente:

  • Servidor Ubuntu 20.04 actualizado con conexión a Internet
  • Acceso raíz en el servidor o un usuario con acceso sudo
  • Conocimiento del uso de terminales Linux

Pasos necesarios para que WordPress funcione en Ubuntu 20.04

  1. Asegúrese de que el sistema esté actualizado
  2. Instalando el servidor de base de datos mysql 8 y creando un usuario de WordPress
  3. Instalar el servidor web Nginx
  4. Instalar PHP con dependencias
  5. Configurar los ajustes de PHP y PHP FPM
  6. Descarga y configuración de WordPress
  7. Configurar Nginx para servir contenido de wordpress
  8. Probar instalación de WordPress

1. Asegúrese de que el sistema esté actualizado

Antes de continuar, asegurémonos de que nuestro servidor esté actualizado. Use estos comandos para 1. Actualizar los repositorios del servidor, 2. Actualizar los paquetes del servidor a las últimas versiones:

# Update repos
sudo apt update

# Upgrade packages
sudo apt -y upgrade

2. Instalación del servidor de base de datos mysql 8 y creación de usuario de WordPress

El paquete mysql-server requerido no está presente en los repositorios predeterminados de Ubuntu. Así que tenemos que configurarlo.

El equipo de mysql proporciona un .deb descargable archivo que configurará los repositorios para la instalación del servidor mysql 8. Descárgalo con este comando:

curl -LO https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb

Una vez finalizada la descarga, necesitamos instalar el archivo deb descargado. Use este comando para instalar:

sudo dpkg -i ./mysql-apt-config_0.8.19-1_all.deb

Esto abrirá una ventana de configuración que le pedirá que elija la versión del servidor mysql y otros componentes, como el clúster, las bibliotecas cliente compartidas o el banco de trabajo MySQL

Por ahora, dado que solo estamos interesados ​​en la instalación del servidor Mysql, deje la configuración predeterminada y haga clic en Aceptar. para proceder.

Instalando el servidor mysql

Ahora que se han agregado los repositorios para incluir el servidor mysql, ahora podemos instalar. Actualicemos los repositorios para obtener lo último del repositorio agregado usando este comando:

$ sudo apt update

Luego instale el servidor Mysql 8 usando este comando:

sudo apt install -y mysql-server

Ingrese sus credenciales de administrador y el sistema instalará el paquete del servidor MySQL, los paquetes del cliente y los archivos comunes de la base de datos.

La instalación le pedirá que ingrese y confirme un usuario raíz y una contraseña para la base de datos MySQL.

Después de eso, se le pedirá que seleccione el complemento de autenticación. Se recomienda que elija utilizar una contraseña segura:

Después de eso, se establecerá la nueva contraseña y se recargará el servicio.

Confirme que el servidor mysql está funcionando con este comando:

$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 13:08:22 UTC; 2min 23s ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 45123 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 45173 (mysqld)
     Status: "Server is operational"
      Tasks: 37 (limit: 4710)
     Memory: 353.0M
     CGroup: /system.slice/mysql.service
             └─45173 /usr/sbin/mysqld

Sep 28 13:08:21 ip-172-26-11-229 systemd[1]: Starting MySQL Community Server...
Sep 28 13:08:22 ip-172-26-11-229 systemd[1]: Started MySQL Community Server.

El Active: active (running) since ... la parte anterior muestra que la aplicación está funcionando.

Conéctese al servidor y cree el usuario

Después de una instalación exitosa del servidor mysql, conectémonos al servidor y creemos un usuario de WordPress.

Conéctese al servidor mysql proporcionando la contraseña que proporcionamos anteriormente:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Luego crea una base de datos, un usuario y una contraseña:

mysql> create database wordpress_db;
Query OK, 1 row affected (0.01 sec)

mysql> create user 'wordpress_user'@'%' identified by 'S0mStrongPa$$word';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on wordpress_db.* to 'wordpress_user'@'%';
Query OK, 0 rows affected (0.00 sec)

3. Instale el servidor web Nginx

Nginx no funcionará si Apache está instalado y en ejecución. Como usaremos Nginx, usemos este comando para eliminar apache si está instalado en nuestro sistema:

$ sudo apt remove apache2 -y

Para instalar Nginx:

sudo dnf -y install nginx

Una vez completada la instalación, inicie Nginx y habilítelo para que se inicie automáticamente después de reiniciar

systemctl start nginx
systemctl enable nginx

Comprobar el estado de Nginx:

$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
       Docs: man:nginx(8)
   Main PID: 56990 (nginx)
      Tasks: 3 (limit: 4710)
     Memory: 3.7M
     CGroup: /system.slice/nginx.service
             ├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─56991 nginx: worker process
             └─56992 nginx: worker process

Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>

Para confirmar que Nginx realmente se está ejecutando y es accesible, use este comando:

curl http://server_ip/

Donde server_ip es la ip de tu servidor. Si por alguna razón no conoce la ip pública de su servidor, use esto para verificar

curl -4 icanhazip.com

Debería ver la página predeterminada de Nginx.

4. Instalar PHP con dependencias

Dado que los repositorios predeterminados contienen la versión 7.4 de php, vamos a instalarlo con este comando:

sudo apt install php -y

Confirme la versión instalada con el comando php -v :

~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

A continuación instalamos las dependencias de php. Las dependencias de php están disponibles como paquetes de nivel del sistema operativo con el prefijo php- . Instalemos las dependencias que necesita WordPress con este comando:

sudo apt install -y \
    php-common \
    php-mbstring \
    php-gd \
    php-intl \
    php-xml \
    php-json \
    php-mysqlnd \
    php-fpm

5. Configure los ajustes de PHP y PHP FPM

La configuración global de php para la versión de php instalada se almacena en /etc/php/7.4/cli/php.ini expediente. Actualicemos esta configuración.
Abra php.ini con tu editor de texto favorito, usaré vim

sudo vim /etc/php/7.4/cli/php.ini

Luego busque las siguientes variables y actualice los valores como se muestra a continuación:

post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 32M
date.timezone = Africa/Nairobi

6. Descarga y configuración de WordPress

Ahora que tenemos los servidores configurados, descarguemos e instalemos WordPress en el servidor. La última versión de WordPress se puede descargar desde su sitio web oficial.
Vamos a crear un directorio donde se sirva nuestro contenido de WordPress en esta ruta /var/www/example.citizix.com .

sudo mkdir /var/www/example.citizix.com

Asegúrese de que el usuario web sea el propietario del contenido:

sudo chown -R www-data.www-data /var/www/example.citizix.com

Descarga el último contenido de WordPress:

cd /tmp
curl -LO https://wordpress.org/latest.zip

Salida de muestra:

$ curl -LO https://wordpress.org/latest.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15.7M  100 15.7M    0     0  6650k      0  0:00:02  0:00:02 --:--:-- 6647k
$ ls
latest.zip

Extraiga y mueva el contenido a nuestro directorio del servidor. Asegúrese de tener unzip comando o instalar con sudo apt install unzip .

unzip latest.zip
sudo mv wordpress/* /var/www/example.citizix.com

# Confirm content with
ls /var/www/example.citizix.com

Configuración de WordPress

Ahora que el contenido de WordPress se ha copiado en el directorio del sitio, actualicemos la configuración de la base de datos utilizando el archivo de muestra proporcionado.
Cambie al directorio del sitio:

cd /var/www/example.citizix.com/

Copie su wp-config-sample archivo a wp-config.php .

cp wp-config-sample.php wp-config.php

Abra el archivo de configuración en un editor de texto:

vim wp-config.php

Actualice estas variables:DB_NAME , DB_USER , DB_PASSWORD , DB_HOST :

<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'xxx' );
/** MySQL database username */
define( 'DB_USER', 'xxx' );
/** MySQL database password */
define( 'DB_PASSWORD', 'xxx' );
/** MySQL hostname */
define( 'DB_HOST', 'xxx' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Guarde el archivo de texto una vez que haya terminado.

Hacer que el usuario web sea el propietario del directorio de WordPress, para que tenga acceso y pueda servir los archivos.

sudo chown -R www-data:www-data /var/www/example.citizix.com

7. Configurar Nginx para servir contenido de wordpress

Ahora que la configuración está en su lugar, configuremos un host virtual Nginx para servir el contenido que acabamos de agregar a /var/www/example.citizix.com
Vamos a crear un sitio virtual en el directorio en el que Nginx ofrece contenido aquí /etc/nginx/conf.d :

sudo vim /etc/nginx/conf.d/example.citizix.com.conf

Agrega el siguiente contenido:

server {
    listen 80;

    server_name example.citizix.com;
    root /var/www/example.citizix.com;
    index index.php;

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

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Asegúrese de que la configuración agregada sea buena usando este comando para probar:

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Una vez que confirme que todo está bien, reinicie Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

8. Finalmente, pruebe la instalación de WordPress

Una vez realizados todos los pasos anteriores, se completa la instalación desde la línea de comandos. Puede abrir su navegador web favorito y dirigirlo a http://example.citizix.com/. Debería obtener la siguiente pantalla que le pide que comience con la configuración de la instalación de WordPress:

[Pantalla aquí]

Debería ser fácil seguir las indicaciones para configurar WordPress por primera vez.


Ubuntu
  1. Cómo instalar WordPress usando Nginx en Ubuntu 18.04

  2. Instalar WordPress en Nginx Ubuntu

  3. Cómo instalar el servidor MySQL en Ubuntu 16.04

  4. Cómo instalar el servidor MySQL en Ubuntu 17.04

  5. Cómo instalar WordPress con OpenLiteSpeed ​​en Ubuntu 18.04

Nginx 1.7.9 + PHP5-FPM + MySQL (LEMP) en Ubuntu 14.10

Instale Nginx, MySQL, PHP (LEMP Stack) en Ubuntu 20.04 LTS

Desinstalar completamente el servidor MySQL en Ubuntu

Cómo instalar el servidor MySQL en Ubuntu

Cómo instalar Nginx en Ubuntu

Cómo instalar el servidor MySQL en Ubuntu 20.04