servidor web apache + PHP en OpenMediaVault

 

servidor web apache + PHP en OpenMediaVault

Claro, en OMVPlugins también hay un complemento de Apache , pero por el momento no funciona con la versión 0.5 de OMV real.
Así que aquí hay algunas instrucciones sobre cómo obtener un servidor http apache2 que funcione con PHP en su máquina OMV y acceso a samba para completar el contenido fácilmente.

Acceda a la consola de su OMV-Machine ya sea por ssh remoto o directamente en la máquina si tiene el teclado y el monitor conectados.
Usaremos nano como editor. Si aún no lo tiene instalado, puede hacerlo mediante

sudo apt-get install nano 

o simplemente usa vi

En primer lugar, obtenemos nuestra distribución actual por


sudo apt-get update
sudo apt-get upgrade

Ahora instalamos el servidor web Apache2 y PHP por


sudo apt-get install apache2 php5 libapache2-mod-php5

(si desea instalar con todos los paquetes disponibles para PHP, irá con:

apt-get install apache2 libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-domxml php5-gd php5-imap php5-ldap php5-mcal php5-mhash php5-mysql php5-odbc php5-pear php5-xslt

)

Ahora tenemos que configurar un poco.

No queremos que nadie tenga acceso a nuestro webroot openmediavault, por lo que necesitamos un nuevo webroot:


mkdir /var/www/www
chown www-data:www-data www

O en caso de que desee tener la raíz web para su nuevo host virtual en uno de sus volúmenes de datos, simplemente puede


cd /var/www
sudo ln -s /path/to/your/data/volume/webroot
sudo chown www-data:www-data /path/to/your/data/volume/webroot

El hecho de que OMV-WebUI ya resida en el puerto 80 ahora nos deja con las opciones de cambiarlo a otro puerto o dejarlo y poner nuestro propio servidor en otro puerto. Por simplicidad, optaríamos por la segunda opción y colocaríamos nuestro nuevo servidor en el puerto 81.
Para hacerlo, tenemos que crear un nuevo host virtual:


cd /etc/apache2/sites-available
sudo nano www

y llénala de vida:



<VirtualHost *:81>
        AddHandler cgi-script .cgi

        # Increase HTTP request header field
        LimitRequestFieldSize 16380
        # Set maximum HTTP request length to 25 MiB
        FcgidMaxRequestLen 26214400
        FcgidIOTimeout 300

        DocumentRoot /var/www/www
        <Directory /var/www/www>
                DirectoryIndex index.php index.html
                Options +ExecCGI
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ahora le decimos a Apache que escuche en el puerto 81 también por

sudo nano / etc / apache2 / ports.conf

agregando:

#NameVirtualHost *: 81
Escuchar 81

Finalmente habilitamos ese nuevo host virtual y recargamos nuestro apache2 para obtener los cambios en vivo:


sudo a2ensite www
sudo service apache2 restart

El servidor web ahora debería estar listo en http://xxx.xxx.xxx.xxx:81 (reemplace x con la ip de su máquina OMV).

-

Para facilitar el llenado y el cambio, queremos tener acceso samba a nuestro webroot.
Como samba está preinstalado para OMV, podríamos configurar el recurso compartido en la interfaz de usuario web de OMV o manualmente de la siguiente manera:


sudo nano /etc/samba/smb.conf

agregue las siguientes líneas:


[www]
comment = webroot on port 81
path = /var/www/www/                     #or /var/www/whateveryourwebrootsnameonyourdatavolumeis
guest ok = yes
read only = no
browseable = yes
inherit acls = yes
inherit permissions = yes
ea support = no
store dos attributes = no
printable = no
create mask = 0755
force create mode = 0644
directory mask = 0755
force directory mode = 0755
hide dot files = yes
invalid users =
read list = "www-data"

Ahora reinicie samba para obtener los cambios en vivo:


sudo service samba restart

Si todo salió bien, ahora tenemos un servidor web Apache en funcionamiento http://xxx.xxx.xxx.xxx:81
con fácil acceso para cambiar el contenido ensmb://xxx.xxx.xxx.xxx/www/



=================================================================

