Cada componente deve ser instalado separadamente e numa ordem específica. Neste guia, iremos percorrer todas as etapas da instalação do LAMP Stack no Debian 10.
Para os fins deste guia, assumimos que tem um servidor instalado e configurado com:
- Acesso SSH como root
- Debian 10 ou 11
- Acesso ao terminal/linha de comando
Instalando o servidor Apache
O Apache é um servidor web de código aberto popular que pode ser usado em conjunto com PHP. O Apache tem uma excelente documentação na Internet e tem sido um dos líderes durante a maior parte da história da Internet. Os servidores Apache são amplamente utilizados em todos os tipos de alojamento. Para começar, certifique-se de que o seu cache apt está atualizado com:sudo apt update
sudo apt install apache2
http://<your_server_ip>
Encontrar o endereço IP público do seu servidor:ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Digite o endereço no seu navegador e verá a página web padrão do Apache, que existe para fins informativos e de teste. Deve ser algo parecido com isto:
Se esta página aparecer, o seu servidor web está agora corretamente instalado e acessível na Internet.
Instalando o MySQL MariaDB
Depois de iniciar o servidor web, é hora de instalar o MariaDB, um servidor de base de dados. Este servidor irá organizar e fornecer acesso às bases de dados onde o seu site pode armazenar informações. Para instalar o MariaDB, usaremos novamente o apt para instalar o servidor:sudo apt install mariadb-server
Este comando também exibirá uma lista dos pacotes que serão instalados, juntamente com a quantidade de espaço em disco que ocuparão. Digite Y e, em seguida, ENTER para confirmar e continuar.
Quando a instalação estiver concluída, execute o script de segurança que vem com o MySQL, que removerá algumas configurações padrão perigosas e bloqueará o acesso ao sistema de banco de dados. Execute o script através da consola e siga as instruções na tela:
sudo mysql_secure_installation
sudo mariadb
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 74
Server version: 10.3.15-MariaDB-1 Debian 10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Observe que não foi necessário fornecer uma palavra-passe para fazer login como root. Isso funciona porque o método de autenticação padrão para o utilizador root do MariaDB é via unix_socket, em vez de uma palavra-passe. Embora isso possa parecer um problema de segurança à primeira vista, na verdade torna o servidor de banco de dados mais seguro, pois os únicos utilizadores autorizados a fazer login como utilizador root do MariaDB são os utilizadores do sistema com privilégios sudo, que fazem login a partir do terminal ou através de um aplicativo executado com esses privilégios.
A função do utilizador root é apenas administrativa, portanto, não é possível conectar o seu aplicativo PHP.
Para aumentar a segurança, configuraremos contas de utilizador dedicadas com privilégios apropriados para cada banco de dados. Para demonstrar essa configuração, criaremos um banco de dados chamado example_database e um utilizador chamado example_user. Você pode substituir esses nomes por qualquer nome que desejar.
Para criar um novo banco de dados, execute o seguinte comando no console do MariaDB:
CREATE DATABASE example_database;
Agora, criaremos um novo utilizador e concederemos a ele privilégios totais no banco de dados que criamos. O comando a seguir define a senha desse utilizador como PASSWORD, mas você deve substituir esse valor por uma senha segura e forte:
GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
O comando concederá ao utilizador example_user privilégios totais sobre o banco de dados example_database, impedindo que esse utilizador crie ou modifique outros bancos de dados no servidor.
Pode verificar os privilégios para garantir que eles foram salvos e estão disponíveis sem precisar reiniciar:
FLUSH PRIVILEGES;
Em seguida, pode sair do MariaDB:
exit
Pode verificar se o novo utilizador tem as permissões adequadas fazendo login novamente no console MariaDB com o nome de utilizador e a senha que inseriu anteriormente:
mariadb -u example_user -p
Observação: Usar -p neste comando solicitará a senha que escolheu ao criar o utilizador example_user. Após iniciar sessão no console MariaDB, confirme se tem acesso ao banco de dados example_database:
SHOW DATABASES;
Receberá a seguinte saída:
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
Para sair do MariaDB, digite:
exit
Neste ponto, o sistema de banco de dados está configurado e pode prosseguir com a instalação do PHP, o componente final do servidor LAMP.
Instalando o PHP no LAMP
PHP é uma linguagem de programação para exibir sites dinâmicos. Ela pode executar scripts, conectar-se a bancos de dados MariaDB para receber e enviar informações do servidor web e de volta, e exibi-las ao utilizador. Usaremos o apt novamente para instalar o PHP, juntamente com alguns outros pacotes que garantirão que o código PHP possa ser executado no servidor Apache e comunicar-se com o banco de dados MariaDB:sudo apt install php libapache2-mod-php php-mysql
Isso deve instalar o PHP sem nenhum problema, mas verificaremos se tudo está a funcionar corretamente.
Na maioria dos casos, é uma boa ideia alterar as configurações do Apache para tornar o ficheiro index.php acessível primeiro, em vez do index.html. Atualmente, se um utilizador solicitar um diretório do servidor, o Apache procurará primeiro um ficheiro chamado index.html. Queremos dizer ao servidor web para dar preferência aos ficheiros PHP em relação aos outros, por isso precisamos de configurar o Apache para procurar o ficheiro index.php.
Para fazer isso, digite o seguinte comando para abrir o ficheiro dir.conf num editor de texto com privilégios de root:
sudo nano /etc/apache2/mods-enabled/dir.conf
O ficheiro terá a seguinte aparência:
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Mova o ficheiro index.php (destacado acima) para a primeira posição após DirectoryIndex, assim:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Por fim, salve o ficheiro. Se estiver a usar o nano, pode fazer isso pressionando CTRL + X e, em seguida, Y e ENTER para confirmar.
Agora recarregue o Apache com:
sudo systemctl reload apache2
Pode verificar o estado do apache2:
sudo systemctl status apache2
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-07-08 12:58:31 UTC; 8s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 11948 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 11954 (apache2)
Tasks: 6 (limit: 4719)
Memory: 11.5M
CGroup: /system.slice/apache2.service
├─11954 /usr/sbin/apache2 -k start
├─11955 /usr/sbin/apache2 -k start
├─11956 /usr/sbin/apache2 -k start
├─11957 /usr/sbin/apache2 -k start
├─11958 /usr/sbin/apache2 -k start
└─11959 /usr/sbin/apache2 -k start
Neste ponto, o seu servidor LAMP está configurado. Agora pode tratar do resto das configurações, como vhosts.