One place for hosting & domains

      Cómo instalar la pila Linux, Apache, MariaDB, PHP (LAMP) en Debian 9


      Introducción

      Una pila “LAMP” es un grupo de aplicaciones de software de código abierto que se instalan normalmente juntas para permitir que un servidor aloje aplicaciones web y sitios web dinámicos. Este término es en realidad un acrónimo que representa al sistema operativo Linux y al servidor web Apache. Los datos del sitio se almacenan en una base de datos MariaDB y el contenido dinámico se procesa mediante PHP.

      En esta guía, instalaremos una pila LAMP en un servidor Debian 9.

      Requisitos previos

      Para completar este tutorial, deberá disponer de un servidor de Debian 9 con una cuenta de usuario sudo no root y un firewall básico. Esto se puede configurar usando nuestra guía de configuración inicial de servidores para Debian 9.

      Paso 1: Instalar Apache y actualizar el firewall

      El servidor web Apache está entre los más populares del mundo. Cuenta con una completa documentación y se ha usado extensamente durante gran parte de la historia de la Web, lo que lo convierte en una gran opción para alojar un sitio web.

      Instale Apache usando apt, el administrador de paquetes de Debian:

      • sudo apt update
      • sudo apt install apache2

      Ya que este es un comando sudo, estas operaciones se ejecutan con privilegios root. Le pedirá su contraseña de usuario normal para verificar sus intenciones.

      Una vez que introduzca su contraseña, apt le indicará los paquetes que planea instalar y el espacio adicional que ocuparán en el disco duro. Pulse Y y luego ENTER para continuar. Con esto, la instalación continuará.

      A continuación, suponiendo que seguió las instrucciones de configuración inicial del servidor instalando y habilitando el firewall UFW, asegúrese de que su firewall permita el tráfico HTTP y HTTPS.

      Cuando se instala en Debian 9, UFW se carga con perfiles de app que puede usar para ajustar la configuración de su firewall. Vea la lista completa de perfiles de aplicaciones ejecutando lo siguiente:

      Los perfiles WWW se utilizan para administrar los puertos usados por servidores web:

      Output

      Available applications: . . . WWW WWW Cache WWW Full WWW Secure . . .

      Si inspecciona el perfil WWW Full, este muestra que permite el tráfico a los puertos 80 y 443.

      • sudo ufw app info "WWW Full"

      Output

      Profile: WWW Full Title: Web Server (HTTP,HTTPS) Description: Web Server (HTTP,HTTPS) Ports: 80,443/tcp

      Permita el tráfico HTTP y HTTPS para este perfil:

      • sudo ufw allow in “WWW Full”

      Puede realizar una comprobación de inmediato para verificar que todo está en orden visitando la dirección IP pública de su servidor en su navegador web.

      http://your_server_ip
      

      Verá la página web predeterminada de Apache de Debian 9, que se encuentra allí para fines informativos y de prueba. Debería tener un aspecto similar a este:

      Página predeterminada de Apache de Debian 9

      Si ve esta página, su servidor web estará correctamente instalado y el acceso a él será posible a través de su firewall.

      Si no conoce la dirección IP pública de su servidor, hay varias formas de encontrarla. Por lo general, es la dirección que utiliza para establecer conexión con su servidor a través de SSH.

      Existen varias formas de hacerlo desde la línea de comandos. Primero, podría usar las herramientas de iproute2 para obtener su dirección IP escribiendo esto:

      • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

      Esto nos brindará dos o tres líneas. Todas estas direcciones son correctas, pero su computadora puede usar una de ellas. Por ello, no dude en probarlas todas.

      Un método alternativo consiste en usar la utilidad curl para contactar a una parte externa a fin de que le indique su evaluación del servidor. Esto se hace solicitando a un servidor específico su dirección IP:

      • sudo apt install curl
      • curl http://icanhazip.com

      Independientemente del método que utilice para obtener su dirección IP, escríbala en la barra de direcciones de su navegador web para ver la página predeterminada de Apache.

      Paso 2: Instalar MariaDB

      Ahora que su servidor web está listo, es el momento de instalar MariaDB. MariaDB es un sistema de administración de bases de datos. Básicamente, organizará y brindará acceso a bases de datos en las que su sitio puede almacenar información.

      MariaDB es una ramificación de MySQL creada por la comunidad. En Debian 9, el servidor de MySQL predeterminado es MariaDB 10.1, y mysql-server, que normalmente se utiliza para instalar MySQL, es un paquete de transición que instalará MariaDB. Sin embargo, se recomienda instalar MariaDB usando el paquete real del programa: mariadb-server.

      Una vez más, utilice apt para adquirir e instalar este software:

      • sudo apt install mariadb-server

      Nota: En este caso, no es necesario que ejecute sudo apt update antes del comando. Esto se debe a que recientemente lo ejecutó en los comandos anteriores para instalar Apache y el índice de paquetes de su computadora debería estar actualizado.

      Este comando, además, le mostrará una lista de los paquetes que se instalarán y el espacio que ocuparán en el disco. Ingrese Y para continuar.

      Cuando se complete la instalación, ejecute una secuencia de comandos de seguridad sencilla que viene con MariaDB previamente instalada. Con esto, se eliminarán algunos ajustes predeterminados y se bloqueará el acceso a su sistema de bases de datos. Inicie la secuencia de comandos interactiva ejecutando lo siguiente:

      • sudo mysql_secure_installation

      Con esto, verá una serie de solicitudes mediante las cuales podrá realizar cambios en las opciones de seguridad de su instalación de MariaDB. En la primera solicitud se pedirá que introduzca la contraseña root de la base de datos actual. Esta es una cuenta administrativa de MariaDB que tiene mayores privilegios. Considérela como algo similar a la cuenta root para el propio servidor (aunque la que está configurando ahora sea una cuenta específica de MariaDB). Debido a que acaba de instalar MariaDB y aún no realizó aún cambios en la configuración, el espacio de esta contraseña estará en blanco. Por ello, pulse ENTER en la solicitud.

      En la siguiente solicitud se pregunta si desea configurar una contraseña root de la base de datos. Escriba N y pulse ENTER. En Debian, la cuenta root para MariaDB está estrechamente vinculada al mantenimiento del sistema automatizado, por tanto no deberíamos cambiar los métodos de autenticación configurados para esa cuenta. Hacer esto permitiría que una actualización de paquetes dañara el sistema de bases de datos eliminando el acceso a la cuenta administrativa. Más tarde, se explicará la manera configurar de forma opcional una cuenta administrativa adicional para el acceso con contraseña si la autenticación del socket no es apropiada para su caso de uso.

      Desde allí, puede pulsar Y y luego ENTER para aceptar los valores predeterminados para todas las preguntas siguientes. Con esto, se eliminarán algunos usuarios anónimos y la base de datos de prueba, se deshabilitarán las credenciales de inicio de sesión remoto de root y se cargarán estas nuevas reglas para que MariaDB aplique de inmediato los cambios que realizó.

      En las nuevas instalaciones en sistemas Debian, el usuario root de MariaDB está configurado para autenticarse usando el complemento unix_socket de forma predeterminada en lugar de una contraseña. Esto proporciona una mayor seguridad y utilidad en muchos casos, pero también puede generar complicaciones cuando necesita otorgar derechos administrativos a un programa externo (por ejemplo, phpMyAdmin).

      Debido a que el servidor utiliza la cuenta root para tareas como la rotación de registros y el inicio y la deteneción del servidor, es mejor no cambiar los detalles de autenticación root de la cuenta. La modificación de las credenciales de la cuenta en /etc/mysql/debian.cnf puede funcionar al principio, pero las actualizaciones de paquetes pueden sobrescribir esos cambios. En vez de modificar la cuenta root, los encargados del mantenimiento de paquetes recomiendan crear una cuenta administrativa independiente si necesita configurar un acceso basado en contraseña.

      Para hacerlo, crearemos una nueva cuenta llamada admin con las mismas capacidades que la cuenta root, pero configurada para la autenticación de contraseñas. Para hacer esto, abra la instrucción de MariaDB desde su terminal:

      Ahora, podremos crear un nuevo usuario con privilegios root y acceso basado en contraseña. Cambie el nombre de usuario y la contraseña según sus preferencias:

      • GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

      Vacíe los privilegios para garantizar que se guarden y estén disponibles en la sesión actual:

      Después de esto, cierre el shell de MariaDB:

      Ahora, en cualquier momento que desee acceder a su base de datos como su nuevo usuario administrativo, deberá autenticarse como ese usuario con la contraseña que acaba de configurar usando el siguiente comando:

      En este momento, el sistema de base de datos está configurado y puede proceder a instalar PHP, el componente final de la pila LAMP.

      Paso 3: Instalar PHP

      PHP es el componente de su configuración que procesará código para mostrar contenido dinámico. Puede ejecutar secuencias de comandos, establecer conexión con sus bases de datos de MariaDB para obtener información y entregar el contenido procesado a su servidor web para su visualización.

      Una vez más, utilice el sistema apt para instalar PHP. Además, incluye algunos paquetes de helper esta vez para que el código de PHP pueda ejecutarse con el servidor Apache y comunicarse con su base de datos de MariaDB:

      • sudo apt install php libapache2-mod-php php-mysql

      Con esto, PHP debería instalarse sin problemas. Lo probaremos en un momento.

      En la mayoría de los casos, le convendrá modificar la forma en que Apache presenta los archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio del servidor, Apache buscará primero un archivo llamado index.html. Queremos indicar al servidor web que priorice los archivos PHP respecto de otros. Por ello, haga que Apache busque primero un archivo index.php.

      Para hacer esto, escriba este comando a fin de abrir el archivo dir.conf en un editor de texto con privilegios root:

      • sudo nano /etc/apache2/mods-enabled/dir.conf

      Tendrá un aspecto similar a este:

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
          DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
      </IfModule>
      

      Mueva el archivo de índice PHP (resaltado arriba) a la primera posición después de la especificación DirectoryIndex, como se muestra a continuación:

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
          DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
      </IfModule>
      

      Cuando termine, guarde y cierre el archivo pulsando CTRL+X. Confirme que desea guardar los cambios escribiendo Y y luego pulse ENTER para verificar la ubicación en la que se guardará el archivo.

      Después de esto, reinicie el servidor web Apache para que se reconozcan sus cambios. Hágalo escribiendo lo siguiente:

      • sudo systemctl restart apache2

      También puede verificar el estado del servicio apache2 usando systemctl:

      • sudo systemctl status apache2

      Sample Output

      ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2018-09-04 18:23:03 UTC; 9s ago Process: 22209 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 22216 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 22221 (apache2) Tasks: 6 (limit: 4915) CGroup: /system.slice/apache2.service ├─22221 /usr/sbin/apache2 -k start ├─22222 /usr/sbin/apache2 -k start ├─22223 /usr/sbin/apache2 -k start ├─22224 /usr/sbin/apache2 -k start ├─22225 /usr/sbin/apache2 -k start └─22226 /usr/sbin/apache2 -k start

      Para mejorar la funcionalidad de PHP, tendrá la opción de instalar algunos módulos adicionales. Para ver las opciones disponibles para módulos y bibliotecas PHP, canalice los resultados de apt search en less, un localizador que le permite desplazarse por el resultado de otros comandos:

      Utilice las teclas de flecha para desplazarse arriba y abajo, y pulse Q para salir.

      Como resultado, obtendrá todos los componentes opcionales que puede instalar. Verá una breve descripción de cada uno:

      Output

      Sorting... Full Text Search... bandwidthd-pgsql/stable 2.0.1+cvs20090917-10 amd64 Tracks usage of TCP/IP and builds html files with graphs bluefish/stable 2.2.9-1+b1 amd64 advanced Gtk+ text editor for web and software development cacti/stable 0.8.8h+ds1-10 all web interface for graphing of monitoring systems cakephp-scripts/stable 2.8.5-1 all rapid application development framework for PHP (scripts) ganglia-webfrontend/stable 3.6.1-3 all cluster monitoring toolkit - web front-end haserl/stable 0.9.35-2+b1 amd64 CGI scripting program for embedded environments kdevelop-php-docs/stable 5.0.3-1 all transitional package for kdevelop-php kdevelop-php-docs-l10n/stable 5.0.3-1 all transitional package for kdevelop-php-l10n … :

      En Internet podrá obtener más información sobre lo que hace cada módulo. También puede consultar la descripción extensa del paquete escribiendo lo siguiente:

      Verá muchos resultados; habrá un campo llamado Description, que tendrá una explicación más larga de la funcionalidad que proporciona el módulo.

      Por ejemplo, para saber qué hace el módulo php-cli, puede escribir lo siguiente:

      Junto con una gran cantidad de información, encontrará algo similar a esto:

      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 Debian's default PHP version (currently 7.0). …

      Si después de investigar decide que desea instalar un paquete, puede hacerlo usando el comando apt install como lo ha hecho con el otro software.

      Si determina que necesita php-cli, puede escribir lo siguiente:

      Si desea instalar más de un módulo, puede hacerlo enumerando cada uno de ellos, separados por un espacio, con el comando apt install, como se muestra a continuación:

      • sudo apt install package1 package2 ...

      En este punto, su pila LAMP estará instalada y confgurada. Antes de realizar más cambios o implementar una aplicación, sería útil probar de forma proactiva su configuración PHP en caso de que haya problemas que deban abordarse.

      Paso 4: Probar el procesamiento de PHP en su servidor web

      A fin de verificar que su sistema esté configurado de forma adecuada para PHP, cree una secuencia de comandos PHP muy básica llamada info.php. Para que Apache encuentre este archivo y lo presente correctamente, debe guardarse en un directorio muy específico llamado web root.

      En Debian 9, este directorio se encuentra en /var/www/html/. Cree el archivo en esa ubicación ejecutando lo siguiente:

      • sudo nano /var/www/html/info.php

      Con esto se abrirá un archivo vacío. Añada el siguiente texto, que es el código PHP válido, dentro del archivo:

      /var/www/html/info.php

      <?php
      phpinfo();
      ?>
      

      Cuando termine, guarde y cierre el archivo.

      Ahora puede probar si su servidor web puede mostrar correctamente el contenido generado por esta secuencia de comandos PHP. Para probar esto, visite esta página en su navegador web. Necesitará de nuevo la dirección IP pública de su servidor.

      La dirección que le convendrá visitar es la siguiente:

      http://your_server_ip/info.php
      

      La página a la que llegue debería tener un aspecto similar a este:

      Información de PHP predeterminada de Debian 9

      En esta página se proporciona información básica sobre su servidor desde la perspectiva de PHP. Es útil para la depuración y para asegurarse de que sus ajustes se apliquen correctamente.

      Si puede ver esta página en su navegador, su PHP funcionará como se espera.

      Probablemente desee eliminar este archivo tras esta prueba, ya que podría proporcionar información sobre su servidor a usuarios no autorizados. Para hacer esto, ejecute el siguiente comando:

      • sudo rm /var/www/html/info.php

      Siempre puede recrear esta página si necesita acceder a la información posteriormente.

      Conclusión

      Ahora que dispone de una pila LAMP instalada, tiene muchas opciones respecto de lo que puede hacer a continuación. Básicamente, instaló una plataforma que le permitirá instalar la mayoría de los tipos de sitios y recursos de software web en su servidor.



      Source link

      Como instalar a pilha Linux, Apache, MySQL, PHP (LAMP) no Debian 9


      Introdução

      Uma pilha de software “LAMP” é um grupo de softwares de código aberto que são normalmente instalados juntos para permitir que um servidor hospede sites dinâmicos e aplicativos Web. Este termo é, na verdade, uma sigla que representa o sistema operacional Linux, com o servidor Web do Apache. Os dados do site são armazenados em uma base de dados MariaDB e o conteúdo dinâmico é processado pelo PHP.

      Neste guia, instalaremos uma pilha LAMP em um servidor Debian 9.

      Pré-requisitos

      Para completar este tutorial, será necessário ter um servidor Debian 9 com uma conta de usuário não raiz com o sudo habilitado e um firewall básico. Isso pode ser configurado usando nosso guia de configuração inicial de servidor para o Debian 9.

      Passo 1 — Instalando o Apache e atualizando o firewall

      O servidor Web Apache está entre os servidores Web mais populares no mundo. Ele é bem documentado e tem sido amplamente usado em grande parte da história da Web, o que torna ele uma ótima escolha padrão para hospedar um site.

      Instale o Apache usando o gerenciador de pacotes do Debian, apt:

      • sudo apt update
      • sudo apt install apache2

      Como este é um comando sudo, essas operações são executadas com privilégios raiz. Ele irá pedir a senha do seu usuário para verificar suas intenções.

      Assim que digitar sua senha, o apt irá dizer a você quais pacotes ele planeja instalar e quanto espaço de disco extra irão ocupar. Pressione Y e clique em ENTER para continuar, e a instalação prosseguirá.

      Em seguida, supondo que tenha seguido as instruções de configuração inicial do servidor, instalando e habilitando o firewall UFW, certifique-se de que seu firewall permite o tráfego HTTP e HTTPS.

      Quando instalado no Debian 9, o UFW vem carregado com perfis de app que podem ser utilizados para ajustar suas configurações de firewall. Veja a lista completa dos perfis de aplicativo executando:

      Os perfis WWW são usados para gerenciar portas usadas por servidores Web:

      Output

      Available applications: . . . WWW WWW Cache WWW Full WWW Secure . . .

      Se inspecionar o perfil WWW Full, ele exibirá que habilita o tráfego para as portas 80 e 443:

      • sudo ufw app info "WWW Full"

      Output

      Profile: WWW Full Title: Web Server (HTTP,HTTPS) Description: Web Server (HTTP,HTTPS) Ports: 80,443/tcp

      Permita o tráfego HTTP e HTTPS de entrada para este perfil:

      • sudo ufw allow in "WWW Full"

      Você pode fazer uma checagem imediatamente para verificar se tudo ocorreu como planejado visitando o endereço IP público do seu servidor no seu navegador Web:

      http://your_server_ip
      

      Você verá a página Web padrão do Apache para o Debian 9, que está disponível para fins informativos e de teste. Ela deve se parecer com isto:

      Debian 9 Apache default

      Se ver essa página, seu servidor Web agora está instalado corretamente e é acessível através do seu firewall.

      Se não sabe qual é o endereço IP público do seu servidor, há uma série de maneiras para encontrá-lo. Normalmente, este é o endereço que você usa para se conectar ao seu servidor através do SSH.

      Existem algumas maneiras de fazer isso a partir da linha de comando. Primeiro, poderia usar as ferramentas iproute2 para obter seu endereço IP digitando:

      • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

      Isso retornará a você duas ou três linhas. Todos os endereços são corretos, mas seu computador consegue usar apenas um deles, então sinta-se à vontade para testar cada um.

      Um método alternativo é usar o utilitário curl para contatar uma entidade exterior para dizer a você como ela vê seu servidor. Isso é feito perguntando a um servidor específico qual é seu endereço IP:

      • sudo apt install curl
      • curl http://icanhazip.com

      Independentemente do método que você usa para obter seu endereço IP, digite-o na barra de endereço do seu navegador Web para ver a página padrão do Apache.

      Passo 2 — Instalando o MariaDB

      Agora que você tem seu servidor Web em funcionamento, é hora de instalar o MariaDB. O MariaDB é um sistema de gerenciamento de banco de dados. Basicamente, ele irá organizar e fornecer acesso aos bancos de dados onde seu site pode armazenar informações.

      O MariaDB é uma bifurcação feita pela comunidade do MySQL. No Debian 9, o servidor padrão MySQL é o MariaDB 10.1, e o pacote mysql-server, que é normalmente usado para instalar o MySQL, é um pacote transitório que irá instalar o MariaDB. No entanto, é recomendável que instale o MariaDB usando o pacote real do programa, o mariadb-server.

      Novamente, utilize o apt para adquirir e instalar este software:

      • sudo apt install mariadb-server

      Nota: neste caso, não será necessário executar o sudo apt update antes do comando. Isso se dá pois você o executou recentemente nos comandos acima para instalar o Apache, e o índice de pacotes no seu computador já deve estar atualizado.

      Este comando também irá mostrar a você uma lista dos pacotes que serão instalados, junto com a quantidade de espaço em disco que irão ocupar. Digite Y para continuar.

      Quando a instalação for concluída, execute um script de segurança simples que vem pré-instalado com o MariaDB, que removerá algumas configurações padrão inseguras e irá bloquear o acesso ao seu sistema de banco de dados. Inicie o script interativo executando:

      • sudo mysql_secure_installation

      Isso levará você através de uma série de prompts onde é possível fazer algumas alterações nas opções de segurança de sua instalação do MariaDB. O primeiro prompt pedirá que digite a senha root do banco de dados atual. Esta é uma conta administrativa no MariaDB que tem mais privilégios. Pense nela como sendo similar à conta root para o servidor em si (embora essa conta que você está configurando agora é uma conta específica do MariaDB). Como você instalou o MariaDB e ainda não fez nenhuma alteração de configuração, essa senha estará em branco. Dessa forma, pressione apenas ENTER no prompt.

      O próximo prompt pergunta a você se deseja configurar uma senha root do banco de dados. Digite N e então pressione ENTER. No Debian, a conta root para o MariaDB está intimamente ligada à manutenção automatizada do sistema, então não deve-se alterar os métodos de autenticação configurados para essa conta. Se isso fosse feito, seria possível a atualização de pacotes para a quebra do sistema de banco de dados pela remoção do acesso à conta administrativa. Mais tarde, vamos tratar de como configurar, de forma opcional, uma conta administrativa adicional para o acesso por senha caso a autenticação por soquete não seja apropriada para o seu caso de uso.

      A partir daí, pressione Y e então ENTER para aceitar as configurações padrão para todas as perguntas subsequentes. Isso irá remover alguns usuários anônimos e o banco de dados teste, desativará os logins remotos ao root, e carregará essas novas regras para que o MariaDB respeite imediatamente as alterações que você fez.

      Em novas instalações nos sistemas Debian, o usuário root MariaDB é configurado para autenticar usando o plug-in unix_socket por padrão ao invés de fazê-lo com uma senha. Isso permite maior segurança e usabilidade na maioria dos casos, mas também pode complicar as coisas quando for necessário permitir direitos administrativos a um programa externo (por exemplo, o phpMyAdmin).

      Como o servidor usa a conta root para tarefas como a rotação de registro e a inicialização e parada do servidor, é melhor não alterar os detalhes de autenticação da conta root. A alteração das credenciais da conta no /etc/mysql/debian.cnf pode funcionar inicialmente, mas as atualizações de pacotes podem substituir essas alterações. Ao invés de modificar a conta root, os mantenedores de pacotes recomendam a criação de uma conta administrativa separada caso seja necessário configurar o acesso baseado em senha.

      Para fazer isso, criaremos uma nova conta chamada admin com as mesmas capacidades que a conta root, mas configurada para a autenticação por senha. Para fazer isso, abra o prompt do MariaDB do seu terminal:

      Agora, podemos criar um novo usuário com privilégios root e acesso baseado em senha. Altere o nome de usuário e senha para que correspondam às suas preferências:

      • GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

      Descarregue os privilégios para garantir que eles estão salvos e disponíveis na sessão atual:

      Em seguida, saia do shell do MariaDB:

      Agora, quando quiser acessar seu banco de dados como seu novo usuário administrativo, será necessário autenticar-se como aquele usuário com a senha que você acabou de definir usando o seguinte comando:

      Neste ponto, seu sistema de banco de dados está configurado e você pode seguir em frente para a instalação do PHP, o componente final da pilha LAMP.

      Passo 3 — Instalando o PHP

      O PHP é o componente da sua configuração que irá processar o código para mostrar conteúdo dinâmico. Ele pode executar os scripts, conectar-se aos seus bancos de dados do MariaDB para obter informações e entregar o conteúdo processado ao seu servidor Web para exibição.

      Novamente, utilize o sistema apt para instalar o PHP. Além disso, inclua alguns pacotes auxiliares para que desta vez o código PHP possa ser executado no servidor do Apache e se comunique com seu banco de dados do MariaDB:

      • sudo apt install php libapache2-mod-php php-mysql

      Isso deve instalar o PHP sem problemas. Vamos testar isso em instantes.

      Na maioria dos casos, será vantajoso modificar a maneira que o Apache atende aos arquivos quando um diretório for solicitado. Atualmente, caso um usuário solicite um diretório do servidor, o Apache irá procurar primeiro um arquivo chamado index.html. Queremos dizer ao servidor Web para preferir arquivos PHP em relação a outros, então faça com que o Apache procure pelo arquivo index.php primeiro.

      Para fazer isso, digite este comando para abrir o arquivo dir.conf em um editor de texto com privilégios raiz:

      • sudo nano /etc/apache2/mods-enabled/dir.conf

      Ele se parecerá com isso:

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
          DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
      </IfModule>
      

      Mova o arquivo de índice do PHP (destacado acima) para a primeira posição após a especificação DirectoryIndex, desta forma:

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
          DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
      </IfModule>
      

      Quando terminar, salve e feche o arquivo pressionando CTRL+X. Confirme o salvamento digitando Y e então clique em ENTER para verificar a localização do arquivo de salvamento.

      Após isso, reinicie o servidor Web Apache para que suas alterações sejam reconhecidas. Faça isso digitando:

      • sudo systemctl restart apache2

      Você também pode verificar o status do serviço apache2 usando o systemctl:

      • sudo systemctl status apache2

      Sample Output

      ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2018-09-04 18:23:03 UTC; 9s ago Process: 22209 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 22216 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 22221 (apache2) Tasks: 6 (limit: 4915) CGroup: /system.slice/apache2.service ├─22221 /usr/sbin/apache2 -k start ├─22222 /usr/sbin/apache2 -k start ├─22223 /usr/sbin/apache2 -k start ├─22224 /usr/sbin/apache2 -k start ├─22225 /usr/sbin/apache2 -k start └─22226 /usr/sbin/apache2 -k start

      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 módulos e bibliotecas do PHP, canalize os resultados de apt search em less, um pager que permite que você percorra os resultados de outros comandos:

      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. Será dado a você uma breve descrição para cada um:

      Output

      Sorting... Full Text Search... bandwidthd-pgsql/stable 2.0.1+cvs20090917-10 amd64 Tracks usage of TCP/IP and builds html files with graphs bluefish/stable 2.2.9-1+b1 amd64 advanced Gtk+ text editor for web and software development cacti/stable 0.8.8h+ds1-10 all web interface for graphing of monitoring systems cakephp-scripts/stable 2.8.5-1 all rapid application development framework for PHP (scripts) ganglia-webfrontend/stable 3.6.1-3 all cluster monitoring toolkit - web front-end haserl/stable 0.9.35-2+b1 amd64 CGI scripting program for embedded environments kdevelop-php-docs/stable 5.0.3-1 all transitional package for kdevelop-php kdevelop-php-docs-l10n/stable 5.0.3-1 all transitional package for kdevelop-php-l10n … :

      Para aprender mais sobre o que cada módulo faz, procure na Internet mais informações a respeito deles. De forma alternativa, consulte a descrição do pacote digitando:

      Haverá um resultado extenso, com um campo chamado Description que terá uma explicação mais longa da funcionalidade que o módulo fornece.

      Por exemplo, para descobrir o que o módulo php-cli faz, digite isso:

      Junto com uma grande quantidade de outras informações, você encontrará algo que se parece 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 Debian's default PHP version (currently 7.0). …

      Se, após a pesquisa, você decidir que quer instalar um pacote, faça isso usando o comando apt install como tem feito para os outros softwares.

      Se decidiu que o php-cli é algo que precisa, digite:

      Se quiser instalar mais de um módulo, faça isso pela listagem de cada um, separados por um espaço, seguindo o comando apt install, desta forma:

      • sudo apt install package1 package2 ...

      Neste ponto, sua pilha LAMP está instalada e configurada. No entanto, antes de fazer mais alterações ou implantar um aplicativo, seria útil testar proativamente sua configuração do PHP, para o caso de haver problemas que devam ser resolvidos.

      Passo 4 — Testando o processamento do PHP no seu servidor Web

      Para testar se seu sistema está configurado corretamente para o PHP, crie um script bem básico do PHP chamado info.php. Para que o Apache encontre este arquivo e o atenda corretamente, ele deve ser salvo em um diretório muito específico chamado web root.

      No Debian 9, este diretório está localizado em /var/www/html/. Crie o arquivo naquele local executando:

      • sudo nano /var/www/html/info.php

      Isso abrirá um arquivo em branco. Adicione o seguinte texto, que é um código válido do PHP, dentro do arquivo:

      /var/www/html/info.php

      <?php
      phpinfo();
      ?>
      

      Quando você terminar, salve e feche o arquivo.

      Agora, você pode testar se seu servidor Web consegue exibir corretamente o conteúdo gerado por este script do PHP. Para testar isso, visite esta página no seu navegador Web. O seu endereço IP público do seu servidor será necessário novamente.

      O endereço a ser visitado é:

      http://your_server_ip/info.php
      

      A página que você acessar deve se parecer com esta:

      Debian 9 default PHP info

      Esta página fornece algumas informações básicas sobre seu servidor na perspectiva do PHP. Ela é útil para a depuração e para garantir que suas configurações estejam sendo aplicadas corretamente.

      Se você puder ver essa página no seu navegador, então seu PHP está funcionando como esperado.

      Provavelmente, você quer remover este arquivo após este teste porque ele poderia fornecer informações sobre seu servidor para usuários não autorizados. Para fazer isso, execute o seguinte comando:

      • sudo rm /var/www/html/info.php

      Você sempre pode recriar essa página se precisar acessar as informações novamente mais tarde.

      Conclusão

      Agora que tem uma pilha LAMP instalada, você tem muitas opções para o que fazer a seguir. Basicamente, você instalou uma plataforma que permitirá que instale a maioria dos tipos de sites e softwares Web no seu servidor.



      Source link

      Установка комплекта Linux, Apache, MariaDB, PHP (LAMP) в Debian 9


      Введение

      Комплект LAMP — это набор программного обеспечения с открытым исходным кодом, которое обычно устанавливается в комплексе для размещения на сервере динамических сайтов и веб-приложений. Этот термин представляет собой аббревиатуру. Операционная система Linux используется с веб-сервером Apache. Данные сайта хранятся в базе данных MariaDB, а за обработку динамического контента отвечает PHP.

      В этом обучающем модуле мы установим комплект LAMP на сервер Debian 9.

      Предварительные требования

      Для данного обучающего модуля вам потребуется сервер Debian 9 с учетной записью пользователя без привилегий root и с привилегиями sudo, а также базовым брандмауэром. При настройке следует использовать указания руководства по начальной настройке сервера Debian 9.

      Шаг 1 — Установка Apache и обновление брандмауэра

      Веб-сервер Apache — один из самых популярных веб-серверов в мире. По нему имеется очень много документации, и он широко использовался в течение почти всей истории Интернета, что делает его отличным выбором для хостинга сайта.

      Установите Apache с помощью диспетчера пакетов apt в Debian:

      • sudo apt update
      • sudo apt install apache2

      Поскольку это команда sudo, данные операции выполняются с привилегиями root. Для подтверждения система попросит ввести пароль обычного пользователя.

      После ввода пароля apt покажет, какие пакеты планируются к установке, и сколько они займут дополнительного пространства на диске. Нажмите Y, а затем нажмите ENTER, чтобы продолжить установку.

      Если вы выполнили указания по начальной настройке сервера и установили и включили брандмауэр UFW, убедитесь, что ваш брандмауэр разрешает трафик HTTP и HTTPS.

      При установке в операционной системе Debian 9 в UFW имеются профили приложений, с помощью которых вы можете настраивать параметры брандмауэра. Для просмотра полного списка профилей приложений запустите следующую команду:

      Профили WWW используются для управления портами, которые используются веб-серверами:

      Output

      Available applications: . . . WWW WWW Cache WWW Full WWW Secure . . .

      Если вы просмотрите профиль WWW Full, вы увидите, что он активирует трафик на портах 80 и 443:

      • sudo ufw app info "WWW Full"

      Output

      Profile: WWW Full Title: Web Server (HTTP,HTTPS) Description: Web Server (HTTP,HTTPS) Ports: 80,443/tcp

      Разрешите входящий трафик HTTP и HTTPS для этого профиля:

      • sudo ufw allow in "WWW Full"

      Вы можете провести точечную проверку работы брандмауэра, открыв в браузере внешний IP-адрес сервера:

      http://your_server_ip
      

      Вы увидите веб-страницу по умолчанию Debian 9 Apache, предназначенную для информационных целей и целей тестирования. Она должна выглядеть следующим образом:

      Страница Debian 9 Apache по умолчанию

      Если вы видите эту страницу, ваш веб-сервер правильно установлен и доступен через ваш брандмауэр.

      Если вы не знаете внешний IP-адрес вашего сервера, вы можете определить его с помощью нескольких способов. Обычно это адрес, который вы используете для подключения к серверу через SSH.

      Существует несколько способов сделать это через командную строку. Во-первых, вы можете использовать инструменты iproute2 для получения IP-адреса с помощью следующей команды:

      • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

      В результате будут выведены две или три строки. Все указанные адреса верные, но ваш компьютер может использовать только один из них, так что вы можете попробовать каждый.

      Также можно использовать утилиту curl для связи с внешним устройством. Вы увидите, как это устройство видит ваш сервер. Для этого нужно запросить ваш IP-адрес у конкретного сервера:

      • sudo apt install curl
      • curl http://icanhazip.com

      Вне зависимости от метода получения IP-адреса введите его в адресную строку браузера для просмотра страницы Apache по умолчанию.

      Шаг 2 — Установка MariaDB

      Вы установили и запустили веб-сервер, а теперь можете устанавливать MariaDB. MariaDB — это система управления базами данных. Она организует и обеспечивает доступ к базам данных, где ваш сайт может хранить информацию.

      MariaDB — это созданное сообществом разработчиков ответвление MySQL. В Debian 9 в качестве сервера MySQL по умолчанию используется MariaDB 10.1, а пакет mysql-server, который обычно используется для установки MySQL, представляет собой переходный пакет, который фактически устанавливает MariaDB. Однако рекомендуется устанавливать MariaDB с помощью пакета mariadb-server.

      Используйте apt для получения и установки этого программного обеспечения:

      • sudo apt install mariadb-server

      Примечание. В этом случае вам не нужно предварительно запускать команду sudo apt update до выполнения команды. Это связано с тем, что вы недавно запускали ее для установки Apache, и индекс пакетов на вашем компьютере уже должен быть обновлен.

      Эта команда также выводит список устанавливаемых пакетов и показывает, сколько они займут места на диске. Введите Y, чтобы продолжить.

      После завершения установки запустите простой скрипт безопасности, устанавливаемый вместе с MariaDB. Этот скрипт удаляет некоторые небезопасные параметры по умолчанию и блокирует доступ к системе баз данных. Для запуска интерактивного скрипта введите следующую команду:

      • sudo mysql_secure_installation

      При этом откроется серия диалогов, где вы можете внести некоторые изменения в параметры безопасности установки MariaDB. В первом диалоге вам нужно будет ввести пароль пользователя root для текущей базы данных. Это административная учетная запись MariaDB, имеющая повышенный уровень привилегий. Она напоминает учетную запись root на сервере (хотя эта учетная запись относится только к MariaDB). Поскольку вы только что установили MariaDB и еще не меняли параметры конфигурации, пароль будет пустым, так что вам достаточно нажать ENTER в этом диалоге.

      В следующем диалоге вам будет предложено задать пароль для пользователя root базы данных. Введите N и нажмите ENTER. В Debian учетная запись пользователя root для MariaDB тесно связана с автоматизированным обслуживанием системы, так что мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволит нам обновить пакет для уничтожения системы базы данных посредством удаления доступа к административной учетной записи. Позднее мы расскажем о том, как настроить дополнительную административную учетную запись для доступа через пароль, если аутентификация через сокет не подходит для вашего случая.

      Далее вы можете использовать клавиши Y и ENTER, чтобы принять ответы по умолчанию для всех последующих вопросов. Выбрав эти ответы, вы удалите ряд анонимных пользователей и тестовую базу данных, отключите возможность удаленного входа пользователя root и загрузите новые правила, чтобы внесенные изменения немедленно активировались в MariaDB.

      При установке на системы Debian пользователь root MariaDB настроен для аутентификации с помощью плагина unix_socket, а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin).

      Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные пользователя root. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf может сработать на начальном этапе, но при обновлении пакета изменения могут быть перезаписаны. Если вам требуется настроить доступ с паролем, команда поддержки рекомендует создать отдельную учетную запись администратора вместо изменения учетной записи root.

      Для этого мы создадим новую учетную запись admin с теми же привилегиями, что и у учетной записи root, но настроенную для аутентификации с использованием пароля. Для этого откройте командную строку MariaDB через терминал:

      Теперь мы можем создать нового пользователя с привилегиями root и доступом с использованием пароля. Измените имя пользователя и пароль на желаемые:

      • GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

      Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:

      После этого закройте оболочку MariaDB:

      Теперь для получения доступа к базе данных с правами администратора вам потребуется пройти аутентификацию учетной записи этого пользователя с указанием заданного пароля. Для этого необходимо использовать следующую команду:

      Вы настроили систему базы данных и теперь можете перейти к установке PHP, заключительного компонента комплекта LAMP.

      Шаг 3 — Установка PHP

      PHP — это компонент системы, обрабатывающий код для отображения динамического контента. Он может запускать скрипты, подключаться к базам данных MariaDB для получения информации и передавать обработанный контент на веб-сервер для отображения.

      Используйте систему apt для установки PHP. Кроме того, установите вспомогательные пакеты, чтобы код PHP можно было запускать на сервере Apache, и чтобы он мог взаимодействовать с базой данных MariaDB:

      • sudo apt install php libapache2-mod-php php-mysql

      Эта команда должна установить PHP без каких-либо проблем. Сейчас мы это протестируем.

      В большинстве случаев необходимо изменить способ обслуживания файлов Apache при запросе директории. Обычно, если пользователь запрашивает директорию на сервере, Apache в первую очередь ищет файл index.html. Нам нужно, чтобы веб-сервер предпочитал файлы PHP, и чтобы Apache в первую очередь искал файл index.php.

      Для этого введите следующую команду, чтобы открыть файл dir.conf в текстовом редакторе с привилегиями root:

      • sudo nano /etc/apache2/mods-enabled/dir.conf

      Он будет выглядеть примерно так:

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
          DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
      </IfModule>
      

      Переместите файл индекса PHP (выделен выше) на первую позицию после спецификации DirectoryIndex, примерно так:

      /etc/apache2/mods-enabled/dir.conf

      <IfModule mod_dir.c>
          DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
      </IfModule>
      

      После завершения сохраните и закройте файл, нажав CTRL+X. Для подтверждения сохранения нажмите Y, а затем нажмите ENTER для подтверждения расположения сохраняемого файла.

      После этого перезапустите веб-сервер Apache, чтобы ваши изменения были готовы к распознанию. Для этого введите следующую команду:

      • sudo systemctl restart apache2

      Также вы можете проверить статус службы apache2 с помощью команды systemctl:

      • sudo systemctl status apache2

      Sample Output

      ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2018-09-04 18:23:03 UTC; 9s ago Process: 22209 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 22216 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 22221 (apache2) Tasks: 6 (limit: 4915) CGroup: /system.slice/apache2.service ├─22221 /usr/sbin/apache2 -k start ├─22222 /usr/sbin/apache2 -k start ├─22223 /usr/sbin/apache2 -k start ├─22224 /usr/sbin/apache2 -k start ├─22225 /usr/sbin/apache2 -k start └─22226 /usr/sbin/apache2 -k start

      Вы можете установить дополнительные модули, чтобы расширить функционал PHP. Чтобы посмотреть доступные варианты модулей и библиотек PHP, отправьте результаты поиска apt search на пейджер less, позволяющий просматривать результаты выполнения других команд:

      Используйте стрелки для прокрутки экрана и клавишу Q для выхода.

      На экране результатов будут показаны все доступные для установки опциональные компоненты. Также будет выведено краткое описание каждого из них:

      Output

      Sorting... Full Text Search... bandwidthd-pgsql/stable 2.0.1+cvs20090917-10 amd64 Tracks usage of TCP/IP and builds html files with graphs bluefish/stable 2.2.9-1+b1 amd64 advanced Gtk+ text editor for web and software development cacti/stable 0.8.8h+ds1-10 all web interface for graphing of monitoring systems cakephp-scripts/stable 2.8.5-1 all rapid application development framework for PHP (scripts) ganglia-webfrontend/stable 3.6.1-3 all cluster monitoring toolkit - web front-end haserl/stable 0.9.35-2+b1 amd64 CGI scripting program for embedded environments kdevelop-php-docs/stable 5.0.3-1 all transitional package for kdevelop-php kdevelop-php-docs-l10n/stable 5.0.3-1 all transitional package for kdevelop-php-l10n … :

      Дополнительную информацию о функциях каждого модуля можно найти в Интернете. Также вы можете посмотреть длинное описание пакета с помощью следующей команды:

      На экране результатов будет много текста, а в поле описания Description будет приведено развернутое описание функционала модуля.

      Например, чтобы узнать функции модуля php-cli, нужно использовать следующую команду:

      Помимо другой информации вы увидите следующий фрагмент:

      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 Debian's default PHP version (currently 7.0). …

      Если после изучения информации вы решите установить пакет, вы можете использовать для этого команду apt install, как для любого другого программного обеспечения.

      Если вы решили установить php-cli, введите следующую команду:

      Если вы хотите установить несколько модулей, вы можете перечислить их после команды apt install, разделяя пробелами:

      • sudo apt install package1 package2 ...

      Ваш комплект LAMP установлен и настроен. Однако прежде чем вносить другие изменения или развертывать приложения, будет полезно протестировать конфигурацию PHP на наличие возможных проблем.

      Шаг 4 — Тестирование обработки PHP на веб-сервере

      Чтобы проверить правильность настройки системы для кода PHP, создайте простой скрипт PHP под названием info.php. Чтобы Apache мог найти этот файл и правильно его обслуживать, его нужно сохранить в специальной директории web root.

      В Debian 9 эта директория находится по адресу /var/www/html/. Для создания файла в этой директории запустите следующую команду:

      • sudo nano /var/www/html/info.php

      В результате откроется пустой файл. Вставьте в файл следующий код PHP:

      /var/www/html/info.php

      <?php
      phpinfo();
      ?>
      

      После завершения редактирования сохраните и закройте файл.

      Теперь вы можете проверить способность вашего веб-сервера правильно отображать контент, генерируемый этим скриптом PHP. Для этого откройте страницу в своем браузере. Вам снова потребуется внешний IP-адрес вашего сервера.

      Вам нужен следующий адрес:

      http://your_server_ip/info.php
      

      Отображаемая страница должна выглядеть примерно так:

      Информация PHP по умолчанию в Debian 9

      На этой странице содержится базовая информация о вашем сервере с точки зрения PHP. Эта информация полезна для отладки и обеспечения правильного применения настроек.

      Если вы видите эту страницу в своем браузере, PHP работает надлежащим образом.

      После тестирования этот файл лучше удалить, поскольку он может предоставить неуполномоченным пользователям информацию о вашем сервере. Для этого запустите следующую команду:

      • sudo rm /var/www/html/info.php

      Если впоследствии вам снова потребуется эта информация, вы всегда можете воссоздать эту страницу.

      Заключение

      Вы установили комплект LAMP, и теперь у вас имеется множество вариантов дальнейших действий. Вы установили платформу, которая позволит вам устанавливать на ваш сервер разнообразные сайты и веб-приложения.



      Source link