El servidor HTTP Apache es el más usado del mundo. Ofrece muchas características potentes, entre las que se incluyen módulos que se cargan de forma dinámica, una sólida compatibilidad con medios y amplia integración con otras herramientas de software populares.

En esta guía, explicaremos la forma de instalar el servidor web de Apache en su servidor de Debian 9.

Requisitos previos

Antes de comenzar a aplicar esta guía, debe tener un usuario no root normal con privilegios sudo configurado en su servidor. Además, deberá habilitar un firewall básico para que bloquee los puertos que no sean esenciales. Para aprender a configurar una cuenta normal de usuario y un firewall para su servidor, siga nuestra guía de configuración inicial para servidores de Debian 9.

Cuando disponga de una cuenta, inicie sesión como usuario no root para comenzar.

Paso 1: Instalar Apache

Apache está disponible dentro de los repositorios de software predeterminados de Debian, lo que permite instalarlo utilizando herramientas convencionales de administración de paquetes.

Comencemos actualizando el índice de paquetes locales para que reflejen los últimos cambios anteriores:

  • sudo apt update
 

A continuación, instale el paquete apache2:

  • sudo apt install apache2
 

Una vez confirmada la instalación, apt instalará Apache y todas las dependencias necesarias.

Paso 2: Ajustar el firewall

Antes de probar Apache, es necesario modificar los ajustes de firewall para permitir el acceso externo a los puertos web predeterminados. Suponiendo que siguió las instrucciones de los requisitos previos, debería tener un firewall UFW configurado para que restrinja el acceso a su servidor.

Durante la instalación, Apache se registra con UFW para proporcionar algunos perfiles de aplicación que pueden utilizarse para habilitar o deshabilitar el acceso a Apache a través del firewall.

Enumere los perfiles de aplicación ufw escribiendo lo siguiente:

  • sudo ufw app list
 

Verá una lista de los perfiles de aplicación:

Output
Available applications: AIM Bonjour CIFS . . . WWW WWW Cache WWW Full WWW Secure . . .

Los perfiles de Apache comienzan con WWW:

  • WWW: este perfil abre solo el puerto 80 (tráfico web normal no cifrado).
  • WWW Cache: este perfil abre solo el puerto 8080 (algunas veces se utiliza para proxies web y de caché).
  • WWW Full: este perfil abre el puerto 80 (tráfico web normal no cifrado) y el puerto 443 (tráfico cifrado de TLS/SSL).
  • WWW Secure: este perfil abre solo el puerto 443 (tráfico cifrado de TLS/SSL).

Se recomienda habilitar el perfil más restrictivo, que de todos modos permitirá el tráfico que configuró. Debido a que en esta guía aún no configuramos SSL para nuestro servidor, solo deberemos permitir el tráfico en el puerto 80:

  • sudo ufw allow 'WWW'
 

Puede verificar el cambio escribiendo lo siguiente:

  • sudo ufw status
 

Debería ver el tráfico HTTP permitido en el resultado que se muestra:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)

Como puede ver, el perfil se activó para permitir el acceso al servidor web.

Paso 3: Comprobar su servidor web

Al final del proceso de instalación, Debian 9 inicia Apache. El servidor web ya debería estar en funcionamiento.

Realice una verificación con el sistema systemd init para saber si se encuentra en ejecución el servicio escribiendo lo siguiente:

  • sudo systemctl status apache2
 
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago Main PID: 12849 (apache2) CGroup: /system.slice/apache2.service ├─12849 /usr/sbin/apache2 -k start ├─12850 /usr/sbin/apache2 -k start └─12852 /usr/sbin/apache2 -k start Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server... Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.

Como puede ver en este resultado, parece que el servicio se inició correctamente. Sin embargo, la mejor forma de comprobarlo es solicitar una página de Apache.

Puede acceder a la página de destino predeterminada de Apache para confirmar que el software funcione correctamente mediante su dirección IP: Si no conoce la dirección IP de su servidor, puede obtenerla de varias formas desde la línea de comandos.

Intente escribir esto en la línea de comandos de su servidor:

  • hostname -I
 

Obtendrá algunas direcciones separadas por espacios. Puede probar cada una de ellas en su navegador web para ver si funcionan.

