Instalar Apache, PHP y WordPress en Ubuntu (Servidor Local)

Foro sobre el CMS WordPress
Responder
gbeltran
Mensajes: 311
Registrado: 13 May 2023, 01:15
Ubicación: Valencia - España
Contactar:

Instalar Apache, PHP y WordPress en Ubuntu (Servidor Local)

Mensaje por gbeltran »

Dejo aquí los pasos para instalar WordPress en un servidor local en Ubuntu (versión 22.04 LTS)

Pasos para instalar Apache, PHP y WordPress en un servidor local utilizando, por ejemplo, Ubuntu 22.04 LTS. Lo primero, asegúrate de tener acceso a la terminal y privilegios de administrador.

1. Verificar la versión de Ubuntu

Antes de comenzar, es útil saber qué versión de Ubuntu estás utilizando. Abre la terminal y ejecuta uno de los siguientes comandos:

Código: Seleccionar todo

lsb_release -a
o

Código: Seleccionar todo

cat /etc/os-release
2. Instalar Apache

2.1. Actualizar el sistema
Es recomendable actualizar tu sistema antes de instalar nuevos paquetes:

Código: Seleccionar todo

sudo apt update
sudo apt upgrade
2.2. Instalar Apache
Instala el servidor web Apache con el siguiente comando:

Código: Seleccionar todo

sudo apt install apache2
2.3. Iniciar y habilitar Apache
Inicia el servicio de Apache y habilítalo para que se inicie automáticamente al arrancar el sistema:

Código: Seleccionar todo

sudo systemctl start apache2
sudo systemctl enable apache2
2.4. Verificar el estado de Apache
Asegúrate de que Apache se esté ejecutando correctamente:

Código: Seleccionar todo

sudo systemctl status apache2
2.5. Probar la instalación
Abre un navegador y escribe `http://localhost`. Deberías ver la página de bienvenida de Apache.

3. Instalar PHP

3.1. Instalar PHP y módulos necesarios
Instala PHP y los módulos requeridos para WordPress:

Código: Seleccionar todo

sudo apt install php libapache2-mod-php php-mysql php-xml php-curl php-mbstring php-zip php-gd php-soap php-intl
3.2. Reiniciar Apache
Reinicia Apache para que reconozca los cambios:

Código: Seleccionar todo

sudo systemctl restart apache2
3.3. Verificar la instalación de PHP
Crea un archivo PHP para verificar que PHP está funcionando:

Código: Seleccionar todo

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Abre un navegador y ve a `http://localhost/info.php`. Deberías ver la información de PHP. Recuerda eliminar este archivo después de la verificación:

Código: Seleccionar todo

sudo rm /var/www/html/info.php
4. Instalar WordPress

4.1. Crear un directorio para WordPress
Crea un nuevo directorio llamado `wordpress` en `/var/www/html`:

Código: Seleccionar todo

sudo mkdir /var/www/html/wordpress
4.2. Descargar WordPress
Descarga la última versión de WordPress:

Código: Seleccionar todo

cd /tmp
wget https://wordpress.org/latest.tar.gz
4.3. Descomprimir WordPress
Descomprime el archivo descargado:

Código: Seleccionar todo

tar -xvzf latest.tar.gz
4.4. Mover los archivos a tu directorio de WordPress
Mueve los archivos descomprimidos al directorio que creaste:

Código: Seleccionar todo

