Neste artigo, darémosche instrucións paso a paso sobre como configurar o ambiente web nun servidor con Linux. Primeiro de todo, debes entender que un servidor web típico consta de algúns compoñentes interactivos:
- Servidor HTTP
- intérprete de linguaxe de programación
- Sistema de xestión de bases de datos (DBMS)
Para xestionar o seu sitio web tamén terá que configurar un sistema de xestión de contidos (CMS), unha interface web para a xestión de bases de datos e acceso FTP.
Consideremos a configuración dunha configuración moi popular Apache-PHP-MySQL (MariaDB) en Linux. Tamén instalaremos o servidor ftp vsftpd, phpMyAdmin - unha interface web para a xestión de bases de datos e un sistema de xestión de contidos WordPress.
Para comezar, solicita un servidor VPS ou un servidor dedicado . Por exemplo, empregamos un servidor virtual cun enderezo IP estático con Ubuntu Server 18.04. Todos os comandos foron executados polo usuario root.
Configuración do servidor HTTP Apache
1. instalación
apt install apache2
Cando remate a instalación, abra un navegador e comprobe "http://[enderezo_ip_do_servidor]"
Se ves unha páxina de benvida como esta na captura de pantalla anterior, isto significa que o teu servidor HTTP está a funcionar.
2. Crea unha páxina de proba
O directorio raíz predeterminado para o sitio web é "/var/www/html" . Aquí é onde podes atopar a páxina de benvida que acabas de ver. Creemos un directorio separado "/var/www/sites" para os hosts virtuais e unha subcartafol "/var/www/sites/site1" coa páxina de índice do teu sitio web de proba.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Como resultado, o ficheiro "/var/www/sites/site1/index.html" debería conter só unha liña de código html:
<H1>Welcome</H1>
3. Configuración do servidor Apache
Os ficheiros de configuración dos sitios web están no catálogo "/etc/apache2/sites-available/" . Imos crear un ficheiro de configuración para un novo servidor virtual tomando como base a configuración predeterminada do ficheiro "000-default.conf" .
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Abre o ficheiro “site1.conf” e cambia o atributo “DocumentRoot” . Introduce a ruta do teu sitio web como valor, polo que no noso caso é “/var/www/sites/site1”
Nesta fase non necesitamos configurar o funcionamento simultáneo de varios sitios web, polo que podemos desactivar o sitio web predeterminado e activar o novo sitio. Volve cargar a configuración do servidor para aplicar os cambios.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Abre de novo a ligazón “http://[enderezo_ip_do_servidor]” e asegúrate de que en lugar da páxina de benvida predeterminada temos a nosa nova páxina.
Rematamos a configuración do noso servidor HTTP e podemos pasar ao seguinte paso.
Configuración do servidor FTP
1. instalación
Instalemos o noso servidor ftp e un paquete adicional "db-util" , que necesitaremos para configurar usuarios virtuais.
apt install vsftpd db-util
2. Crear unha conta local
O servidor vsftpd permítenos configurar os permisos de acceso dunha forma moi flexible. Para as nosas tarefas, necesitamos proporcionar aos usuarios de ftp o seguinte:
- acceso total aos contidos de “/var/www/sites/”;
- desactiva todo o que está arriba “/var/www/”;
- conexión cunha conta virtual;
Crea unha conta local "virtual" sen permisos de inicio de sesión pero con acceso ao cartafol principal "/var/www/" . Os usuarios de ftp usarán esta conta para conectarse ao servidor.
useradd -d /var/www virtual
Por defecto, «Root» será o propietario da carpeta «/var/www» . Para que os usuarios de ftp poidan modificar o contido dos sitios web, imos cambiar o propietario de «/var/www/sites/», incluíndo as subcartafoles de «virtual».
chown -R virtual:root /var/www/sites
Como resultado, o usuario "virtual" poderá ver o contido de "/var/www/" e escribir na subcartafol "/var/www/sites/".
3. configuración
A configuración principal está no ficheiro “/etc/vsftpd.conf” , así que imos abrilo e editalo do seguinte xeito:
#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. Crea a base de datos
Necesitará unha base de datos para almacenar os datos das contas virtuais.
Primeiro, creemos un ficheiro de texto sinxelo "usuarios.txt" no cartafol de inicio e gardemos os detalles de acceso (usuario e contrasinal) dos usuarios virtuais en cada liña. Por exemplo, necesitaremos un usuario virtual co usuario "ftp" e o contrasinal "Qwe123" . Entón, o ficheiro terá este aspecto:
ftp
Qwe123
Imos crear a base de datos
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Modifiquemos o ficheiro PAM predeterminado “/etc/pam.d/vsftp” do seguinte xeito:
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
Ten en conta que a ruta da biblioteca “pam_userdb.so” pode ser diferente, pero podes cambiala se é necesario.
Volve cargar o servidor vsftpd para aplicar os cambios.
systemctl restart vsftpd
Rematamos a configuración do servidor FTP.
Detalles da conexión:
- ftp://[enderezo_ip_servidor]
- inicio de sesión: ftp
- contrasinal: Qwe123
Configuración do servidor PHP
1. Instalación de PHP
Hoxe a última versión estable de PHP é php 7.4.5 que non está incluído nos repositorios oficiais de Ubuntu. Conectemos un repositorio de terceiros e instalemos a ú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. Comprobe
Para que PHP se poida executar, o ficheiro da páxina web debe ter a extensión ".php" . Cambiemos o nome da nosa páxina de proba:
cd /var/www/sites/site1/
mv index.html index.php
Engade a seguinte liña de PHP ao ficheiro "/var/www/sites/site1/index.php" , de xeito que o ficheiro debería ter este aspecto:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Garda os cambios e comproba o resultado no navegador.
Se ves o resultado da función “phpinfo()” , o intérprete de PHP funciona correctamente. Agora imos ao seguinte paso.
Configuración de MySQL (MariaDB).
1. instalación
Instalemos MariaDB e un módulo PHP para MySQL e despois recarguemos Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Actualiza a páxina de proba e vai á sección PDO na táboa de configuración de PHP. Se atopas a sección "PDO_mysql" , significa que o controlador para MySQL está instalado correctamente.
Despois teremos que facer a configuración de seguridade inicial de MariaDB e establecer o contrasinal para o usuario "root" , desactivar o acceso remoto e eliminar todas as contas de convidado.
mysql_secure_installation
No primeiro paso, temos que introducir o contrasinal do usuario "root" para acceder ao SGBD ou premer Intro se non hai contrasinal. Dado que non hai ningún contrasinal establecido para o usuario "root" despois da instalación, só tes que premer "Intro".
Ten en conta que en MariaDB xa existen as súas propias contas que non teñen nada que ver coas contas do sistema operativo. Polo tanto, o único usuario co que traballamos en MariaDB é "root".
Despois diso, o configurador pediranos que configuremos o contrasinal para o usuario root. Escriba "S" para confirmar e introducir o novo contrasinal. No noso caso, é "Qwe123".
Responde "Si" a todas as preguntas restantes ata o final.
A configuración está feita!
Detalles de acceso a MariaDB:
- Inicio de sesión: root
- Contrasinal: Qwe123
Configuración de phpMyAdmin
1. instalación
Instalemos a extensión necesaria para PHP: mbstring.
apt install php-mbstring
No repositorio oficial só hai unha versión desactualizada de phpMyAdmin, así que imos instalar a nova manualmente.
Abre a páxina web oficial do proxecto “ https://www.phpmyadmin.net/ ” e descarga o arquivo máis recente.
Copia o arquivo ao servidor, na carpeta "/var/www/sites/", usando calquera cliente ftp.
Desarquiva o cartafol e renoméao a "phpMyAdmin" . Non esquezas instalar a utilidade "unzip" . Podes eliminar o arquivo despois de desarquivalo.
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 o seguinte cartafol "/var/www/sites/phpMyAdmin/tmp" para ficheiros temporais e activa o acceso para todos. Se non o fas, phpMyAdmin informará de que se denegou o acceso ao cartafol temporal.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Crea un alias
Xa que phpMyAdmin non é un host virtual separado e está situado fóra do directorio raíz, configuremos o alias.
Abre o ficheiro “/etc/apache2/mods-available/alias.conf” e engade esta liña:
Alias /pma “/var/www/sites/phpMyAdmin"
dentro desta sección:
<IfModule alias_module>
</IfModule>
Recarga Apache para aplicar os cambios.
systemctl reload apache2
O alias está configurado, polo que podemos acceder a phpMyAdmin aquí "http://[enderezo_ip_do_servidor]/pma".
3. Prepare a base de datos
Dado que restrinximos o uso do usuario root durante a configuración inicial de MariaDB, teremos que crear unha nova conta con todos os permisos que se utilizarán para acceder a phpMyAdmin.
Ademais, para activar funcións adicionais de phpMyAdmin necesitaremos unha base de datos de servizos e unha conta para acceder a ela.
Imos crear as contas
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
Ten en conta que o nome da base de datos na segunda solicitude está en back sparks “… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …”,
Como resultado, haberá dúas contas creadas en MariaDB:
- Inicio de sesión: pma, contrasinal: Qwe123Acceso completo, empregarase para iniciar sesión en phpMyAdmin
- Inicio de sesión: pmaservice, Contrasinal: Qwe123A conta de servizo é necesaria para que funcionen funcións adicionais
No seguinte paso, definiremos estes detalles no ficheiro de configuración “config.inc.php”.
Despois teremos que importar a base de datos desde o ficheiro “phpMyAdmin/sql/create_tables.sql”.
Importémolo coa axuda de phpMyAdmin.
Abre a ligazón “http://[enderezo_ip_do_servidor]/pma”
Introduza o inicio de sesión “pma” e o contrasinal “Qwe123”
Vaia a "Importar" , prema en "Seleccionar ficheiro" e seleccione o ficheiro "sql/create_tables.sql" no directorio raíz de phpMyAdmin. Alí debería estar o cartafol "phpMyAdmin" no seu PC cos ficheiros. Desarquiveo se é necesario.
Fai clic en "Seguinte" para comezar a importación.
4. configuración
Imos copiar o ficheiro de configuración do modelo
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Abrimos o ficheiro de configuración “/var/www/sites/phpMyAdmin/config.inc.php” e facemos os seguintes cambios:
Define un valor aleatorio de 32 caracteres para o atributo "$cfg['blowfish_secret']" . Usa calquera xerador de contrasinais para iso.
Elimina os comentarios de todas as liñas da sección "Configuración de almacenamento de phpMyAdmin" e define o usuario e o contrasinal da conta de servizo de MariaDB para os atributos "controluser" e "controlpass" segundo corresponda. No noso caso, son pmaservice e Qwe123.
Garda os cambios.
Detalles de acceso para phpMyadmin:
- http://[server’s_ip_address]/pma/
- Inicio de sesión: pma
- Contrasinal: Qwe123
Como instalar e configurar WordPress nun servidor Linux
1. Paquete de WordPress e colocación de ficheiros
Vaia á páxina web oficial de WP " https://ru.wordpress.org/ " e descargue o arquivo no seu PC local.
Sube o arquivo ao servidor na carpeta "/var/www/sites/" e desarquivao na carpeta "wordpress ".
Copia o contido da carpeta raíz "/var/www/sites/wordpress/" do sitio web "/var/www/sites/site1/".
Xa que copiamos os ficheiros a través da consola con permisos de root, imos cambiar o propietario da carpeta "/var/www/sites/", incluíndo o contido de "virtual" . Isto é necesario para habilitar o acceso completo para a conexión ftp a través do 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 unha base de datos para WordPress
Inicie sesión en phpMyAdmin e prema en "Crear base de datos". Especifique un nome de base de datos arbitrario, no noso caso "wordpress_db" e prema no botón "Crear".
Selecciona a nova base de datos na sección esquerda e fai clic en "Privilexios"
A continuación, fai clic en "Engadir conta de usuario".
Introduza o nome de usuario e o contrasinal ( wpservice / Qwe123 ) na xanela que se abre, marque "Conceder todos os privilexios na base de datos de wordpress" e prema en "Seguinte".
Na seguinte páxina, fai clic en "Cancelar todo" para restablecer todos os privilexios a nivel de base de datos e fai clic en "Seguinte".
3. Configuración de WordPress nun servidor Linux
Vaia ao directorio raíz do seu sitio web e copie o ficheiro de configuración do modelo
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Abre o ficheiro “wp-config.php” e introduce os parámetros de conexión á base de datos que creamos no paso anterior e garda os cambios.
4. Instala CMS WordPress
Abre a seguinte ligazón no navegador : “http://[enderezo_ip_do_servidor]/wp-admin/install.php”.
Preenche todos os campos e fai clic en "Instalar WordPress" . Define un nome de usuario e un contrasinal aleatorios. No noso caso, é wpadmin e Qwe123 segundo corresponda.
Estes detalles serán utilizados para acceder a WordPress.
Despois de rematar a instalación, abre a ligazón “http://[enderezo_ip_do_servidor]/wp-login.php” , introduce os detalles de acceso e inicia sesión en WordPress.
Deberías ver un dos modelos de WordPress na páxina principal.
A configuración está rematada.
Detalles de acceso a WordPress:
- http://[server’s_ip_address]/wp-login.php
- Inicio de sesión: wpadmin
- Contrasinal: Qwe123