Neste artigo, daremos instruções passo a passo sobre como configurar o ambiente web em um servidor executando Linux. Primeiramente, você precisa entender que um servidor web típico consiste em alguns componentes interativos:
- Servidor HTTP
- interpretador de linguagem de programação
- sistema de gerenciamento de banco de dados (DBMS)
Para gerenciar seu site, você também precisará configurar um sistema de gerenciamento de conteúdo (CMS), uma interface web para gerenciamento de banco de dados e acesso FTP.
Vamos considerar a configuração muito popular Apache-PHP-MySQL(MariaDB) no Linux. Também instalaremos o servidor ftp vsftpd, phpMyAdmin - uma interface web para gerenciamento de banco de dados e um sistema de gerenciamento de conteúdo WordPress.
Para começar, solicite um servidor VPS ou um servidor dedicado . Por exemplo, usamos um servidor virtual com endereço IP estático executando o Ubuntu Server 18.04. Todos os comandos foram executados pelo usuário root.
Configuração do servidor HTTP Apache
1. Instalação
apt install apache2
Quando a instalação estiver concluída, abra um navegador e verifique “http://[endereço_ip_do_servidor]”
Se você vir uma página de boas-vindas como esta na captura de tela acima, isso significa que seu servidor HTTP está funcionando.
2. Crie uma página de teste
O diretório raiz padrão do site é “/var/www/html” . É aqui que você encontrará a página de boas-vindas que acabou de ver. Vamos criar um diretório separado, “/var/www/sites” , para os hosts virtuais e uma subpasta, “/var/www/sites/site1”, com a página inicial do seu site de teste.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Como resultado, o arquivo “/var/www/sites/site1/index.html” deverá conter apenas uma linha de código HTML:
<H1>Welcome</H1>
3. Configuração do servidor Apache
Os arquivos de configuração dos sites estão localizados no diretório “/etc/apache2/sites-available/” . Vamos criar um arquivo de configuração para um novo host virtual, utilizando como base a configuração padrão do arquivo “000-default.conf” .
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Abra o arquivo “site1.conf” e altere o atributo “DocumentRoot” . Insira o caminho do seu site como valor; no nosso caso, será “/var/www/sites/site1”.
Nesta fase, não precisamos configurar a operação simultânea de vários sites, então podemos desabilitar o site padrão e habilitar o novo site. Recarregue a configuração do servidor para aplicar as alterações.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Abra novamente o link “http://[endereço_ip_do_servidor]” e verifique se, em vez da página de boas-vindas padrão, você vê a nossa nova página.
Concluímos a configuração do nosso servidor HTTP e podemos prosseguir para o próximo passo.
Configuração do servidor FTP
1. Instalação
Vamos instalar nosso servidor FTP e um pacote adicional chamado “db-util” , que precisaremos para configurar usuários virtuais.
apt install vsftpd db-util
2. Crie uma conta local
O servidor vsftpd nos permite configurar permissões de acesso de uma forma muito flexível. Para nossas tarefas, precisamos fornecer aos usuários de ftp o seguinte:
- acesso total ao conteúdo de “/var/www/sites/”;
- desabilitar tudo acima “/var/www/”;
- conexão com uma conta virtual;
Crie uma conta local "virtual" sem permissão de login, mas com acesso à pasta pessoal "/var/www/" . Essa conta será usada pelos usuários de FTP para se conectar ao servidor.
useradd -d /var/www virtual
Por padrão, o usuário “root” será o proprietário da pasta “/var/www” . Para permitir que os usuários de FTP modifiquem o conteúdo dos sites, vamos alterar o proprietário de “/var/www/sites/”, incluindo as subpastas de “virtual”.
chown -R virtual:root /var/www/sites
Como resultado, o usuário “virtual” poderá ver o conteúdo de “/var/www/” e escrever na subpasta “/var/www/sites/”.
3. Configuração
A configuração principal está no arquivo “/etc/vsftpd.conf” , então vamos abri-lo e editá-lo da seguinte forma:
#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. Crie o banco de dados
Você precisará de um banco de dados para armazenar dados de contas virtuais.
Primeiro, vamos criar um arquivo de texto simples chamado “users.txt” na pasta home e salvar os detalhes de acesso (login e senha) dos usuários virtuais em linhas alternadas. Por exemplo, precisaremos de um usuário virtual com o login “ftp” e a senha “Qwe123” . Então, o arquivo ficará assim:
ftp
Qwe123
Vamos criar o banco de dados
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Vamos modificar o arquivo PAM padrão “/etc/pam.d/vsftp” da seguinte forma:
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
Observe que o caminho da biblioteca “pam_userdb.so” pode ser diferente, mas você pode alterá-lo, se necessário.
Recarregue o servidor vsftpd para aplicar as alterações.
systemctl restart vsftpd
Concluímos a configuração do servidor FTP.
Detalhes de conexão:
- ftp://[endereço_ip_do_servidor]
- Entrar: ftp
- senha: Qwe123
Configuração do servidor PHP
1. Instalação do PHP
Hoje, a versão estável mais recente do PHP é o php 7.4.5, que não está incluído nos repositórios oficiais do Ubuntu. Vamos conectar um repositório de terceiros e instalar a versão mais recente do PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Verifica
Para que o PHP seja executado, o arquivo da página web deve ter a extensão “.php” . Vamos renomear nossa página de teste:
cd /var/www/sites/site1/
mv index.html index.php
Adicione a seguinte linha de código PHP ao arquivo “/var/www/sites/site1/index.php” , de forma que o arquivo fique assim:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Salve as alterações e verifique o resultado no navegador.
Se você vir o resultado da função “phpinfo()” , o interpretador PHP está funcionando corretamente. Agora, vamos prosseguir para a próxima etapa.
Configuração do MySQL (MariaDB)
1. Instalação
Vamos instalar o MariaDB e um módulo PHP para MySQL e depois recarregar o Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Atualize a página de teste e acesse a seção PDO na tabela de configuração do PHP. Se você encontrar a seção “PDO_mysql” , significa que o driver do MySQL está instalado corretamente.
Em seguida, precisaremos realizar a configuração inicial de segurança do MariaDB, definindo a senha para o usuário "root" , desabilitando o acesso remoto e excluindo todas as contas de convidado.
mysql_secure_installation
No primeiro passo, precisamos inserir a senha do usuário "root" para acessar o SGBD ou pressionar Enter caso não haja senha. Como não há senha definida para o usuário "root" após a instalação, basta pressionar "Enter".
Observe que no MariaDB já existem contas próprias que não têm relação com as contas do sistema operacional. Portanto, o único usuário com o qual lidamos no MariaDB é o "root".
Em seguida, o configurador solicitará que você defina a senha do usuário root. Digite “Y” para confirmar e insira a nova senha. No nosso caso, é “Qwe123”.
Responda "S" a todas as perguntas restantes até o final.
A configuração está concluída!
Detalhes de acesso ao MariaDB:
- Entrar: raiz
- Senha: Qwe123
configuração do phpMyAdmin
1. Instalação
Vamos instalar a extensão necessária para o PHP - mbstring.
apt install php-mbstring
No repositório oficial há apenas uma versão desatualizada do phpMyAdmin, então vamos instalar a nova manualmente.
Acesse o site oficial do projeto “ https://www.phpmyadmin.net/ ” e baixe o arquivo mais recente.
Copie o arquivo para o servidor na pasta “/var/www/sites/” usando qualquer cliente FTP.
Descompacte a pasta e renomeie-a para “phpMyAdmin” . Não se esqueça de instalar o utilitário “unzip” . Você pode excluir o arquivo compactado depois de descompactá-lo.
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
Crie a seguinte pasta “/var/www/sites/phpMyAdmin/tmp” para arquivos temporários e habilite o acesso para todos. Caso contrário, o phpMyAdmin exibirá uma mensagem de acesso negado à pasta temporária.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Crie um alias
Como o phpMyAdmin não é um host virtual separado e está localizado fora do diretório raiz, vamos configurar o alias.
Abra o arquivo “/etc/apache2/mods-available/alias.conf” e adicione esta linha:
Alias /pma “/var/www/sites/phpMyAdmin"
dentro desta seção:
<IfModule alias_module>
</IfModule>
Recarregue o Apache para aplicar as alterações.
systemctl reload apache2
O alias está configurado, então podemos acessar o phpMyAdmin aqui : “http://[endereço_ip_do_servidor]/pma”.
3. Prepare o banco de dados
Como restringimos o uso do usuário root durante a configuração inicial do MariaDB, teremos que criar uma nova conta com todas as permissões que serão usadas para acessar o phpMyAdmin.
Além disso, para habilitar recursos adicionais do phpMyAdmin, precisaremos de um banco de dados de serviço e uma conta para acessá-lo.
Vamos criar 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
Observe que o nome do banco de dados na segunda solicitação está em back sparks “… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …”,
No resultado, haverá duas contas criadas no MariaDB:
- Login: pma, Senha: Qwe123Acesso total, será usado para efetuar login no phpMyAdmin
- Login: pmaservice, Senha: Qwe123A conta de serviço é necessária para que recursos adicionais funcionem
Na próxima etapa, definiremos esses detalhes no arquivo de configuração “config.inc.php”.
Em seguida, precisaremos importar o banco de dados do arquivo “phpMyAdmin/sql/create_tables.sql”.
Vamos importá-lo com a ajuda do phpMyAdmin.
Abra o link “http://[endereço_ip_do_servidor]/pma”
Digite o login “pma” e a senha “Qwe123”
Vá em “Importar” , clique em “Selecionar arquivo” e selecione o arquivo “sql/create_tables.sql” no diretório raiz do phpMyAdmin. Deve haver uma pasta chamada “phpMyAdmin” no seu computador com os arquivos. Descompacte-a, se necessário.
Clique em “Avançar” para iniciar a importação.
4. Configuração
Vamos copiar o arquivo de configuração do modelo
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Vamos abrir o arquivo de configuração “/var/www/sites/phpMyAdmin/config.inc.php” e fazer as seguintes alterações:
Defina um valor aleatório de 32 caracteres para o atributo “$cfg['blowfish_secret']” . Use qualquer gerador de senhas para isso.
Remova os comentários de todas as linhas da seção “Configurações de armazenamento do phpMyAdmin” e defina o login e a senha da conta de serviço do MariaDB para os atributos “controluser” e “controlpass” de acordo. No nosso caso, são pmaservice e Qwe123.
Salve as alterações.
Detalhes de acesso para phpMyadmin:
- http://[server’s_ip_address]/pma/
- Entrar: pma
- Senha: Qwe123
Como instalar e configurar o WordPress em um servidor Linux
1. Posicionamento de pacotes e arquivos do WordPress
Acesse o site oficial do WordPress “ https://ru.wordpress.org/ ” e baixe o arquivo para o seu computador.
Faça o upload do arquivo para o servidor na pasta “/var/www/sites/” e descompacte-o na pasta “wordpress ”.
Copie o conteúdo da pasta raiz “/var/www/sites/wordpress/” do site “/var/www/sites/site1/”.
Como copiamos os arquivos via console com permissões de root, vamos alterar o proprietário da pasta “/var/www/sites/”, incluindo o conteúdo da pasta “virtual” . Isso é necessário para habilitar o acesso total à conexão FTP pelo 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. Crie um banco de dados para WordPress
Entre no phpMyAdmin e clique em “Criar banco de dados”. Especifique um nome de banco de dados arbitrário, no nosso caso “wordpress_db” e clique no botão “Criar”.
Selecione o novo banco de dados na seção à esquerda e clique em “Privilégios”.
Em seguida, clique em “Adicionar conta de usuário”.
Na janela que se abrir, insira o login e a senha ( wpservice / Qwe123 ), marque a opção “Conceder todos os privilégios no wordpress_db” e clique em “Avançar”.
Na página seguinte, clique em “Cancelar tudo” para redefinir todos os privilégios no nível do banco de dados e clique em “Avançar”.
3. Configuração do WordPress em um servidor Linux
Vá para o diretório raiz do seu site e copie o arquivo de configuração do modelo
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Abra o arquivo “wp-config.php” , insira os parâmetros de conexão do banco de dados que criamos na etapa anterior e salve as alterações.
4. Instale o CMS WordPress
Abra o seguinte link no navegador : “http://[endereço_ip_do_servidor]/wp-admin/install.php”.
Preencha todos os campos e clique em “Instalar o WordPress” . Defina um nome de usuário e uma senha aleatórios. No nosso caso, são wpadmin e Qwe123, respectivamente.
Esses detalhes serão usados para acessar o WordPress.
Após concluir a instalação, abra o link “http://[endereço_ip_do_servidor]/wp-login.php” , insira os dados de acesso e faça login no WordPress.
Você deverá ver um dos modelos do WordPress na página principal.
A configuração está concluída.
Detalhes de acesso ao WordPress:
- http://[server’s_ip_address]/wp-login.php
- Entrar: wpadmin
- Senha: Qwe123