Una alternativa es usar la herramienta curl, que debería proporcionarle su dirección IP pública tal como se ve desde otra ubicación en Internet.

Primero, instale curl utilizando apt:

  • sudo apt install curl
 

Luego, utilice curl para recuperar icanhazip.com mediante IPv4:

  • curl -4 icanhazip.com
 

Cuando tenga la dirección IP de su servidor, introdúzcala en la barra de direcciones de su navegador:

http://your_server_ip

Debería ver la página web predeterminada de Apache de Debian 9:

Página predeterminada de Apache

Esta página indica que Apache funciona correctamente. También incluye información básica sobre archivos y ubicaciones de directorios importantes de Apache.

Paso 4: Administrar el proceso de Apache

Ahora el servidor web funciona, repasemos algunos comandos de administración básicos.

Para detener su servidor web, escriba lo siguiente:

  • sudo systemctl stop apache2
 

Para iniciar el servidor web cuando se detenga, escriba lo siguiente:

  • sudo systemctl start apache2
 

Para detener y luego iniciar el servicio de nuevo, escriba lo siguiente:

  • sudo systemctl restart apache2
 

Si solo realiza cambios de configuración, Apache a menudo puede recargarse sin cerrar conexiones. Para hacerlo, utilice este comando:

  • sudo systemctl reload apache2
 

Por defecto, Apache está configurado para iniciarse automáticamente cuando el servidor lo hace. Si no es lo que quiere, deshabilite este comportamiento escribiendo lo siguiente:

  • sudo systemctl disable apache2
 

Para volver a habilitar el servicio de modo que se cargue en el inicio, escriba lo siguiente:

  • sudo systemctl enable apache2
 

Ahora, Apache debería iniciarse de forma automática cuando el servidor lo haga de nuevo.

Paso 5: Configurar hosts virtuales (recomendado)

Al emplear el servidor web Apache, puede utilizar _hosts virtuales _(similares a bloques de servidor de Nginx) para encapsular detalles de configuración y alojar más de un dominio desde un único servidor. Configuraremos un dominio llamado example.com, pero debería cambiarlo por su propio nombre de dominio. Consulte nuestra Introducción a DNS de DigitalOcean para hallar más información sobre la configuración de un nombre de dominio con DigitalOcean.

Por defecto, Apache en Debian 9 tiene habilitado un bloque de servidor que está configurado para proporcionar documentos del directorio /var/www/html. Si bien esto funciona bien para un solo sitio, puede ser difícil de manejar si aloja varios. En vez de modificar /var/www/html, crearemos una estructura de directorio dentro de /var/www para nuestro sitio example.com y dejaremos /var/www/html como directorio predeterminado que se abastecerá si una solicitud de cliente no coincide con otros sitios.

Cree el directorio para example.com, utilizando el indicador -p para crear cualquier directorio principal necesario:

sudo mkdir -p /var/www/example.com/html

A continuación, asigne la propiedad del directorio con la variable de entorno $USER:

  • sudo chown -R $USER:$USER /var/www/example.com/html
 

Los permisos de sus root web deberían ser correctos si no modificó su valor unmask, pero puede comprobarlo escribiendo lo siguiente:

  • sudo chmod -R 755 /var/www/example.com
 

A continuación, cree una página de ejemplo index.html utilizando nano o su editor favorito:

  • nano /var/www/example.com/html/index.html
 

Dentro de ella, agregue el siguiente ejemplo de HTML:

/var/www/example.com/html/index.html
<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com virtual host is working!</h1>
    </body>
</html>
 

Guarde y cierre el archivo cuando termine.

Para que Apache proporcione este contenido, es necesario crear un archivo de host virtual con las directivas correctas. En lugar de modificar el archivo de configuración predeterminado situado en /etc/apache2/sites-available/000-default.conf directamente, crearemos uno nuevo en /etc/apache2/sites-available/example.com.conf:

  • sudo nano /etc/apache2/sites-available/example.com.conf
 

Péguelo en el siguiente bloque de configuración, similar al predeterminado, pero actualizado para nuestro nuevo directorio y nombre de dominio:

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
 

