Instalar cliente Oracle y librerías OCI para PHP

Ahora mismo estoy poniendo un producción un servidor en mi centro de trabajo, en el que además de tener que dar servicio para la base de datos PostgreSQL (explique hace poco cómo permitir conexiones entrantes a esta BBDD), debe hacer conexiones externas a una base de datos Oracle.

Estas conexiones las hará un script en PHP por lo que además, deberemos instalar OCI (Oracle Call Interface) para PHP. Suponemos que está ya instalado el servidor web Apache 2 y los componentes básicos de PHP.

read more

Leer más » 8 Comentarios

Configurar soporte HTTPS en Apache

Este tutorial describe cómo poner en marcha un servidor web con soporte HTTPS. El procedimiento lo he utilizado en un equipo con Scientific Linux, distribución derivada de Red Hat, por lo que en esta distribución y en otras derivadas como Fedora o CentOS debería ser el mismo. En Ubuntu, Debian y compañía será muy similar pero cambiarán algunas rutas y el sistema de paquetería.

El certificado utilizado es autogenerado y suponemos que tenemos ya instalado Apache.

Instalación de OpenSSL y mod_ssl

Lo primero que necesitamos es tener instalado el software necesario, para ello a través de yum hacemos lo siguiente:

yum install mod_ssl openssl

Generación del certificado

Primero generamos la clave privada, elegimos algoritmo RSA y 1024 bits:

openssl genrsa -out ca.key 1024

Ahora generamos el CSR (Certificate Signing Request), un fichero que crea una entidad para pedirle a una tercera que lo firme, verificando así que los datos de la primera entidad son correctos. De esta forma unas entidades van certificando a otras creando una cadena de certificación, donde la primera entidad de llama la raí­z de certificación.

openssl req -new -key ca.key -out ca.csr

Finalmente, nos autofirmamos el certificado:

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Le hemos puesto un período de validez de un año, pero podéis cambiar a vuestro gusto este tiempo. OpenSSL os pedirá una serie de datos sobre el certificado y su entidad emisora (vosotros): correo electrónico, ciudad, país… a través de un interfaz en texto.

Cambio de rutas

El siguiente paso es mover los ficheros de la firma que acabamos de generar a la ruta correcta.

mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr

Configuración de Apache

Ya estamos listos para comenzar con la configuración de Apache. En las versiones más modernas de Apache, el fichero de configuración viene dividido en varios ficheros separados por temática para un acceso más rápido a la parte deseada. El fichero que vamos a editar es el siguiente: /etc/httpd/conf.d/ssl.conf.

Buscamos las siguientes líneas y le asignamos el valor correcto (no tienen por qué estar seguidas una de la otra):

SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Host virtual

Para terminar crearemos un host virtual donde indicaremos a Apache dónde buscar las peticiones dirigidas al puerto 443 (las peticiones HTTPS). Definimos un host virtual al final de /etc/httpd/conf/httpd.conf:

NameVirtualHost *:443

Y luego la definición de las características en sí:

<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key AllowOverride All DocumentRoot /var/www/httpsdocs ServerName nombresitio.com </VirtualHost> read more

Leer más » 11 Comentarios

Evitar listado de directorios con Apache

Introducción

Una de las acciones básicas de cara a mejorar la seguridad de un sitio web, es evitar que el servidor devuelva los listados del contenido de los directorios que son públicos. Una solución popular es incluir un fichero index.html vacío en todos los directorios que no deben ser listados o que no tienen un fichero que realice alguna función. Si estamos hablando de un sitio web con cientos o miles de directorios, esta opción queda descartada directamente. read more

Leer más » 3 Comentarios

Abyss Web Server, ¿Una alternativa a Apache y Lighttpd?

Abyss Web Server es un servidor web multiplataforma, disponible para GNU/Linux, Windows, Mac OS X y FreeBSD.

A pesar de su pequeño tamaño, soporta:

  • HTTP/1.1
  • Conexiones seguras SSL/TLS (HTTPS)
  • Compresión HTTP on-the-fly
  • Generación de contenido dinámico a través de CGI y scripts FastCGI
  • Extensiones ISAPI
  • Soporte nativo de ASP.NET
  • XSSI
  • Páginas de error personalizadas
  • Control sobre las direcciones IP de entrada
  • Anti-leeching
  • Límite de ancho de banda.

También cuenta con un sistema automático de baneo de IP, así como con una interfaz de gestión remota vía web, que hace que su configuración sea tan sencilla como navegar por una web; quizás este último aspecto sea la característica diferenciadora con Apache.

También podemos ejecutar PHP, Perl, Python, ASP, ASP.NET, y Ruby on Rails; y acceso a bases de datos tales como MySQL, SQLite, MS SQL Server, MS Access, u Oracle. Lo cual supone una ventaja cuando hablamos de servidores Linux que desean soporte sobre un entorno Windows, y hablo de conexiones MS SQL Server y ASP, ya que ASP.net lo podremos soportarte nativamente con Mono y también con Apache. read more

Leer más » 3 Comentarios

Instalar mod_rewrite en Apache. Los Pretty Permalinks se resisten

