$ sudo aptitude install php5 $ sudo gedit /var/www/testphp.php
<?php phpinfo(); ?>
$ sudo aptitude install libapache2-mod-auth-mysql $ sudo aptitude install php5-mysql $ sudo /etc/init.d/apache2 restart
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
/etc/apache2/sites-enabled/default
así$ 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
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://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
$ 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?
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