Tenga en cuenta que cambiamos DocumentRoot por nuestro nuevo directorio y ServerAdmin por un correo electrónico al que pueda acceder el administrador del sitio example.com. También agregamos dos directivas: ServerName, que establece el dominio de base que debería coincidir para esta definición de host virtual, y ServerAlias, que define más nombres que deberían coincidir como si fuesen el nombre de base.

Guarde y cierre el archivo cuando termine.

Habilitaremos el archivo con la herramienta a2ensite:

  • sudo a2ensite example.com.conf
 

Deshabilite el sitio predeterminado definido en 000-default.conf:

  • sudo a2dissite 000-default.conf
 

A continuación, realizaremos una prueba para ver que no haya errores de configuración:

  • sudo apache2ctl configtest
 

Debería ver el siguiente resultado:

Output
Syntax OK

Reinicie Apache para implementar sus cambios:

  • sudo systemctl restart apache2
 

Con esto, Apache debería ser el servidor de su nombre de dominio. Puede probar esto visitando http://example.com. Allí, debería ver algo como lo siguiente:

Ejemplo de host virtual de Apache

Paso 6: Familiarizarse con archivos y direcciones importantes de Apache

Ahora que sabe administrar el propio servicio de Apache, debe tomarse unos minutos para familiarizarse con algunos directorios y archivos importantes.

Contenido

  • /var/www/html: el contenido web real, que por defecto solo consta de la página predeterminada de Apache que vio antes, se proporciona desde el directorio /var/www/html. Esto se puede cambiar modificando los archivos de configuración de Apache.

Configuración del servidor

  • /etc/apache2: el directorio de configuración de Apache. En él se encuentran todos los archivos de configuración de Apache.
  • /etc/apache2/apache2.conf: el archivo principal de configuración de Apache. Esto se puede modificar para realizar cambios en la configuración general de Apache. Este archivo administra la carga de muchos de los demás archivos del directorio de configuración.
  • /etc/apache2/ports.conf: este archivo especifica los puertos en los que Apache escuchará. Por defecto, Apache escucha en el puerto 80. De forma adicional, lo hace en el 443 cuando se habilita un módulo que proporciona capacidades SSL.
  • /etc/apache2/sites-available/: el directorio en el que se pueden almacenar hosts por sitio. Apache no utilizará los archivos de configuración de este directorio a menos que estén vinculados al directorio sites-enabled. Normalmente, toda la configuración de bloques de servidor se realiza en este directorio y luego se habilita al vincularse al otro directorio con el comando a2ensite.
  • /etc/apache2/sites-enabled/: el directorio donde se almacenan hosts virtuales por sitio habilitados. Normalmente, se crean vinculando los archivos de configuración del directorio sites-available con a2ensite. Apache lee los archivos de configuración y los enlaces de este directorio cuando se inicia o se vuelve a cargar para compilar una configuración completa.
  • /etc/apache2/conf-available/ y /etc/apache2/conf-enabled/: estos directorios tienen la misma relación que los directorios sites-available y sites-enabled, pero se utilizan para almacenar fragmentos de configuración que no pertenecen a un host virtual. Los archivos del directorio conf-available pueden habilitarse con el comando a2enconf y deshabilitarse con el comando a2disconf.
  • /etc/apache2/mods-available/ y /etc/apache2/mods-enabled/: estos directorios contienen los módulos disponibles y habilitados, respectivamente. Los archivos que terminan en .load contienen fragmentos para cargar módulos específicos, mientras que los archivos que terminan en .conf contienen la configuración de estos módulos. Los módulos pueden habilitarse y deshabilitarse con los comandos a2enmod y a2dissmod.

Registros del servidor


  • /var/log/apache2/access.log: por defecto, cada solicitud enviada a su servidor web se asienta en este archivo de registro a menos que Apache esté configurado para no hacerlo.
  • /var/log/apache2/error.log: por defecto, todos los errores se registran en este archivo. La directiva LogLevel de la configuración de Apache especifica el nivel de detalle de los registros de error.

Comentarios

Entradas populares de este blog

Filtrando por fecha

10 videojuegos gratis para aprender JavaScript en línea

reloj obs---datetime.lua