Saber que locale están instalados en el servidor con PHP

Si intentamos mostrar una fecha en PHP es posible que nos encontremos que salga con el formato:

July 31, 2007

Para que se muestre correctamente debemos usar el “locale” correcto que haga que se muestre la fecha en el formato adecuado. Los locales más habituales son del estilo de éstos:

es_ES
es_ES.ISO_8859-1

Para establecer un locale se usa la siguiente función:

@setlocale(LC_TIME, 'es_ES');

El problema es que hay que hay que poner el nombre exacto del locale ya que de otra forma no funcionará. Aquí tenéis un sencillo script en PHP que te ayudará a saber qué locales están instalados en tu servidor:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a');
echo '‘;
?>

Si quieres que se muestren sólo los españoles:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a | grep -i es');
echo '‘;
?>

Proteger subdominios en Plesk más SSL

Un pequeño detalle que hasta la fecha (y que me corrijan si me equivoco) que no ha solucionado la gente de Plesk, es el de poder proteger directorios fuera de la raíz principal del dominio creado, mediante la opción “Protected Directories”. Por ejemplo, queremos crear un subdominio en nuestro dominio principal.

Nombre de dominio: www.probando.com

Nombre de subdominio: subdominio.probando.com

Las raíces de uno y otro son:

www.probando.com /httpdocs o /httpsdocs

subdominio.probando.com /subdomains/subdominio/httpdocs o /subdomains/subdominio/httpdocs

El problema aquí es que Plesk (probado en la versión 8.3.0) no reconoce las raices de directorio que no sean /httpdocs o /httpsdocs. Por lo tanto, si creamos un subdominio, no podemos protegerlo “comodamente” al menos. Hay dos opciones. Si tenemos licencias para varios dominios, podemos crear un dominio nuevo, quitarle las www y asignarle el nombre de subdominio pero eso es un desperdicio de la licencia. La otra opción es crear el htaccess y htpasswd a pelo y es muy fácil. Pero como se que no me voy a acordar dentro de 1 año, lo pongo aquí y aquí se queda :D De paso, aprovecho para comentar como se puede utilizar los certificados que genera el propio panel de Plesk, que, a falta de uno comprado a otro proveedor ya nos pueden servir de algo.

No hace falta entrar por ssh, con un ftp lo podemos hacer todo. Listo los pasos desde cero.

  1. Domains->Nombredenuestrodominio->Certificates->Add New Certificate (configuramos los datos y clickamos en Self-Signed. Ya tenemos el certificado creado para ese dominio)
  2. Si queremos habilitar el certificado para el dominio principal: Domains->Nombredenuestrodominio->Setup (habilitamos el soporte SSL)
  3. Creamos el subdominio: Domains->Nombredenuestrodominio->Subdomains->Add Subdomain (habilitamos el soporte SSL)
  4. Automáticamente se crea una carpeta en /subdomains/<nombre>
  5. Ahora mismo tenemos creado un certificado para el dominio y hemos creado un subdominio. Vamos a proteger ese directorio. En este caso, que vamos a utilizar el protocolo https, necesitamos trabajar con la carpeta raíz del subdominio /subdomains/<nombre>/httpsdocs
  6. Utilizamos cualquier forma de generar un htaccess y su correspondiente htpasswd. Al final del post hay un link al respecto. Lo fundamental es saber la ruta completa hasta la carpeta que hace de DocumentRoot. Podemos mirarlo haciendo un archivo php y llamando a phpinfo()
  7. Cuando tengamos los archivos los subimos a /subdomains/<nombre>/httpsdocs. El nombre correcto de cada uno ha de ser .htaccess y .htpasswd. Si se desaparecen al subirlos por ftp, fuerza el ver archivos ocultos ;)
  8. Accede a https://subdominio.nombredetudomonio.com y prueba a entrar. Si no te coge la contraseña asegurate de que la raíz hasta el .htpasswd es correcta. Si no has querido soporte ssl será http://etc.etc.etc.

Ejemplo de htaccess:

AuthUserFile /var/www/vhosts/nombrededominio/subdomains/panel/httpsdocs/.htpasswd
AuthGroupFile /dev/null
AuthName "Password Protected Area"
AuthType Basic
<limit GET POST>
require valid-user
</limit>

Ejemplo de htpasswd:

usuariovalido:jkldfZdlfjds890

Links:

La biblia del servidor Apache

El servidor HTTP Apache es un software (libre) servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 [1] y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf eligió ese nombre porque quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y “civilizasen” el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor “emparchado”).

Descargar:
http://rapidshare.com/files/74510947/LBServ_Ap2.rar

Password: www.ivlabs.org

apache

Monitorizar las caídas de tu servidor o hosting

Quieres saber porque tu web esta caída, hostracker es un servicio de monitorización de web, una vez en su pagina debes escribir la dirección de tu web y hostracker por medio de su algoritmo visitará tu web desde diferentes localidades del planeta y dándote resultados muy interesantes como el sitios desde el que fue monitorizado, si el resultado fue positivo, el tamaño de la página, lo que tardo la página en cargar, la dirección IP del servidor donde tienes alojada tu web y la empresa que colaboro con hostracker para hacer la monitorización desde ese punto del planeta.
Para que te sirve?, si intentas entrar en tu web y no lo logras, con esta herramienta podrás saber si es problema de tu hosting, si es visitable desde otros puntos geográficos, pero no desde tu localidad, al menos así podrás saber si es problema de caída de tu servidor o hosting y descartar otras posibilidades.