start => servidor
Tabla de Contenidos

Servidor HTTP Apache

¿Cómo instalar el Servidor HTTP Apache para dar servicio HTTP (Web)?

$ sudo aptitude install apache2

¿Cómo instalar PHP para el Servidor HTTP Apache?

$ sudo aptitude install php5
$ sudo gedit /var/www/testphp.php
<?php phpinfo(); ?>

¿Cómo MySQL para el Servidor HTTP Apache?

$ sudo aptitude install libapache2-mod-auth-mysql
$ sudo aptitude install php5-mysql
$ sudo /etc/init.d/apache2 restart

¿Cómo restringir el acceso a ciertos directorios con .htaccess?

Se asume la siguiente situación
El directorio que se quiere restringir es /var/www/privado

* Crea el fichero .htaccess

$ sudo gedit /var/www/privado/.htaccess
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Acceso Restringido"
AuthType Basic

require valid-user
htpasswd -c /var/www/.htpasswd usuario

(Dónde usuario es el nombre de usuario al que se va autorizar)

-cc

$ sudo gedit  /etc/apache2/sites-enabled/000-default
...
       <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
...
...
       <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
...
$ sudo /etc/init.d/apache2 restart

Gabriel Molina 2005/03/21 00:14

¿Cómo tener un servidor multihosting?

Ejecutar:

sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled
sudo /etc/init.d/apache2 restart

Ahora, cada carpeta /home/usuario/public_html (si existe) de cada usuario del sistema es accesible mediante las URLs:

http://localhost/~usuario/

http://127.0.0.1/~usuario/

http://CUALQUIER-IP-DEL-SISTEMA/~usuario/

http://CUALQUIER-URL-DEL-SISTEMA/~usuario/

Para que cada usuario nuevo que creemos disponga de dicha carpeta:

sudo mkdir /etc/skel/public_html

RECOMENDACIÓN: Los usuarios que se vayan a usar sólo para hosting, es recomendable los configuremos sin permisos de administración de la máquina, con intérprete de comandos /bin/false.

Por defecto, la carpeta que se visualiza es el contenido de /var/www de nuestro servidor, pero queremos dar servicio a algunos usuarios no sólo con su subcarpeta (/~usuario) sino además con urls propias (http://url.my.net).

Por ejemplo, queremos que la carpeta public_html del usuario sitio que hemos creado pueda ser accedida mediante la url http://sitio.my.net (recordemos que ahora ya podría accederse mediante http://server.my.net/~sitio.

Copiamos el archivo de configuración del sitio por defecto y lo editamos:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/sitio
sudo nano /etc/apache2/sites-available/sitio

Buscamos el texto:

<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/

Y sustituimos por el email del usuario y su carpeta personal:

<VirtualHost *>
        ServerAdmin sitio@correo.com

        DocumentRoot /home/sitio/public_html/

Salvamos y permitimos la viabilidad y funcionamiento de esta configuración:

sudo a2ensite sitio
sudo /etc/init.d/apache2 restart

Ahora, si la resolución dns de sitio.my.net resuelve a cualquier dirección IP de nuestra máquina, veremos el contenido de la carpeta /home/sitio/public_html sin problemas, y podremos hacer esto con varios usuarios.

Si queremos que estos usuarios puedan acceder a sus cuentas mediante ftp, el mejor modo será usar el servidor vsftpd:


ColdBeer 2005/11/18 02:19

¿Cómo habilitar el modulo del SSL para el Servidor HTTP Apache??

$ sudo a2enmod ssl 
$ sudo cp /etc/apache2/ports.conf /etc/apache2/ports.conf.backup
$ sudo vi /etc/apache2/ports.conf
Listen 443
$ sudo apache2-ssl-certificate
Country Name (2 letter code) [GB]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company; recommended) []:
Organizational Unit Name (eg, section) []:
server name (eg. ssl.domain.tld; required!!!) []:
Email Address []:
$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/<sitename>

Nota: Donde <sitename> corresponde el nombre del sitio Web.

$ sudo vi /etc/apache2/sites-available/<sitename>

SSLSSLSSL

¿Cómo tener un servidor multihosting?

  1. Cambiamos NameVirtualHost * por NameVirtualHost *:443.
  2. Cambiamos <VirtualHost> por <VirtualHost *:443>.
  3. Y agregamos en cualquier parte y dentro del cuerpo <VirtualHost> las siguientes líneas:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
NameVirtualHost *:443
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.pem
        SSLProtocol all
        SSLCipherSuite HIGH:MEDIUM

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
#[...aquí sigue...]
$ sudo a2ensite <sitename>
$ sudo /etc/init.d/apache2 restart

Nicola Strappazzon 2006/01/24 07:26