Es posible que si habéis probado a usar enlaces permanentes (permalinks) sobre Apache os hayáis encontrado con este problema, me refiero a el caso de los conocidos como Pretty Permalinks, en los que la forma más usual de usarlos es https://www.linuxhispano.net/año/mes/día/nombre-de-la-entrada/, en resumidas palabras son el Santo Grial de los enlaces permanentes, muy usados en los Blogs.

El caso que os enuncio a continuación es el de la instalación del CMS WordPress sobre una máquina Ubuntu 10.04, aunque la metodología es completamente aplicable a cualquier uso de las directivas dentro de .htaccess sobre cualquier máquina que corra Apache2 y cualquier sistema sobre él mismo. read more

Leer más » 12 Comentarios

Solucionar problema del ServerName en Apache 2

Estaba instalando Apache en un servidor. Cuando lo estaba reiniciando al realizar unos cambios me he encontrado con el siguiente error:

ahornero@6581-D:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName read more

Leer más » 4 Comentarios

Microsoft libera el lenguaje F#

Antes de nada os preguntaréis cuál lenguaje es ese tal F# o F Sharp, como podéis ver en al Wikipedia, se trata de un lenguaje nacido al abrigo de la plataforma .NET de Microsoft, cuyo diseño está basado en lenguajes como C#, Haskell y Caml. Como podéis ver en el ranking de Tiobe, es un lenguaje poco popular (está en el tramos de lenguajes sin clasificar por encima del puesto 50). read more

Leer más » 6 Comentarios

Instalar LAMP en Ubuntu 10.10

Sí, quizás muchos de vosotros lo habréis hecho con anterioridad y ya sabréis que LAMP es el acrónimo de Linux Apache MySQL HP; pero la realidad es que tras instalar la nueva versión de Ubuntu, la 10.10, parece que el selector de paquetes por tareas del gestor de paquetes Synaptic ahora no existe, y tenemos que instalarlo manualmente.

La tarea es bien sencilla, desde un terminal, instalamos el paquete tasksel, el mismo que utiliza Synaptic internamente para realizar esta tarea:

ahornero@6581-D:~$ sudo apt-get install tasksel read more

Leer más » 38 Comentarios

Empezar a desarrollar aplicaciones web con Mono

Hace ya unos cuantos meses escribí para Linux+ un artículo sobre esto que os comento hoy, una introducción al desarrollo de aplicaciones web con Mono. Concretamente fue en el número de febrero. Ha pasado el tiempo y la editorial ha tornado sus miras hacia un entorno más abierto. Primero fue el lanzamiento de la revista en formato PDF y de distribución gratuita (antes era de papel y costaba unos cuantos euros) y ahora han lanzado un blog, llamado Revista Linux, donde irán publicando los artículos más relevantes de la revista en formato post, lo que seguro que tanto vosotros como los motores de búsqueda lo agradeceréis. read more

Leer más » 3 Comentarios

Instalar y configurar Apache como servidor de ASP.NET con Mono

Si hace unos días hablábamos de la posibilidad de ejecutar aplicaciones ASP.NET en nuestro equipo Linux con XSP, hoy traemos la que podría ser la segunda parte de ese artículo: hacer esto mismo pero con Apache y mod_mono.

¿Por qué escoger este binomio en lugar de XSP? La respuesta es fácil: XSP es un servidor de pruebas, no de producción y si queremos tener un servicio o aplicación web ejecutando de forma decente en producción, mejor utilizar Apachemod_mono. Las razones no son sólo por la escalabilidad y eficiencia que permite Apache, sino que están relacionadas por la seguridad que provee el servidor más utilizado a nivel mundial y por la gran variedad de opciones que nos ofrece. read more

Leer más » 4 Comentarios

Instalar y configurar Lighttpd server, la alternativa ligera a Apache

“Security, speed, compliance, and flexibility”, estas son las keywords de lighttpd (pronunciado “lighty”), se trata de una pequeña (en tamaño) y muy eficiente alternativa al archiconocido Apache. Quizás lo mejor de todo, su simpleza, el archivo de configuración de lighttpd no es tan complejo como el de Apache.

Construir lighttpd desde cero es un poco más complicado, ya que depende de otras bibliotecas. Como mínimo, necesita la versión de desarrollo (la versión que incluye los archivos de cabecera) de expresiones regulares compatibles con la biblioteca de Perl (PCRE) y la herramienta de compresión zlib. Después de haber instalado estas bibliotecas, la compilación de lighttpd es sencilla: read more

Leer más » 3 Comentarios

Instalar Apache 2 en Ubuntu

Para instalar Apache 2, ejecuta en el terminal de tu consola:

sudo apt-get install apache2

Para comprobar que funciona perfectamente ejecuta:

sudo /etc/init.d/apache2 restart

Ubuntu a veces no define el nombre del servidor para Apache así que es bueno que lo hagamos. Edita apache2.conf:

sudo gedit /etc/apache2/apache2.conf

y añade esta línea:

ServerName "your-server-name"

que debería ir cerca a esta línea:

ServerRoot "/etc/apache2"

En realidad no necesitaremos este nombre del servidor pero vale la pena para evitar que Apache escupa advertencias en cada reinicio. read more

Leer más » 15 Comentarios