sudo mv wordpress/* /var/www/html/wordpress/
4.5. Dar permisos adecuados
Cambia la propiedad del directorio y sus archivos:

Código: Seleccionar todo

sudo chown -R www-data:www-data /var/www/html/wordpress
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;
4.6. Configurar Apache para WordPress
Crea un archivo de configuración para WordPress:

Código: Seleccionar todo

sudo nano /etc/apache2/sites-available/wordpress.conf
Agrega el siguiente contenido:

Código: Seleccionar todo

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot /var/www/html/wordpress
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/html/wordpress>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
Guarda y cierra el archivo. Luego, habilita el nuevo sitio y el módulo de reescritura:

Código: Seleccionar todo

sudo a2ensite wordpress.conf
sudo a2enmod rewrite
4.7. Reiniciar Apache
Reinicia Apache para aplicar los cambios:

Código: Seleccionar todo

sudo systemctl restart apache2
5. Instalar MySQL o MariaDB

5.1. Instalar MySQL
Si prefieres usar MySQL, instálalo con:

Código: Seleccionar todo

sudo apt install mysql-server
4.8. Opción B: Instalar MariaDB
Si prefieres usar MariaDB (que es un fork de MySQL y es completamente compatible), puedes instalarlo con:

Código: Seleccionar todo

sudo apt install mariadb-server
4.9. Asegurar la instalación de MySQL/MariaDB
Después de instalar el servidor de base de datos, es recomendable ejecutar un script de seguridad que te ayudará a configurar algunas opciones de seguridad:

Código: Seleccionar todo

sudo mysql_secure_installation
Sigue las instrucciones en pantalla para establecer una contraseña de root, eliminar usuarios anónimos, deshabilitar el inicio de sesión remoto para el usuario root, y eliminar la base de datos de prueba.

5. Instalar phpMyAdmin
Una vez que tengas MySQL o MariaDB instalado y configurado, puedes proceder a instalar phpMyAdmin. Ejecuta el siguiente comando:

Código: Seleccionar todo

sudo apt install phpmyadmin
Durante la instalación, se te pedirá que elijas el servidor web que deseas configurar. Selecciona Apache y presiona Enter. Luego, se te preguntará si deseas usar dbconfig-common para configurar la base de datos. Selecciona Sí y proporciona la contraseña de la base de datos que configuraste anteriormente.

5.1. Configurar Apache para phpMyAdmin
Después de la instalación, es posible que necesites habilitar el acceso a phpMyAdmin en Apache. Puedes hacerlo creando un enlace simbólico en el directorio de configuración de Apache:

Código: Seleccionar todo

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
5.2. Reiniciar Apache
Reinicia Apache para aplicar los cambios:

Código: Seleccionar todo

sudo systemctl restart apache2
5.3. Acceder a phpMyAdmin
Ahora puedes acceder a phpMyAdmin abriendo un navegador y yendo a: http://localhost/phpmyadmin

Inicia sesión con el usuario root y la contraseña que configuraste durante la instalación.

Cuando tengas todo listo, inicia la instalación de WordPress en local accediendo a : http://localhost/wordpress, donde wordpress es el directorio que hemos creado en /var/www/html y en donde están alojados los archivos de instalación del CMS.

NOTA: Es posible que te aparezca un error durante el proceso de instalación, el error "Unable to write to wp-config.php file". Esto indica que WordPress no tiene permisos para crear o escribir en el archivo `wp-config.php`. Para solucionar este problema, puedes seguir estos pasos:

1. Crear el archivo `wp-config.php` manualmente

1.Navegar al directorio de WordPress**:

Código: Seleccionar todo

   cd /var/www/html/wordpress
2. Copiar el archivo de configuración de ejemplo**:
WordPress incluye un archivo de configuración de ejemplo llamado `wp-config-sample.php`. Puedes copiarlo y renombrarlo a `wp-config.php`:

Código: Seleccionar todo

   sudo cp wp-config-sample.php wp-config.php
3. Editar el archivo `wp-config.php`**:
Abre el archivo `wp-config.php` en un editor de texto:

Código: Seleccionar todo

   sudo nano wp-config.php

Tras esto, podrás continuar con la instalación sin problemas.

Iré anotando en respuestas a este post algunos posibles errores más que pudieran surgir...
Guillermo
Site Admin
Mensajes: 281
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Re: Instalar Apache, PHP y WordPress en Ubuntu (Servidor Local)

Mensaje por Guillermo »

Problema con la instalación de plugins en WordPress en modo local: se debe a los permisos de archivos y directorios. Cuando WordPress no puede escribir en el sistema de archivos, te pide que ingreses credenciales FTP o SFTP.

Para resolver esto, puedes seguir estos pasos:

1. Cambiar la propiedad de los archivos y directorios**: Asegúrate de que los archivos y directorios de tu instalación de WordPress sean propiedad del usuario que está ejecutando el servidor web (en tu caso, probablemente `www-data`). Puedes hacer esto con el siguiente comando:

Código: Seleccionar todo

 sudo chown -R www-data:www-data /ruta/a/tu/wordpress
Reemplaza `/ruta/a/tu/wordpress` con la ruta real a tu instalación de WordPress.

2. Ajustar los permisos: Los permisos 755 para directorios y 644 para archivos son generalmente adecuados. Puedes establecer los permisos de la siguiente manera:

Código: Seleccionar todo

   find /ruta/a/tu/wordpress -type d -exec chmod 755 {} \;  # Para directorios
   find /ruta/a/tu/wordpress -type f -exec chmod 644 {} \;  # Para archivos
3. Desactivar la opción de FTP en WordPress: Si prefieres que WordPress no te pida las credenciales de FTP, puedes agregar la siguiente línea en el archivo `wp-config.php` de tu instalación de WordPress:

Código: Seleccionar todo

   define('FS_METHOD', 'direct');
Esto le indica a WordPress que use el método directo para las actualizaciones y la instalación de plugins, en lugar de intentar usar FTP.

Después de realizar estos cambios, deberías poder instalar y actualizar plugins directamente desde el panel de administración de WordPress sin que te pida las credenciales de FTP.

NOTA: Eso no me ha funcionado. Pruebo lo siguiente:

Sí funciona!! Agregar tu usuario al grupo www-data
Si deseas que tu usuario local tenga acceso a los archivos de WordPress, puedes agregar tu usuario al grupo www-data. Esto te permitirá tener permisos de escritura sin cambiar los permisos de los archivos a 777, lo cual no es seguro. Para hacerlo, ejecuta:

Código: Seleccionar todo

sudo usermod -aG www-data $USER
Después de ejecutar este comando, cierra la sesión y vuelve a iniciarla para que los cambios surtan efecto.

2. Cambiar la propiedad de los archivos
Si prefieres que tu usuario tenga acceso total a los archivos de WordPress, puedes cambiar la propiedad de los archivos a tu usuario. Sin embargo, esto no es recomendable en un entorno de producción. Si decides hacerlo, puedes ejecutar:
sudo chown -R $USER:$USER /var/www/html/wordpress
3. Verificar permisos de wp-content
Asegúrate de que el directorio wp-content y sus subdirectorios tengan los permisos correctos. Puedes establecer permisos más restrictivos que 777, como 755 para directorios y 644 para archivos, y asegurarte de que tu usuario tenga acceso:

Código: Seleccionar todo

sudo find /var/www/html/wordpress/wp-content -type d -exec chmod 755 {} \;  # Para directorios
sudo find /var/www/html/wordpress/wp-content -type f -exec chmod 644 {} \;  # Para archivos
4. Verificar la configuración de PHP
Asegúrate de que la configuración de PHP no esté restringiendo el acceso a los directorios. Revisa el archivo php.ini y verifica la directiva open_basedir. Si está habilitada, asegúrate de que incluya la ruta a tu instalación de WordPress.

5. Reiniciar el servidor web
Después de realizar cambios en los permisos o la propiedad, asegúrate de reiniciar el servidor web:

Código: Seleccionar todo

sudo systemctl restart apache2
6. Probar la instalación de plugins
Después de realizar estos cambios, intenta nuevamente instalar un plugin o realizar una actualización en WordPress.

AHORA YA FUNCIONA LA INSTALACIÓN DE PLUGINS!
Guillermo
Site Admin
Mensajes: 281
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Re: Instalar Apache, PHP y WordPress en Ubuntu (Servidor Local)

Mensaje por Guillermo »

TEMA ESTRUCTURA PERMALINKS: Crear el archivo .htaccess:

Pasos para crear el archivo .htaccess
Crear el archivo .htaccess: Puedes crear el archivo manualmente en el directorio raíz de tu instalación de WordPress. Abre una terminal y navega a la carpeta de tu instalación de WordPress:

Código: Seleccionar todo

cd /var/www/html/wordpress
Luego, crea el archivo .htaccess:

Código: Seleccionar todo

sudo touch .htaccess
Configurar el archivo .htaccess: Abre el archivo .htaccess en un editor de texto. Puedes usar nano o cualquier otro editor que prefieras.

Código: Seleccionar todo

sudo nano .htaccess
Agrega el siguiente contenido básico para WordPress:

Código: Seleccionar todo

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Guardar y salir: Si estás usando nano, guarda los cambios presionando CTRL + O, luego presiona Enter, y sal del editor presionando CTRL + X.
Ajustar permisos: Asegúrate de que el archivo .htaccess tenga los permisos correctos. Generalmente, los permisos 644 son adecuados:

Código: Seleccionar todo

sudo chmod 644 .htaccess
Verificar la configuración de Apache: Asegúrate de que el módulo mod_rewrite esté habilitado en Apache, ya que es necesario para que las reglas de reescritura funcionen. Puedes habilitarlo con el siguiente comando:

Código: Seleccionar todo

sudo a2enmod rewrite
Luego, reinicia Apache:

Código: Seleccionar todo

sudo systemctl restart apache2
Probar los enlaces permanentes: Después de crear y configurar el archivo .htaccess, vuelve a la configuración de enlaces permanentes en el panel de administración de WordPress y guarda los cambios. Esto debería actualizar las reglas de reescritura y permitir que tus enlaces permanentes funcionen correctamente.

Si no funciona, cambiar el archivo de configuración del directorio de Apache:

Código: Seleccionar todo

cd /etc/apache2/sites-available/wordpress.conf

sudo nano /etc/apache2/sites-available/wordpress.conf
Y escribir en el mismo:

Código: Seleccionar todo

<Directory /var/www/html/wordpress>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
Guillermo
Site Admin
Mensajes: 281
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Re: Instalar Apache, PHP y WordPress en Ubuntu (Servidor Local)

Mensaje por Guillermo »

Problema con los enlaces permanentes (SEO Friendly):

Agregar al archivo general de configuración de Apache (etc/apache2/sites-available/000-default.conf ) lo siguiente:

Código: Seleccionar todo

<Directory /var/www/html>
    AllowOverride All
</Directory>
Sería así (si utilizas nano como editor):

Código: Seleccionar todo

usuario@maquina:~$ sudo nano /etc/apache2/sites-available/000-default.conf
El archivo de configuración quedará así:

Código: Seleccionar todo

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf


<Directory /var/www/html>
    AllowOverride All
</Directory>
</VirtualHost>
Si no está configurado como All, cámbialo y guarda el archivo.

Ahora ya podrás cambiar la opción de enlaces permanentes a tu gusto en WordPress.

Con esto último, ya lo tengo todo listo!
Guillermo
Site Admin
Mensajes: 281
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Re: Instalar Apache, PHP y WordPress en Ubuntu (Servidor Local)

Mensaje por Guillermo »

Preparando un serie de posts en Indaga.net sobre el tema.... https://indaga.net/instalar-un-servidor ... myadmin-i/
Volviendo al cross-blogging, aunque esea entre mí mismo...
El término "cross-blogging" se refiere a la práctica de colaborar entre diferentes blogs o bloggers para crear contenido conjunto, compartir publicaciones o promocionar el trabajo de otros. Esta colaboración puede tomar varias formas, como:

1. Publicaciones de invitados: Un blogger escribe un artículo para ser publicado en el blog de otro. Esto permite que ambos bloggers lleguen a nuevas audiencias y compartan su experiencia.

2. Entrevistas: Un blogger puede entrevistar a otro blogger y publicar la conversación en su propio blog, lo que ayuda a ambos a ganar visibilidad.

3. Series de publicaciones: Varios bloggers pueden colaborar en una serie de publicaciones sobre un tema específico, donde cada uno contribuye con su perspectiva o experiencia.

4. Menciones y enlaces: Los bloggers pueden mencionar y enlazar a otros blogs en sus publicaciones, lo que puede ayudar a aumentar el tráfico y la visibilidad de ambos.

5. Eventos y webinars: Los bloggers pueden organizar eventos en línea o webinars juntos, donde comparten conocimientos y atraen a sus respectivas audiencias.

Beneficios del cross-blogging:
- Aumento de la audiencia: Al colaborar con otros bloggers, puedes llegar a nuevas audiencias que de otro modo no te conocerían.
- Mejora del SEO: Los enlaces entre blogs pueden mejorar el posicionamiento en motores de búsqueda, ya que los motores de búsqueda valoran los enlaces de calidad.
- Diversificación del contenido: La colaboración puede aportar nuevas ideas y perspectivas, enriqueciendo el contenido de ambos blogs.
- Construcción de relaciones: Fomenta la creación de redes y relaciones dentro de la comunidad de bloggers.

Así, el cross-blogging es una estrategia efectiva para aumentar la visibilidad, mejorar el contenido y construir relaciones dentro de la comunidad de blogs.
Responder