Configuració Apache

De Wikijoan
(Diferència entre revisions)
Dreceres ràpides: navegació, cerca
(New page: Instal.lació Apache amb Ubuntu ======================================= Vaig al gestor de paquets Synaptic, i busco Apache L'instalo i ja funciona: http://localhost Ara la idea és ...)
 
Línia 1: Línia 1:
Instal.lació Apache amb Ubuntu
+
==Instal.lació Apache amb Ubuntu==
 
+
=======================================
+
  
 
Vaig al gestor de paquets Synaptic, i busco Apache
 
Vaig al gestor de paquets Synaptic, i busco Apache

Revisió de 09:58, 24 oct 2008

Contingut

Instal.lació Apache amb Ubuntu

Vaig al gestor de paquets Synaptic, i busco Apache

L'instalo i ja funciona:

http://localhost


Ara la idea és crear un directori virtual:

http://localhost/socrathos


el primer que he de fer és crear el directori /home/joan/socrathos/web_php, d'on penjarà tota l'aplicació


El fitxer de configuració httpd.conf està a /etc/apache2, però sembla ser que ara es diu apache2.conf


Alias /socrathos/ "/home/joan/socrathos/web_php" -> NO CAL FER AIXÒ


Reinicio l'apache:

Ahora puede reiniciar Apache.


  1. /etc/init.d/apache2 stop
  1. /etc/init.d/apache2 start


o bé ./apache2 restart


http://localhost/socrathos/ funciona, però hi ha un problema de permisos

compte! perquè http://localhost/socrathos no funciona s'ha de ficar el / final


ara bé, hi ha un problema de permisos

utilitzo chmod, però no és un problema de permisos en els fitxers


Apache FAQ: http://httpd.apache.org/docs/1.3/misc/FAQ.html

la documentació en línia de l'apache està a:

http://localhost/doc/apache2-doc/manual/


i precisament aquest directori virtual està definit a /etc/apache2/sites-available/default

Dins de /etc/apache2 hi ha el directori sites-available i el fitxer de configuració default, i aquí és on he de d'afegir socrathos, igual que el directori virtual /doc/


Per tant, és aquí on definiré els meus directoris virtuals. Però això no és tot, continuo tenint problemes de permisos.

La solució està en l'ajuda de l'Apache:


Why do I get a "Forbidden" message whenever I try to access a particular directory?

This message is generally caused because either


The underlying file system permissions do not allow the User/Group under which Apache is running to access the necessary files; or

The Apache configuration has some access restrictions in place which forbid access to the files.

You can determine which case applies to your situation by checking the error log.


In the case where file system permission are at fault, remember that not only must the directory and files in question be readable, but also all parent directories must be at least searchable (i.e., chmod +x /directory/path) by the web server in order for the content to be accessible.


Aquesta última frase és la solució. Faig:

chmod +x /home/

chmod +x /home/joan/

chmod +x /home/joan/socrathos/

chmod +x /home/joan/socrathos/web_php/ (no sé si calia fer-ho tot)


i ja funciona http://localhost/socrathos/prova.htm i examinar el directori


prova.php encara no funciona, doncs no està instalat el paquet de php


=

quant fico http://localhost/socrathos no funciona, falta la / final:

el problema estava en el fitxer /etc/apache2/sites-available/default

on havia afegit el directori virtual de socrathos

la sintaxi correcta és:

Alias /socrathos "/home/joan/socrathos/web_php/"

el problema era que havia agafat el model del Alias /doc/, que també s'hauria de retocar o no.

====

2a possibilitat. La primera possibilitat per definir un site era a: /etc/apache2/sites-available/default

La segona possibilitat és instal.lar un site directament de l'arrel. Quan faig http://localhost, apareix el directori apache2-default/: http://localhost/apache2-default/ -> funciona Una altra possibilitat és definir la meva aplicació al mateix nivell que apache2-default

si miro dins de /etc/apache2/sites-available/default:

       <Directory /var/www/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
               # This directive allows us to have apache2's default start page
               # in /apache2-default/, but still have / go to the right place
               #RedirectMatch ^/$ /apache2-default/
       </Directory>

veig que /var/www/ és l'arrel del meu Apache, i aquí puc ficar directament una carpeta que contingui index.php, i funciona.

RedirectMatch ^/$ /apache2-default/ -> descomentant aquesta línia el que aconsegueixo és que quan faig http://localhost hi ha una redirecció automàtica cap a /apache2-default

amb aquesta opció no cal editar sites-available

En el Linkat del centre, les aplicacions estan instal.lades a /usr/share/apache2/assistencia i /usr/share/apache2/wiki, i s'ha d'editar un altre fitxer. Funciona una mica diferent. No sé si les diferències venen perquè el Linkat està basat en Suse o perquè és una versió de l'Apache diferent.

=====

Anem a posar un login i pwd per entrar a l'aplicació http://localhost/socrathos/

Proteger carpetas con .htaccess y .htpasswd: http://www.cristalab.com/tutoriales/213/proteger-carpetas-con-.htaccess-y-.htpasswd.html

htaccess establecerá el tipo de permiso necesario y qué usuarios pueden acceder a qué archivos, mientras que .htpasswd guardará el nombre de usuario y contraseña de cada uno de ellos.

fitxer .htaccess:


Este archivo lo colocaremos en la carpeta que queremos proteger: /home/joan/socrathos/web_php/ conté:

--- AuthUserFile /home/joan/.htpasswd AuthName "Aplicació Socrathos" AuthType Basic

require user joan ---

por norma general el archivo de contraseñas se pone fuera del alcance de la web, es decir, fuera de la carpeta public_html o similar, como por ejemplo "/home/usuario/.htaccess". En un servidor decente y con accesso por SSH o similares es muy fácil saber cual es la ruta absoluta hacia tu web, en caso contrario puedes utilizar este pequeño php para descubrirla :

<?php

   die($_SERVER["DOCUMENT_ROOT"]);

?>


require user joan -> Indica que el único usuario que puede entrar es joan, cualquier otro -aunque la contraseña sea correcta- no será válido. Tenemos variaciones de esa línea como por ejemplo :

require user joan otrousuario unusuariomas

Donde especificar 2, 3 o más usuarios. Tambien tenemos :

require valid-user

Donde podrán entrar todos los usuarios especificados en el archivo .htaccess (u otro nombre si así lo indicaste en la primera línea.

Podemos incluso proteger sólo algunos archivos de la manera :

AuthUserFile /ruta/absoluta/hacia/.htpasswd AuthName AquiPuedesPonerLoQueQuieras AuthType Basic

<Files "fitxer1.html">

Require valid-user

</Files>

<Files "misvideosxxx.html">

Require user test123

</Files>

Como ven admite mucho juego.

fitxer .htpasswd


Me referiré a .htpasswd como el nombre del archivo, pero como ya dije anteriormente, si no lo pueden esconder de la vista pública, al menos cámbienle el nombre.

Este archivo contiene una lista de nombres de usuario y contraseñas, en formato usuario:contraseña y cada nombre-clave en una línea independiente, por ejemplo :

joan:12JvVkeJRgm8A otrousuario:$1$UNHEaBiV$NzwYQ8NhjzIOUmFyfGyrO/

Como ven, la contraseña está encriptada, por lo general con una variación del algoritmo MD5 realizada por Apache. Pueden encontrar en Internet varios sitios en donde encriptar las contraseñas (éste por ejemplo).

Si disponemos de un servidor apache en local o acceso SSH a nuestro servidor web, podemos ejecutar el comando htpasswd para que nos cree el archivo, o nos devuelva la cadena en la misma consola :

htpasswd -nb usuario contraseña

Esta línea imprimirá en consola la cadena a agregar (manualmente) a nuestro archivo .htpasswd

htpasswd -cb .htpasswd usuario contraseña

Esta otra escribirá en el .htpasswd la cadena corespondiente. La documentación del comando htpasswd es corta pero bastante interesante.

En cualquiera de los casos, hasta el momento hemos de añadir manualmente las parejas usuario:contraseña a nuestro archivo .htpasswd, lo cual puede ser bastante engorroso, para ello podemos utilizar PHP para modificar el contenido de ese archivo, por ejemplo un script sencillo que se limita a añadir los nombres de usuario y contraseñas :

<?php $archivo = $_SERVER["DOCUMENT_ROOT"].'/.xAF3fvV4'; $contenido = $username.":".crypt($password);

if (is_writable($archivo)) {

if (!$handle = fopen($archivo, 'a')) {
   echo "No se puede abrir el archivo ($archivo)";
   exit;
}
if (fwrite($handle, $contenido) === FALSE) {
  echo "No se puede escribir en el archivo ($archivo)";
}


fclose($handle);

} else {

echo "El archivo $archivo no se puede escribir";

} ?>

Em situo a /home/joan, que és on ha d'estar el fitxer .htpasswd: $ htpasswd -cb .htpasswd joan 1732 $ cat .htpasswd joan:gPQnbGnD6l2Tw

reiniciem el servidor: $ sudo /etc/init.d/apache2 restart

http:/localhost/socrathos/ i ni cas No em funciona. Ni en local (estic connectat com a joan) ni des d'una altra màquina de la xarxa: http://192.168.1.130/socrathos/

Si no funciona, hem de donar permisos: chmod a+r .htaccess chmod a+r .htpasswd Encara no funciona

Note

If you're looking to implement this on your own web server, then you should bypass htaccess altogether and simply enter the commands into the httpd.conf (apache configuration) file and specify which directories to which this should apply. The commands that are valid within htaccess are also valid in your apache configuration file. Putting it in the apache configuration helps to speed things up and simplifies web server management.


el problema ha d'estar en la configuració de sites-available així és com ho tinc originalment

  Alias /socrathos/ "/home/joan/socrathos/web_php/"
   <Directory "/home/joan/socrathos/web_php/">
       Options Indexes MultiViews FollowSymLinks -> si comento aquesta línia em surt forbidden i no puc entrar al recurs
       AllowOverride None -> he de posar AllowOverride all!!
       Order deny,allow
       #Deny from all
       #Allow from 127.0.0.0/255.0.0.0 ::1/128
       Allow from all
   </Directory>

Solució: AllowOverride all

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines