WikiJoan

De Wikijoan
(Diferència entre revisions)
Dreceres ràpides: navegació, cerca
(Configuració Apache)
(Replacing page with '= HowTo = == HowTo Ubuntu == === Configuració Apache === == HowTo Linkat == == HowTo MidiShare == == HowTo Mondrian == ---- Xuleta MediaWiki [http://meta.wikimedia.org/wi...')
Línia 1: Línia 1:
= HowTo1 =
+
= HowTo =
 
== HowTo Ubuntu ==
 
== HowTo Ubuntu ==
 
=== Configuració Apache ===
 
=== Configuració Apache ===
 
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.
 
 
 
 
# /etc/init.d/apache2 stop
 
 
# /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
 
 
 
== HowTo Linkat ==
 
== HowTo Linkat ==
 
== HowTo MidiShare ==
 
== HowTo MidiShare ==

Revisió de 09:56, 24 oct 2008

Contingut

HowTo

HowTo Ubuntu

Configuració Apache

HowTo Linkat

HowTo MidiShare

HowTo Mondrian


Xuleta MediaWiki

MediaWiki FAQ

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