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, por favor encomendar servidor VPS or 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ê pode encontrar a página de boas-vindas que você acabou de ver. Vamos criar um diretório separado “/var/www/sites” para hosts virtuais e uma subpasta “/var/www/sites/site1” com a página de índice do seu site de teste.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
No resultado o arquivo “/var/www/sites/site1/index.html” deve 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 em “/etc/apache2/sites-disponíveis/” catálogo. Vamos criar um arquivo de configuração para um novo host virtual pegando a configuração padrão do arquivo “000-padrão.conf” como uma base.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Abra o arquivo “site1.conf” e mude o “Raiz do Documento” atributo. Coloque o caminho do seu site como valor, então no nosso caso é “/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 o link “http://[endereço_ip_do_servidor]” novamente e certifique-se de que, em vez da página de boas-vindas padrão, temos 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 “utilitário de banco de dados”, que precisaremos 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 inicial “/var/www/”. Esta conta será usada pelos usuários de ftp para se conectar ao servidor
useradd -d /var/www virtual
"Raiz" será o dono do “/var/www” pasta por padrão. Para permitir que os usuários de ftp modifiquem o conteúdo dos sites, vamos alterar o proprietário de “/var/www/sites/” incluindo 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 escreva no “/var/www/sites/” subpasta.
3. Configuração
A configuração principal está no arquivo “/etc/vsftpd.conf”, então vamos abri-lo e editá-lo da seguinte maneira:
#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 “usuários.txt” na pasta home e salvar detalhes de acesso (login e senha) de usuários virtuais em cada outra linha. Por exemplo, precisaremos de um usuário virtual com o login “FTP” e 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” como se segue:
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 do “pam_userdb.so” a biblioteca pode ser diferente, mas você pode alterá-la 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 da web deve ter “.php” extensão. Vamos renomear nossa página de teste:
cd /var/www/sites/site1/
mv index.html index.php
Adicione a seguinte linha php ao arquivo “/var/www/sites/site1/index.php”, então o arquivo deve ficar 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 o próximo passo.
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 vá para a seção PDO na tabela de configuração do PHP. Se você puder encontrar a seção “PDO_mysql”, então significa que o driver do Mysql está instalado corretamente.
Então precisaremos fazer a configuração inicial de segurança do MariaDB e definir a senha para o "Raiz" usuário, desabilitar o acesso remoto e excluir todas as contas de convidados.
mysql_secure_installation
No primeiro passo, temos que entrar no "raiz" senha do usuário para acessar o DBMS ou pressione Enter se não houver senha. Como não há senha definida para o "raiz" usuário após a instalação, basta pressionar "Entrar".
Observe que no MariaDB já existem contas próprias que não têm nada a ver com as contas do SO. Então o único usuário com o qual lidamos no MariaDB é "raiz".
Depois disso, o configurador nos pedirá para definir a senha para o usuário root. Digite "Y" para confirmar e digitar a nova senha. No nosso caso, é “Qwe123”
Resposta "Y" para todas as outras perguntas 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 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.
Abra o site oficial do projeto “https://www.phpmyadmin.net/” e baixe o arquivo mais recente.
Copie o arquivo para o servidor no “/var/www/sites/” pasta usando qualquer cliente ftp.
Descompacte a pasta e renomeie-a para “phpMeuAdministrador”. Não se esqueça de instalar o “descompactar” utilitário. Você pode excluir o arquivo depois de desarquivá-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 habilitar acesso para todos. Se você não fizer isso, o phpMyAdmin reportará 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á definido, 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``.* PARA 'pma'@'localhost' IDENTIFICADO POR …”,
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”.
Então precisaremos importar o banco de dados do arquivo “phpMyAdmin/sql/criar_tabelas.sql”.
Vamos importá-lo com a ajuda do phpMyAdmin.
Abra o link “http://[endereço_ip_do_servidor]/pma”
Digite o login “PMA” e senha “Qwe123”
Acesse "Importar", clique em "Selecione o arquivo" e selecione o arquivo ”sql/criar_tabelas.sql” no diretório raiz do phpMyAdmin. Deve haver a pasta no seu PC “phpMeuAdministrador” com arquivos. Desarquive-o se necessário.
Clique "Próximo" para começar a importar.
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 faça 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 do “configurações de armazenamento de configuração do phpMyAdmin” seção e defina o login e a senha da conta de serviço do MariaDB para o “usuário de controle” e “passe de controle” atributos de acordo. No nosso caso, é serviço pma 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 WP “https://ru.wordpress.org/” e baixe o arquivo para o seu PC local.
Carregue o arquivo para o servidor em “/var/www/sites/” pasta e descompacte-a para o “wordpress" pasta.
Copie o conteúdo do “/var/www/sites/wordpress/” pasta raiz do “/var/www/sites/site1/” .
Como copiamos os arquivos via console com permissões de root, vamos alterar o proprietário do “/var/www/sites/” pasta incluindo o conteúdo de "virtual". Isso é necessário para habilitar o acesso total à conexão ftp por meio 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. 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 “Privilégios”
Então clique “Adicionar conta de usuário”.
Digite o login e a senha (serviço wp / Qwe123) na janela aberta, marque “Conceder todos os privilégios no wordpress_db” e clique "Próximo"
Na próxima página clique “Cancelar tudo” para redefinir todos os privilégios no nível do banco de dados e clicar "Próximo".
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 “wp-config.php” arquivo e 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 “Instalar WordPress”. Defina um nome de usuário e uma senha aleatórios. No nosso caso, é cair em e Qwe123 adequadamente.
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 detalhes 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