uma versão anterior deste tutorial foi escrita por Brennan Bearnes.
introdução
uma pilha de “lâmpada” é um grupo de software de código aberto que é normalmente instalado em conjunto para permitir que um servidor hospede websites dinâmicos e aplicações web. Este termo é na verdade um acrônimo que representa o sistema operacional Linux, com o servidor web Apache. Os dados do site são armazenados em um banco de dados MySQL, e o conteúdo dinâmico é processado pelo PHP.
neste guia, vamos instalar uma pilha de lâmpadas em um servidor Ubuntu 18.04.,
pré-requisitos
para completar este tutorial, terá de ter um servidor Ubuntu 18.04 com um id não root
-conta de utilizador activa e uma firewall básica. Isto pode ser configurado usando o nosso guia inicial de configuração do servidor para o Ubuntu 18.04.
Step 1-Instalar o Apache e actualizar a Firewall
o servidor web Apache está entre os servidores web mais populares do mundo. É bem documentado e tem sido em grande uso para grande parte da história da web, o que torna uma grande escolha padrão para hospedar um site.,
Instalar o Apache usando o gerenciador de pacotes do Ubuntu, apt
:
- sudo apt update
- sudo apt install apache2
uma vez que este é um sudo
comando, estas operações são executadas com privilégios de root. Ele lhe pedirá a senha de seu usuário regular para verificar suas intenções.
Uma vez introduzida a sua senha, apt
dir-lhe-á quais os pacotes que tenciona instalar e quanto espaço extra em disco irão ocupar. Press Y
and hit ENTER
to continue, and the installation will proceed.,
ajuste a Firewall para permitir o tráfego web
a seguir, assumindo que seguiu as instruções iniciais de configuração do servidor e activou a firewall UFW, certifique-se que a sua firewall permite o tráfego HTTP e HTTPS.,ld mostrar que permite o tráfego para portas 80
e 443
:
- sudo ufw app info "Apache Full"
OutputProfile: Apache FullTitle: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache webserver.Ports: 80,443/tcp
Permitir a entrada de tráfego HTTP e HTTPS para este perfil:
- sudo ufw allow in "Apache Full"
Você pode fazer uma verificação no local imediatamente para verificar se tudo ocorreu como planejado, visitando seus pública do servidor, endereço IP no navegador da web (consulte a nota sob o título seguinte para descobrir qual o seu endereço IP público é, se você não tiver esta informação, já):
You will see the default Ubuntu 18.04 Apache web page, which is there for informational and testing purposes. It should look something like this:
If you see this page, then your web server is now correctly installed and accessible through your firewall.
How To Find your Server’s Public IP Address
If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.
There are a few different ways to do this from the command line. First, you could use the iproute2
tools to get your IP address by typing this:
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Isto irá dar-lhe duas ou três linhas de volta., Todos eles são endereços corretos, mas seu computador pode apenas ser capaz de usar um deles, então sinta-se livre para experimentar cada um.
um método alternativo é usar ocurl
utilitário para contactar uma parte externa para lhe dizer como vê o seu servidor. Isto é feito perguntando a um servidor específico Qual é o seu endereço IP:
- sudo apt install curl
- curl http://icanhazip.com
independentemente do método que usa para obter o seu endereço IP, escreva-o na barra de endereços do seu navegador web para ver a página Apache por omissão.,
Passo 2-Instalar o MySQL
Agora que tem o seu servidor web a funcionar, está na hora de instalar o MySQL. MySQL é um sistema de gerenciamento de banco de dados. Basicamente, ele irá organizar e fornecer acesso a bancos de dados onde o seu site pode armazenar informações.
Novamente, use apt
para adquirir e instalar este software:
- sudo apt install mysql-server
Nota: neste caso, não é necessário para executar o sudo apt update
antes do comando. Isto acontece porque o executou recentemente nos comandos acima para instalar o Apache., O índice de pacotes no seu computador já deve estar atualizado.
Este comando, também, irá mostrar – lhe uma lista dos pacotes que serão instalados, juntamente com a quantidade de espaço em disco que irão ocupar. Indique Y
para continuar.
Quando a instalação estiver completa, execute um programa de segurança simples que vem pré-instalado com o MySQL que irá remover alguns valores por omissão perigosos e bloquear o acesso ao seu sistema de base de dados. Inicie o programa interactivo executando:
- sudo mysql_secure_installation
isto irá perguntar se deseja configurar o VALIDATE PASSWORD PLUGIN
.,
Nota: activar esta funcionalidade é algo de uma chamada de julgamento. Se estiver activo, as senhas que não correspondam aos critérios especificados serão rejeitadas pelo MySQL com um erro. Isso causará problemas se você usar uma senha fraca em conjunto com o software que configura automaticamente as credenciais do usuário MySQL, como os pacotes Ubuntu para phpMyAdmin. É seguro deixar a validação desativada, mas você deve sempre usar senhas fortes e únicas para credenciais de banco de dados.
respostaY
para SIM, ou qualquer outra coisa para continuar sem permitir.,
VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No:
Se responder “sim”, ser-lhe-á pedido para seleccionar um nível de validação da senha. Tenha em mente que se você digitar para o nível mais forte, você receberá erros ao tentar definir qualquer senha que não contenha números, letras superiores e minúsculas, e caracteres especiais, ou que é baseado em palavras comuns do dicionário.
There are three levels of password validation policy:LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
independentemente de ter escolhido configurar o VALIDATE PASSWORD PLUGIN
, o seu servidor pedir-lhe-á para seleccionar e confirmar uma senha para o utilizador raiz MySQL., Esta é uma conta administrativa em MySQL que aumentou os privilégios. Pense nisso como sendo semelhante à conta root para o próprio servidor (embora o que você está configurando agora seja uma conta específica do MySQL). Certifique-se de que esta é uma senha forte e única, e não deixe em branco.
Se activou a validação da senha, ser-lhe-á mostrada a força da senha para a senha de root que acabou de introduzir e o seu servidor perguntar-lhe-á se deseja alterar essa senha., Se você está feliz com a sua senha atual, digite N
“não” no prompt:
Using existing password for root.Estimated strength of the password: 100Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Para o resto das perguntas, pressione Y
e tecle ENTER
chave em cada linha de comandos. Isto irá remover alguns utilizadores anónimos e a base de dados de testes, desactivar as autenticações remotas e carregar estas novas regras para que o MySQL respeite imediatamente as alterações que fez.
Note que nos sistemas Ubuntu a correr MySQL 5.,7 (e versões posteriores), o usuário root MySQL é definido para autenticar usando o plugin auth_socket
por padrão, em vez de com uma senha. Isso permite maior segurança e usabilidade, em muitos casos, mas também pode complicar as coisas quando você precisa permitir que um programa externo (por exemplo, phpMyAdmin) para acessar o usuário.
Se preferir usar uma senha ao ligar-se ao MySQL como root, terá de mudar o seu método de autenticação de auth_socket
para mysql_native_password
., Para fazer isso, abra o prompt do MySQL a partir do seu terminal:
- sudo mysql
em seguida, verificar qual o método de autenticação de cada um de seus MySQL contas de usuário, use o seguinte comando:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
neste exemplo, você pode ver que o usuário root não no fato de se autenticar usando o auth_socket
plugin. Para configurar a conta root para autenticar com uma senha, execute o seguinte comando ALTER USER
., Certifique-se de alterar password
para uma senha de sua escolha:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
em Seguida, executar o FLUSH PRIVILEGES
que informa ao servidor para recarregar as tabelas de permissões e colocar suas novas alterações em vigor:
- FLUSH PRIVILEGES;
Verifique a autenticação métodos empregados por cada um dos seus usuários novamente para confirmar que a raiz não autentica usando o auth_socket
plugin
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Você pode ver este exemplo de saída que o usuário root do MySQL agora autentica usando uma palavra-passe., Uma vez que você confirmar isso em seu próprio servidor, você pode sair do MySQL shell:
- exit
neste momento, o sistema de banco de dados agora está configurado e você pode mover para a instalação do PHP, o componente final da pilha LAMP.
Passo 3-Instalar o PHP
PHP é o componente da sua configuração que irá processar o código para mostrar o conteúdo dinâmico. Ele pode executar scripts, se conectar às suas bases de dados MySQL para obter informações, e entregar o conteúdo processado ao seu servidor web para exibir.mais uma vez, alavancar o sistema apt
para instalar o PHP., Além disso, inclua alguns pacotes auxiliares desta vez para que o código PHP possa ser executado sob o servidor Apache e fale com a sua base de dados MySQL:
- sudo apt install php libapache2-mod-php php-mysql
isto deverá instalar o PHP sem quaisquer problemas. Vamos testar isto num instante.
na maioria dos casos, irá querer modificar a forma como o Apache serve os ficheiros quando é pedida uma pasta. Atualmente, se um usuário solicitar um diretório do servidor, o Apache irá primeiro procurar por um arquivo chamado index.html
., Queremos dizer ao servidor web para preferir arquivos PHP sobre outros, então faça o Apache procurar por um id
arquivo primeiro.
Para fazer isso, digite este comando para abrir o dir.conf
arquivo em um editor de texto com privilégios de root:
- sudo nano /etc/apache2/mods-enabled/dir.conf
Ele será parecido com este:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
Mover o PHP arquivo de índice (destacado acima) para a primeira posição após o DirectoryIndex
especificação, como este:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
quando terminar, grave e feche o ficheiro pressionando CTRL+X
. Confirme a gravação escrevendo Y
e depois carregue em ENTER
para verificar a localização de gravação do ficheiro.
Depois disso, reinicie o servidor web Apache para que suas alterações sejam reconhecidas., Fazer isso digitando o seguinte:
- sudo systemctl restart apache2
Você também pode verificar o status de apache2
serviço usando systemctl
:
- sudo systemctl status apache2
Pressione Q
para sair deste estado de saída.
para melhorar a funcionalidade do PHP, você tem a opção de instalar alguns módulos adicionais., Para ver as opções disponíveis para PHP módulos e bibliotecas, canalizar os resultados do apt search
dentro de less
, um pager, que permite que você rolar a saída de outros comandos:
- apt search php- | less
Use as teclas de seta para se deslocar para cima e para baixo, e pressione Q
para sair.
os resultados são todos Componentes opcionais que você pode instalar. Ele lhe dará uma breve descrição para cada:
bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64 Tracks usage of TCP/IP and builds html files with graphsbluefish/bionic 2.2.10-1 amd64 advanced Gtk+ text editor for web and software developmentcacti/bionic 1.1.38+ds1-1 all web interface for graphing of monitoring systemsganglia-webfrontend/bionic 3.6.1-3 all cluster monitoring toolkit - web front-endgolang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all PHP-like Compression and Archive Extensions in Gohaserl/bionic 0.9.35-2 amd64 CGI scripting program for embedded environmentskdevelop-php-docs/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-phpkdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-php-l10n…:
para saber mais sobre o que cada módulo faz, você pode procurar na internet mais informações sobre eles., Como alternativa, procure na longa descrição do pacote digitando:
- apt show package_name
Lá vai ser um monte de saída, com um campo chamado Description
que vai ter mais explicação da funcionalidade que o módulo fornece.,
Por exemplo, para descobrir o que o php-cli
módulo, você poderia escrever assim:
- apt show php-cli
Juntamente com uma grande quantidade de outras informações, você vai encontrar algo parecido com isso:
Output…Description: command-line interpreter for the PHP scripting language (default) This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Ubuntu's default PHP version (currently 7.2).…
Se, depois de pesquisar, você decidir que você gostaria de instalar um pacote, você pode fazer isso usando o apt install
comando como você tem feito para o outro software.,
Se você decidiu que php-cli
é algo que você precisa, você pode digitar:
- sudo apt install php-cli
Se você deseja instalar mais de um módulo, você pode fazer isso através da listagem de cada um, separados por um espaço, a seguir o apt install
comando como este:
- sudo apt install package1 package2 ...
neste ponto, a sua pilha LAMP está instalado e configurado. Antes de fazer qualquer outra coisa, recomendamos que configure uma máquina virtual Apache onde possa guardar os detalhes de configuração do seu servidor.,
Passo 4-Configurar Hosts virtuais (recomendado)
ao usar o servidor web Apache, você pode usar hosts virtuais (semelhantes aos blocos do servidor em Nginx) para encapsular detalhes de configuração e host mais de um domínio de um único servidor. Vamos configurar um domínio chamado your_ Domain, mas você deve substituí-lo pelo seu próprio nome de domínio. Para saber mais sobre a criação de um nome de domínio com DigitalOcean, consulte a nossa introdução ao DNS DigitalOcean. Apache on Ubuntu 18.,04 tem um bloco do servidor ativado por padrão que é configurado para servir documentos a partir do diretório /var/www/html
. Enquanto isso funciona bem para um único site, ele pode se tornar pesado se você estiver hospedando vários sites. Em vez de modificar /var/www/html
, vamos criar uma estrutura de diretórios dentro de /var/www
para o nosso your_domain site, deixando /var/www/html
no lugar como o diretório padrão para ser servido, se um pedido de um cliente não corresponder a quaisquer outros sites.,your_domain da seguinte forma:
sudo mkdir /var/www/your_domain
em seguida, atribuir a propriedade de diretório com o $USER
variável de ambiente:
- sudo chown -R $USER:$USER /var/www/your_domain
As permissões de seu web raízes deve ser correta, se você não tiver modificado o unmask
valor, mas você pode ter certeza de digitação:
- sudo chmod -R 755 /var/www/your_domain
em seguida, criar um exemplo de index.html
página usando nano
ou seu editor favorito:
- nano /var/www/your_domain/index.html
Dentro, adicione o seguinte exemplo de HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
gravar e fechar o ficheiro quando terminar.
para que o Apache sirva este conteúdo, é necessário criar um arquivo host virtual com as diretivas corretas. Em vez de modificar o arquivo de configuração padrão localizado no /etc/apache2/sites-available/000-default.conf
diretamente, vamos fazer um novo /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Colar o seguinte bloco de configuração, que é semelhante ao padrão, mas atualizado para o novo diretório e nome de domínio:
Notice that we’ve updated the DocumentRoot
to our new directory andServerAdmin
to an email that the your_domain site administrator can access. Nós também adicionamos duas directivas: ServerName
, que estabelece a base de domínio deve corresponder para este host virtual definição e ServerAlias
, que define mais nomes que devem corresponder, como se fossem o nome de base.
Salve e feche o ficheiro quando terminar.,
Vamos ativar o arquivo com o a2ensite
ferramenta:
- sudo a2ensite your_domain.conf
Desativar o site padrão definido no 000-default.conf
:
- sudo a2dissite 000-default.conf
em seguida, vamos testar para erros de configuração:
- sudo apache2ctl configtest
Você deve ver a seguinte saída:
OutputSyntax OK
Reinicie o Apache para implementar as alterações:
- sudo systemctl restart apache2
o Apache deve agora ser veiculação de seu nome de domínio., Você pode testar esta navegando , onde você deve ver algo como isto:
Com isso, você host virtual é totalmente configurado. Antes de fazer mais alterações ou implantar uma aplicação, no entanto, seria útil testar proativamente a sua configuração PHP no caso de haver quaisquer problemas que devem ser abordados.
Passo 5-testar o processamento de PHP no seu servidor web
para testar se o seu sistema está configurado correctamente para o PHP, crie um programa de PHP muito básico chamado info.php
., Para que o Apache encontre esse arquivo e o sirva corretamente, ele deve ser salvo em seu diretório de raiz web.
Crie o ficheiro na raiz web que criou na etapa anterior, executando:
- sudo nano /var/www/your_domain/info.php
Isto irá abrir um ficheiro em branco. Adicione o seguinte texto, que é um código PHP válido, dentro do arquivo:
<?phpphpinfo();?>
quando terminar, grave e feche o ficheiro.
Agora Pode testar se o seu servidor web é capaz de mostrar correctamente o conteúdo gerado por este programa de PHP. Para experimentar isso, visite esta página em seu navegador web., Vais precisar do endereço IP público do teu servidor outra vez.
o endereço que deseja visitar é:
The page that you come to should look something like this:
This page provides some basic information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.
If you can see this page in your browser, then your PHP is working as expected.
You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, run the following command:
- sudo rm /var/www/your_domain/info.php
pode sempre recriar esta página se necessitar de aceder à informação mais tarde.
conclusão
Agora que tem uma pilha de lâmpadas instalada, tem muitas opções para o que fazer a seguir. Basicamente, você instalou uma plataforma que lhe permitirá instalar a maioria dos tipos de sites e software web em seu servidor.
Como um próximo passo imediato, você deve garantir que as conexões ao seu servidor web são seguras, servindo-os através de HTTPS., A opção mais fácil aqui é usar o ‘Let’s Encrypt’ para proteger o seu site com um certificado TLS/SSL gratuito.
algumas outras opções populares são:
- instalar WordPress o sistema de gestão de conteúdo mais popular na internet.
- configure o PHPMyAdmin para ajudar a gerir as suas bases de dados MySQL a partir do navegador web.
- Aprenda a usar SFTP para transferir arquivos de e para o seu servidor.
Deixe uma resposta