Pré-requisitos
- Um servidor Vultr executando o Arch Linux atualizado. Consulte este guia para mais informações.
- Acesso Sudo.
- Os comandos que precisam ser executados como raiz são prefixados por
#e os que podem ser executados como um usuário comum $. A maneira recomendada de executar comandos como root é, como usuário comum, prefixar cada um deles sudo.
- Tem um editor de texto instalado e estar familiarizado com ele, como
vi, vim, nano, emacse assim por diante.
Instale o servidor Web Apache 2.4
Se você estiver usando um firewall, precisará habilitar o tráfego TCP de entrada na porta 80.
Instale o Apache:
# pacman -S apache
Inicie o Apache e inicie após cada inicialização:
# systemctl enable --now httpd
Teste se o Apache está em execução. Visite http://YOUR-SERVER-WEB-ADDRESS-OR-IPe você verá uma página mostrando "Índice de /". Execute ip addrse você precisar saber o endereço IP.
O arquivo de configuração do Apache é /etc/httpd/conf/httpd.conf. Embora o Apache seja iniciado pelo usuário raiz, User httpele muda imediatamente para a execução como usuário por motivos de segurança. DocumentRoot "/srv/http"define onde procurará arquivos da web. CustomLog "/var/log/httpd/access_log" commondefine onde os acessos bem-sucedidos ao Apache serão registrados. ErrorLog "/var/log/httpd/error_log"define onde acessos ao Apache esse erro será registrado.
Desativando índices
Por padrão, se o Apache receber um diretório que não encontra um arquivo de índice com uma extensão configurada para uso, ele gerará automaticamente um índice mostrando o conteúdo do diretório. Isso pode ser considerado uma vulnerabilidade de segurança. Para desativá-lo, edite /etc/httpd/conf/httpd.confe <Directory "/srv/http">, a partir de Options, exclua Indexes. Uma vez reiniciado, o Apache dará um "Acesso proibido!" mensagem de erro, a menos que /srv/http/index.htmlexista um arquivo como esse .
Reinicie o Apache:
# systemctl restart httpd
Diretórios de usuários
Por padrão, o ~/public_html/diretório de um usuário será mostrado em http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/. Mas, o usuário httpdeve ter acesso de bit executável ao diretório do usuário e seu public_htmldiretório:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Além disso, o usuário httpdeve ter acesso de leitura a arquivos individuais. Se necessário, execute o seguinte comando:
$ chmod o+r ~/public_html/<FILES>
Se você deseja impedir que os public_htmldiretórios do usuário estejam no servidor da web, independentemente das permissões de diretório e arquivo, comente esta linha (inclua #no início) em /etc/httpd/conf/httpd.conf:
Include conf/extra/httpd-userdir.conf
Reinicie o Apache:
# systemctl restart httpd
Hosts virtuais
Você pode hospedar vários nomes de domínio no mesmo servidor Apache e servi-los com conteúdo diferente.
Crie uma pasta para manter suas configurações de host virtual:
# mkdir /etc/httpd/conf/vhosts
Crie um arquivo de configuração para cada host virtual, como /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
<Directory "/srv/YOUR-DOMAIN-NAME.com">
Require all granted
</Directory>
</VirtualHost>
Crie o diretório de exibição do host virtual:
# mkdir /srv/YOUR-DOMAIN-NAME.com
No final de /etc/httpd/conf/httpd.conf, inclua cada um desses arquivos de configuração do host virtual:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Reinicie o Apache:
# systemctl restart httpd
Os pedidos que o Apache receber YOUR-DOMAIN-NAME.comserão atendidos /srv/YOUR-DOMAIN-NAME.com. Observe que as solicitações do Apache que não correspondem a um endereço específico ServerNameou ServerAliasapenas o endereço IP ou outro nome de domínio resolvido para o seu IP ainda serão atendidas fora do primeiro host virtual incluído. Dito isto, você ainda deve considerar qualquer coisa no geral DocumentRoot, cujo padrão seja /srv/http, de alguma forma, acessível.