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
- Asegúrese de que el sistema esté actualizado
- Instalando el servidor de base de datos mysql 8 y creando un usuario de WordPress
- Instalar el servidor web Nginx
- Instalar PHP con dependencias
- Configurar los ajustes de PHP y PHP FPM
- Descarga y configuración de WordPress
- Configurar Nginx para servir contenido de wordpress
- 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.