En este artículo, le daremos instrucciones paso a paso sobre cómo configurar un entorno web en un servidor Linux. En primer lugar, debe comprender que un servidor web típico consta de varios componentes que interactúan entre sí:
- Servidor HTTP
- intérprete de lenguaje de programación
- sistema de gestión de bases de datos (DBMS)
Para administrar su sitio web, también necesitará configurar un sistema de gestión de contenido (CMS), una interfaz web para la gestión de bases de datos y acceso FTP.
Consideremos la configuración Apache-PHP-MySQL (MariaDB) en Linux. También instalaremos el servidor FTP vsftpd, phpMyAdmin (una interfaz web para la gestión de bases de datos) y el sistema de gestión de contenido WordPress.
Para empezar por favor pedir servidor VPS or servidor dedicadoPor ejemplo, usamos un servidor virtual con dirección IP estática y Ubuntu Server 18.04. Todos los comandos fueron ejecutados por el usuario root.
Configuración del servidor HTTP Apache
1. Instalación
apt install apache2
Cuando finalice la instalación, abra un navegador y verifique “http://[dirección_ip_del_servidor]”
Si ve una página de bienvenida como ésta en la captura de pantalla anterior, eso significa que su servidor HTTP está funcionando.
2. Crea una página de prueba
El directorio raíz predeterminado para el sitio web es “/var/www/html”Aquí encontrará la página de bienvenida que acaba de ver. Creemos un directorio aparte. “/var/www/sites” para hosts virtuales y una subcarpeta “/var/www/sites/site1” con la página de índice de su sitio web de prueba.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
En el resultado el archivo “/var/www/sites/site1/index.html” debe contener solo una línea de código html:
<H1>Welcome</H1>
3. Configuración del servidor Apache
Los archivos de configuración de los sitios web se encuentran en “/etc/apache2/sitios-disponibles/” Catálogo. Creemos un archivo de configuración para un nuevo host virtual tomando la configuración predeterminada del archivo. “000-default.conf” como base.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Abra el archivo “sitio1.conf” y cambiar el “Documento raíz” atributo. Ponga la ruta de su sitio web como valor, por lo que en nuestro caso es “/var/www/sites/site1”
En esta etapa, no necesitamos configurar el funcionamiento simultáneo de varios sitios web, por lo que podemos deshabilitar el sitio web predeterminado y habilitar el nuevo. Recargue la configuración del servidor para aplicar los cambios.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Abre el enlace “http://[dirección_ip_del_servidor]” nuevamente y asegúrese de que en lugar de la página de bienvenida predeterminada tengamos nuestra nueva página.
Terminamos de configurar nuestro servidor HTTP y podemos proceder al siguiente paso.
Configuración del servidor FTP
1. Instalación
Instalemos nuestro servidor ftp y un paquete adicional “db-util”, que necesitaremos configurar usuarios virtuales
apt install vsftpd db-util
2. Crear una cuenta local
El servidor vsftpd nos permite configurar los permisos de acceso de forma muy flexible. Para nuestras tareas, necesitamos proporcionar a los usuarios de FTP lo siguiente:
- acceso completo a los contenidos de “/var/www/sitios/”;
- Desactivar todo lo anterior “/var/www/”;
- conexión con una cuenta virtual;
Crea una cuenta local "virtual" Sin permiso de inicio de sesión pero con acceso a la carpeta de inicio “/var/www/”Esta cuenta será utilizada por los usuarios FTP para conectarse al servidor.
useradd -d /var/www virtual
"Raíz" será el dueño de la “/var/www” carpeta por defecto. Para que los usuarios de FTP puedan modificar el contenido de los sitios web, cambiemos el propietario de “/var/www/sitios/” incluidas las subcarpetas de "virtual".
chown -R virtual:root /var/www/sites
Como resultado, el usuario "virtual" Podrán ver el contenido de “/var/www/” y escribe en el “/var/www/sitios/” subcarpeta
3. Configuración
La configuración principal está en el archivo “/etc/vsftpd.conf”, así que abrámoslo y editémoslo de la siguiente manera:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Crear la base de datos
Necesitará una base de datos para almacenar datos de cuentas virtuales.
Primero, vamos a crear un archivo de texto simple. “usuarios.txt” En la carpeta de inicio, guarde los datos de acceso (usuario y contraseña) de los usuarios virtuales en cada línea. Por ejemplo, necesitaremos un usuario virtual con el nombre de usuario “ftp” y la contraseña “Qwe123”Entonces el archivo se verá así:
ftp
Qwe123
Vamos a crear la base de datos
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Modifiquemos el archivo PAM predeterminado “/etc/pam.d/vsftp” como sigue:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Tenga en cuenta que la ruta de la “pam_userdb.so” La biblioteca puede ser diferente, pero puedes cambiarla si es necesario.
Recargue el servidor vsftpd para aplicar los cambios.
systemctl restart vsftpd
Terminamos de configurar el servidor FTP.
Detalles de conexión:
- ftp://[dirección_ip_del_servidor]
- inicio de sesión: ftp
- contraseña: Qwe123
Configuración del servidor PHP
1. Instalación de PHP
Hoy, la última versión estable de PHP es PHP 7.4.5, que no está incluida en los repositorios oficiales de Ubuntu. Conectémonos a un repositorio externo e instalemos la última versión de PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Comprobar
Para que PHP se ejecute, el archivo de página web debe tener “.php” Extensión. Renombraremos nuestra página de prueba:
cd /var/www/sites/site1/
mv index.html index.php
Agregue la siguiente línea php al archivo “/var/www/sites/site1/index.php”, por lo que el archivo debería verse así:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Guarde los cambios y compruebe el resultado en el navegador.
Si ves el resultado de la función “phpinfo()”El intérprete de PHP funciona correctamente. Ahora, procedamos al siguiente paso.
Configuración de MySQL (MariaDB)
1. Instalación
Instalemos MariaDB y un módulo PHP para MySQL y luego recarguemos Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Actualice la página de prueba y vaya a la sección PDO en la tabla de configuración de PHP. Si encuentra la sección... “PDO_mysql”, entonces significa que el controlador para Mysql está instalado correctamente.
Luego necesitaremos realizar la configuración de seguridad inicial de MariaDB y establecer la contraseña para el "raíz" usuario, deshabilite el acceso remoto y elimine todas las cuentas de invitados.
mysql_secure_installation
En el primer paso, tenemos que entrar en el "raíz" la contraseña del usuario para acceder al DBMS o presione Enter si no hay contraseña. Dado que no hay contraseña establecida para el "raíz" usuario después de la instalación, simplemente presione "Entrar".
Tenga en cuenta que MariaDB ya cuenta con sus propias cuentas, que no tienen nada que ver con las cuentas del sistema operativo. Por lo tanto, el único usuario con el que trabajamos en MariaDB es "raíz".
Después de eso, el configurador nos pedirá que configuremos la contraseña para el usuario root. Tipo "Y" Para confirmar e ingresar la nueva contraseña. En nuestro caso, es “Qwe123”
Responder "Y" A todas las demás preguntas hasta el final.
¡La configuración está hecha!
Detalles de acceso a MariaDB:
- Iniciar sesión: raíz
- Contraseña: Qwe123
Configuración de phpMyAdmin
1. Instalación
Instalemos la extensión necesaria para PHP - mbstring.
apt install php-mbstring
En el repositorio oficial sólo hay una versión desactualizada de phpMyAdmin, así que instalemos la nueva manualmente.
Abra el sitio web oficial del proyecto “https://www.phpmyadmin.net/" y descargue el archivo más reciente.
Copiar el archivo al servidor en el “/var/www/sitios/” carpeta usando cualquier cliente ftp.
Desarchiva la carpeta y cámbiale el nombre a “phpMyAdmin”No olvides instalar el "abrir la cremallera" Utilidad. Puedes eliminar el archivo después de descomprimirlo.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Crea la siguiente carpeta “/var/www/sites/phpMyAdmin/tmp” Para archivos temporales y habilitar el acceso para todos. Si no lo hace, phpMyAdmin informará que se ha denegado el acceso a la carpeta temporal.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Crea un alias
Dado que phpMyAdmin no es un host virtual separado y está ubicado fuera del directorio raíz, configuremos el alias.
Abra el archivo “/etc/apache2/mods-available/alias.conf” y agrega esta línea:
Alias /pma “/var/www/sites/phpMyAdmin"
Dentro de esta sección:
<IfModule alias_module>
</IfModule>
Recargue Apache para aplicar los cambios.
systemctl reload apache2
El alias está configurado, por lo que podemos acceder a phpMyAdmin aquí “http://[dirección_ip_del_servidor]/pma”.
3. Prepare la base de datos
Como restringimos el uso del usuario root durante la configuración inicial de MariaDB, tendremos que crear una nueva cuenta con todos los permisos que se utilizarán para acceder a phpMyAdmin.
Además, para habilitar características adicionales de phpMyAdmin necesitaremos una base de datos de servicio y una cuenta para acceder a ella.
Vamos a crear las cuentas
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Tenga en cuenta que el nombre de la base de datos en la segunda solicitud está en back sparks “… ON `phpmyadmin`.* A 'pma'@'localhost' IDENTIFICADO POR …”,
Como resultado, se crearán dos cuentas en MariaDB:
- Usuario: pma, Contraseña: Qwe123Acceso completo, se utilizará para iniciar sesión en phpMyAdmin
- Inicio de sesión: pmaservice, Contraseña: Qwe123La cuenta de servicio es necesaria para que funcionen funciones adicionales
En el siguiente paso, configuraremos estos detalles en el archivo de configuración. “config.inc.php”.
Luego necesitaremos importar la base de datos desde el archivo “phpMyAdmin/sql/create_tables.sql”.
Vamos a importarlo con la ayuda de phpMyAdmin.
Abre el enlace “http://[dirección_ip_del_servidor]/pma”
Ingrese inicio de sesión “pma” y la contraseña “Qwe123”
Vaya a "Importar", haga clic en "Seleccione Archivo" y seleccione el archivo "sql/create_tables.sql" En el directorio raíz de phpMyAdmin. Se supone que la carpeta está en tu PC. “phpMyAdmin” con archivos. Desarchívelo si es necesario.
Haga clic en "Siguiente" para empezar a importar.
4. Configuración
Copiemos el archivo de configuración de la plantilla
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Abramos el archivo de configuración “/var/www/sites/phpMyAdmin/config.inc.php” y realizar los siguientes cambios:
Establezca un valor aleatorio de 32 caracteres para el atributo “$cfg['blowfish_secret']”Utilice cualquier generador de contraseñas para ello.
Eliminar los comentarios de todas las líneas del “Configuración de almacenamiento de phpMyAdmin” sección y configure el nombre de usuario y la contraseña de la cuenta de servicio de MariaDB para el “usuario de control” y “Pase de control” atributos en consecuencia. En nuestro caso, es servicio pma y Qwe123.
Guarde los cambios.
Detalles de acceso para phpMyadmin:
- http://[server’s_ip_address]/pma/
- Iniciar sesión: pma
- Contraseña: Qwe123
Cómo instalar y configurar WordPress en un servidor Linux
1. Ubicación de paquetes y archivos de WordPress
Vaya al sitio web oficial de WP “https://ru.wordpress.org/" y descargue el archivo a su PC local.
Sube el archivo al servidor en el “/var/www/sitios/” carpeta y desarchívela en la “wordpress"Carpeta.
Copie el contenido del “/var/www/sites/wordpress/” carpeta raíz de la “/var/www/sites/site1/” sitio web.
Como copiamos los archivos a través de la consola con permisos de root, cambiemos el propietario del archivo. “/var/www/sitios/” carpeta que incluye el contenido de "virtual"Esto es necesario para habilitar el acceso completo a la conexión FTP a través del cliente.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Crea una base de datos para WordPress
Inicie sesión en phpMyAdmin y haga clic en "Crear base de datos". Indique un nombre de base de datos arbitrario (en nuestro caso, "wordpress_db") y haga clic en el botón "Crear".
Seleccione la nueva base de datos en la sección izquierda y haga clic “Privilegios”
A continuación, haga clic en “Añadir cuenta de usuario”.
Introduzca su nombre de usuario y contraseña (serviciowp / Qwe123) en la ventana abierta, marque “Otorgar todos los privilegios en wordpress_db” y haga clic "Siguiente"
En la página siguiente haga clic “Cancelar todo” para restablecer todos los privilegios en el nivel de base de datos y haga clic en "Siguiente".
3. Configuración de WordPress en un servidor Linux
Vaya al directorio raíz de su sitio web y copie el archivo de configuración de la plantilla
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Abra la “wp-config.php” archivo e ingrese los parámetros de conexión a la base de datos que creamos en el paso anterior y guarde los cambios.
4. Instalar CMS WordPress
Abra el siguiente enlace en el navegador “http://[dirección_ip_del_servidor]/wp-admin/install.php”.
Rellene todos los campos y haga clic “Instalar WordPress”Establezca un nombre de usuario y una contraseña aleatorios. En nuestro caso, es... wpadmin y Qwe123 en consecuencia.
Estos detalles se utilizarán para acceder a WordPress.
Después de terminar la instalación, abra el enlace “http://[dirección_ip_del_servidor]/wp-login.php”, ingrese los datos de acceso e inicie sesión en WordPress.
Deberías ver una de las plantillas de WordPress en la página principal.
La configuración ha finalizado.
Detalles de acceso a WordPress:
- http://[server’s_ip_address]/wp-login.php
- Iniciar sesión: wpadmin
- Contraseña: Qwe123