El servidor Apache HTTP (Apache) es uno de los software de servidor web multiplataforma gratuitos y de código abierto más populares, lanzado bajo los términos de la Licencia Apache 2.0. Apache es popular como parte de la configuración LAMP, siendo la A en el acrónimo. La funcionalidad del servidor apache se puede ampliar con los muchos módulos disponibles.
PHP es un lenguaje de secuencias de comandos de propósito general orientado al desarrollo web. Es uno de los lenguajes de programación populares para la web. Las herramientas populares como WordPress están codificadas usando php. Las grandes empresas como Facebook también usan mucho php.
Contenido relacionado
- Cómo instalar y configurar PHP y Apache (pila LAMP) en Ubuntu 20.04
- Cómo instalar Apache y PHP (pila LAMP) en Rocky Linux/Centos 8
- Cómo instalar y configurar PHP y Nginx (LEMP) en Debian 11
Requisitos
Para seguir esta guía, asegúrese de tener lo siguiente:
- Un servidor Debian 11 actualizado
- Acceso root al servidor o Usuario con acceso sudo
- Acceso a Internet
Tabla de contenido
- Asegurarse de que el servidor esté actualizado
- Instalación de PHP en Debian 11
- Instalación de Apache en Debian 11
- Configuración de host virtual
1. Asegurarse de que el servidor esté actualizado
Antes de continuar, siempre es una buena práctica asegurarse de que el servidor esté actualizado. Usa estos comandos para lograr esto
sudo apt update
sudo apt upgrade -y
2. Instalación de PHP en Debian 11
PHP está disponible en los repositorios predeterminados de Debian 11. La última versión de PHP al escribir este blog es PHP 7.4.
Instale PHP y algunos paquetes comunes usando este comando:
sudo apt install -y \
php \
php-common \
php-cli
Compruebe la versión instalada de PHP
$ apt-cache policy php
php:
Installed: 2:7.4+76
Candidate: 2:7.4+76
Version table:
*** 2:7.4+76 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
Verifique la versión de php instalada usando este comando:
$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
3. Instalación de apache en Debian 11
Los paquetes de Apache están disponibles en los repositorios predeterminados de Debian 11 como apache2
. Instálalo usando este comando:
sudo apt install -y apache2
Confirme los paquetes instalados usando este comando:
$ apt-cache policy apache2
apache2:
Installed: 2.4.51-1~deb11u1
Candidate: 2.4.51-1~deb11u1
Version table:
*** 2.4.51-1~deb11u1 500
500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
100 /var/lib/dpkg/status
2.4.48-3.1+deb11u1 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
El servicio se iniciará de forma predeterminada. Verifique el estado usando este comando:
$ 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 Tue 2021-12-14 03:01:04 UTC; 5min ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 19103 (apache2)
Tasks: 6 (limit: 4626)
Memory: 12.8M
CPU: 59ms
CGroup: /system.slice/apache2.service
├─19103 /usr/sbin/apache2 -k start
├─19105 /usr/sbin/apache2 -k start
├─19106 /usr/sbin/apache2 -k start
├─19107 /usr/sbin/apache2 -k start
├─19108 /usr/sbin/apache2 -k start
└─19109 /usr/sbin/apache2 -k start
Dec 14 03:01:04 ip-10-2-40-188 systemd[1]: Starting The Apache HTTP Server...
Dec 14 03:01:04 ip-10-2-40-188 systemd[1]: Started The Apache HTTP Server.
Para habilitar el servicio en el arranque, use este comando
sudo systemctl enable apache2
Para confirmar que Apache está instalado y funciona bien, visite la dirección IP del servidor en el navegador (http://server_ip). Si no conoce la IP del servidor, consígala usando este comando en su terminal:
curl -4 icanhazip.com
Si todo va bien, debería ver la página predeterminada de Apache2 Debian .
4. Configuración de hosts virtuales
Con Apache, es posible alojar varios sitios en el mismo servidor donde se ejecuta Apache. Esto siempre se puede lograr utilizando varios dominios, cada uno de los cuales representa un sitio que aloja el servidor.
Los hosts virtuales Apache son similares a los bloques de servidores Nginx. Cada host virtual tendrá detalles de configuración para un único host. Puede tener tantos servidores virtuales como desee.
En este ejemplo, usaremos el dominio site1.citizix.com
para el host virtual, pero tenga la libertad de usar el dominio de su elección. Tenga en cuenta que el DNS del dominio que se utilizará ya debe estar configurado para apuntar a la dirección IP del servidor.
Confírmelo con:
dig -t A site1.citizix.com
Creación de directorio y contenido de muestra
La página predeterminada de apache está configurada como un host virtual predeterminado que sirve contenido desde /var/www/html
. Es una buena práctica crear el directorio de su sitio en /var/www
directorio ya que es una mejor práctica servir desde allí.
Vamos a crear un directorio para nuestro sitio con el siguiente comando:
sudo mkdir /var/www/site1.citizix.com
Vamos a crear un index.php
simple página para servir desde nuestro sitio. Necesitará vim instalado para que esto funcione, si no, use este comando:
sudo apt install -y vim
Edite el archivo:
sudo vim /var/www/site1.citizix.com/index.php
Agregar contenido al archivo:
<?php phpinfo(); ?>
Finalmente, asegurémonos de que el $USER
el usuario posee el directorio del sitio:
sudo chown -R $USER:$GROUP /var/www/site1.citizix.com
Creación de alojamiento virtual
Los archivos de host virtual de Apache especifican la configuración de cada sitio y le indican al servidor web Apache cómo responder a varias solicitudes de dominio.
Las configuraciones de Apache se almacenarán en el directorio /etc/httpd/conf.d/
. Vamos a crear una configuración para nuestro sitio:
sudo vim /etc/apache2/sites-available/site1.citizix.com.conf
Agrega el siguiente contenido:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
DocumentRoot /var/www/site1.citizix.com
DirectoryIndex index.php
ErrorLog /var/log/apache2/site1.citizix.com.error.log
CustomLog /var/log/apache2/site1.citizix.com.requests.log combined
</VirtualHost>
Esto le dirá a Apache lo siguiente:
ServerName
yServerAlias
– nombre del host a servirDocumentRoot
– dónde encontrar directamente la raíz que contiene los documentos web de acceso públicoDirectoryIndex
– El archivo que apache servirá cuando se acceda al sitioErrorLog
– dónde almacenar los registros de errores para este sitioCustomLog
– dónde almacenar los registros de solicitudes para este sitio en particular
Guarde y cierre el archivo cuando haya terminado
Habilitar el sitio
$ sudo a2ensite site1.citizix.com
Enabling site site1.citizix.com.
To activate the new configuration, you need to run:
systemctl reload apache2
Luego recarga la configuración de apache2
sudo systemctl reload apache2
Prueba del servidor virtual
Ahora que la configuración está en su lugar, debemos probar que todo funciona como se esperaba. Desde que creamos el index.php
archivo anterior, permítanos acceder a él yendo a http://server_url/
. En mi caso, esto es http://site1.citizix.com/
. Deberías ver la página de información de php.
Conclusión
En esta guía, logramos configurar Apache para servir el sitio PHP en un servidor Debian 11.