Archivo de la categoría: Linux

Cómo ajustar el valor memory_limit de PHP desde Plesk

Una de las directivas de configuración de PHP que más se suele tener que ajustar es el memory_limit. El valor que le asignemos limita la cantidad de memoria del sistema en bytes que un script puede utilizar como máximo, y está pensado para evitar que un posible script mal programado entre por ejemplo en un bucle infinito y nos ocupe toda la memoria del sistema. Cuando llega al límite asignado, simplemente muere.

Es importante tener claro que este límite no es el global para PHP, si no de cada script individual que se esté ejecutando, por ello el valor ideal es el menor que no de errores de memoria.

Si tenemos un script que hace uso intensivo de memoria y supera el límite asignado, PHP nos dará un error parecido a este

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2348617 bytes) in /script.php on line 10

Para aumentar la memoria de PHP desde Plesk, debemos ir a la sección Configuración PHP

conf php plesk

y en el campo memory_limit ponemos la memoria en Mb que queremos asignarconf memory_limit

Guardamos el cambio y comprobamos que no da errores. Si continua dando errores, vamos aumentando la memoria poco a poco (en aumentos de 32 Mb por ejemplo) hasta que encontremos el limite más bajo posible que no nos de errores.

Facebooktwittergoogle_plus

Cómo activar la compresión GZIP en tu servidor

En el anterior post comentábamos algunas estrategias básicas para aumentar la velocidad de carga de nuestra web y una de las más efectivas es activar la compresión GZIP.

El primer paso que debes realizar en tu servidor es comprobar que el módulo de Apache mod_deflate esté activo. En Evidalia Host está activado por defecto tanto en VPS como en los planes compartidos. Para ello debemos comprobar el archivo de configuración de Apache

vi /etc/httpd/conf/httpd.conf

y buscar la línea

#LoadModule deflate_module modules/mod_deflate.so

Si tiene el símbolo # al principio de la línea no está activado, por lo que quitamos el símbolo y reiniciamos Apache

/etc/init.d/httpd restart

Una vez el módulo está activado, debemos indicarle al servidor que comprima las páginas. Para ello, se debe crear un archivo de configuración mod_deflate.conf dentro de /etc/httpd/conf.d/

vi /etc/httpd/conf.d/mod_deflate.conf

Dentro añadimos el siguiente código

<Location />
<IfModule mod_deflate.c>
# se comprueba que el módulo está activo

# activamos la compresión
SetOutputFilter DEFLATE

# hacemos que no comprima imágenes
SetEnvIfNoCase Request_URI \.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary

# nos aseguramos de que los proxies no envien contenido incorrecto
Header append Vary User-Agent env=!dont-vary

<IfModule mod_headers.c>
# hacemos que controle bien peticiones que vienen de detras de un proxy
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
</Location>

Guardamos y reiniciamos Apache de nuevo

/etc/init.d/httpd restart

Y comprobamos que la compresión está activa usando http://checkgzipcompression.com

De esta manera habremos activado la compresión GZIP en nuestro servidor. Alternativamente, si no queremos activarla en todo el servidor, no crearíamos el archivo de configuración mod_deflate.conf e indicaríamos vía .htaccess qué peticiones deseamos que el servidor comprima.

Para configuraciones más avanzadas, recomendamos comprobar la documentación oficial de mod_deflate en http://httpd.apache.org/docs/current/mod/mod_deflate.html

Facebooktwittergoogle_plus

IP fija en un servidor local Linux

IP fija en un servidor local LinuxYa hemos comentado en mas de una ocasión la importancia de tener un servidor de pruebas para hacer los cambios necesarios a nuestra web y observar que dichos cambios funcionan correctamente.

Muchos usuarios optan por tener en el mismo servidor que la web principal, un subdominio con el sitio para pruebas, pero en cambio otros, prefieren trabajar en local.

En el ámbito local, podemos tener algún servidor “todo en uno” como XAMPP o WAMP para Windows o Mamp para Mac, o incluso tener un equipo o una máquina virtual con un sistema operativo Linux.

Evidentemente, ésta última opción requerirá de mas conocimientos, pero nos permitirá “trastear” a mucho mas nivel que con el software empaquetado. El tema que nos ocupa hoy, requiere un sistema Linux ya sea en una máquina real o un sistema virtualizado.

Trabajando desde la consola

Si tenemos varios equipos conectados a nuestro router, es posible que la asignación de la IP varíe. En el caso de acceder a un servidor local, deberemos acceder desde nuestro navegador, indicando la IP del servidor. Si dicha IP varía, dificultará su acceso. Por lo que editaremos en el servidor web el fichero:

/etc/network/interfaces

buscaremos la siguiente línea

iface eth0 inet dhcp

y la modificaremos por lo siguiente

iface eth0 inet static
  address "ip"
  netmask 255.255.255.0
  network "network-ip"
  broadcast "broadcast-ip"
  gateway "gateway-ip"

En donde:

  • ip será la ip que tedrá nuestro equipo (dentro del rango de la red). Ejemplo 192.168.0.25
  • network-ip será la ip inicial: Ejemplo 192.168.0.0
  • broadcast-ip será el ip final: Ejemplo 192.168.0.255
  • gateway-ip será la ip del router: Ejemplo 192.168.0.1

Una vez hecho ésto, deberemos reiniciar la configuración. Para ello teclearemos

/etc/init.d/networking restart

Ahora, nuestro acceso al servidor, se realizará siempre con la misma IP.

Facebooktwittergoogle_plus

Localizar espacio consumido en nuestro servidor VPS Linux

Localizar el espacio consumido en nuestro servidor LinuxPara cualquier equipo informático, sus prestaciones son básicas y en el campo de los servidores web no es una excepción. Dependiendo de las características del equipo, tendremos un rendimiento y en el caso de que sus características se mermen, obtendremos una bajada de rendimiento.

En ocasiones, esta bajada de rendimiento puede ser debida a que estamos llegando a la cota máxima de ocupación del disco, y el servidor tiene problemas para realizar sus funciones correctamente.

En el caso de contar con un VPS, podremos acceder mediante ssh como root y localizar donde está el espacio consumido. Si queremos saber el porcentaje de espacio consumido de disco, deberemos teclear:

df -h

En el caso de obtener un porcentaje de consumo muy alto (entre 85% y 99%) deberemos localizar donde están los ficheros que ocupan tanto disco. Para ello, y de nuevo desde la consola teclearemos:

du -sh /ruta

Para ver la ocupación por directorios de forma recursiva, y lo mas importante, que se muestre en Gb o Mb, para que sea mas “entendible”

Por lo general, nos interesará saber la ocupación de las webs alojadas en nuestro sistema, por lo que tendremos que indicar la ruta (/var/www/vhosts/… ), pero en caso de querer revisar todo el sistema lo indicaremos escribiendo unicamente “/”

Los lugares “comedores de espacio” mas habituales son:

  • Logs del sistema: /var/log/
  • Backups de Plesk: /var/lib/psa/dumps/
  • Ficheros temporales de Plesk: /usr/local/psa/PMM/tmp/
  • Ficheros temporales del propio servidor: /tmp/
  • Sitios web: /var/www/vhosts/
  • Buzones de correo: /var/qmail/mailnames/
  • Bases de datos mysql: /var/lib/mysql/

Si hemos detectado un consumo excesivo en alguno de las ubicaciones anteriormente enumeradas, podremos proceder a su eliminación siempre y cuando estemos seguros de que se trata de ficheros temporales o de logs prescindibles.

Para su eliminación teclearemos:

 rm /ruta_del_fichero
Facebooktwittergoogle_plus

Listar paquetes instalados en Ubuntu con dpkg

Dpkg es el equivalente de rpm de Red Hat, pero para Debian y sus derivados, como Ubuntu. Gracias a este comando, podremos instalar nuevos paquetes o eliminar los que ya hayan sido instalados.

Pero si queremos saber que tenemos instalado en nuestro equipo, podemos teclear en la consola de nuestro equipo:

dpkg -l

Nos aparecerá una larga lista, con todos los paquetes. Si queremos, podemos filtrar nuestra búsqueda. Por ejemplo, vamos a buscar todos los paquetes que tengan el texto “apache”

dpkg -l "apache*"

También podremos obtener información adicional sobre un paquete en concreto tecleando:

dpkg -s apache2

En la que podremos ver el estado (instalado o no), tamaño, dependencias, versión, etc.

dpkg

 

 

Facebooktwittergoogle_plus

Un servidor web con VirtualBox – usar un cliente FTP

Hasta ahora, la única prueba que hemos realizado en nuestro servidor ha consistido en crear la pagina info.php con el editor nano, y guardarla en nuestro servidor virtual en la ubicación / var/www

Pero en el caso de querer copiar una web que ya tengamos creada o de quere instalar una aplicación web, necesitaremos habilitar el traspaso de información desde el equipo anfitrión al equipo virtual. Para ello vamos a instalar el protocolo SSH en el servidor virtual y nos conectaremos a él utilizando un cliente de ftp, en nuestro caso FileZilla.

Instalando SSH en el servidor

Como ya hemos utilizado tasksel para realizar la instalación del servidor Apache, hoy vamos a realizar las instalaciones desde la consola (así vemos varios métodos). Accederemos a nuestra máquina virtual y teclearemos:

sudo apt-get install openssh-server

o bien, si quisiéramos hacer la instalación desde tasksel, abriramos la aplicación tecleando sudo tasksel y a continuación tan solo deberíamos marcar la casilla OpenSSH Server  y Aceptar.

servidor-local-ubuntu-openssh

Una vez instalado el servidor, vamos a probar su funcionamiento en local. Para ello teclearemos:

ssh nombre-usuario@127.0.0.1

donde sustituiremos nombre-usuario por nuestro nombre de usuario, y a continuación indicaremos nuestra contraseña. En nuestro primer acceso veremos un mensaje de aviso, al cual responderemos yes, y ya tendremos nuestra conexión funcionando.

servidor-local-ubuntu-openssh-conectado

Y para salir, simplemente teclearemos exit.

Configurar Filezilla para acceder a la máquina virtual.

En el equipo anfitrión, abriremos FileZilla y pulsaremos sobre el icono Gestor de Sitios. Pulsaremos el botón Nuevo sitio e indicaremos los datos relativos a nuestro servidor, es decir, la ip, nuestro nombre de usuario y la contraseña. En el apartado de protocolo, deberemos seleccionar la opción SFTP – SSH File Transfer Protocol

servidor-local-ubuntu-ssh-filezilla

Si has realizado los pasos que comentamos en el capítilo Un servidor web con VirtualBox – Configurando la red, habrás editado el fichero hosts para acceder a tu servidor local utilizando un nombre en lugar de la ip. Este nombre también puede ser utilizado en FileZilla, en lugar de indicar la IP.

Como podrás comprobar, hemos accedido a nuestro equipo servidor mediante FileZilla y aunque podemos visualizar la carpeta / var/www, no tenemos los permisos para modificar su contenido. En la próxima entrega crearemos alias de dominio para poder utilizar la carpeta home para guardar nuestras webs.

Entregas anteriores

Facebooktwittergoogle_plus

Un servidor web con VirtualBox – Instalando Apache

Después de haber instalado VirtualBox y de haber configurado la red para poder acceder al servidor sin necesidad de escribir su IP, ahora le toca el turno a las aplicaciones “de servidor” propiamente dichas.

Vamos a instalar Apache, PHP y MySql desde tasksel y realizar las pruebas para ver que todo funciona correctamente. En posteriores entregas veremos como instalar algunos módulos directamente desde la consola.

Instalando el servidor desde tasksel

Deberemos arrancar nuestra máquina virtual Linux, y teclear en la línea de comandos

sudo tasksel

accederemos a la pantalla de instalación de paquetes, marcaremos la opción Lamp Server y aceptaremos.

servidor-local-ubuntu-paquete-lamp

Marcando esta casilla instalaremos de una sola vez Apache, PHP y MySQL ya que el sistema se encargará de descargar los paquetes necesarios y de instalar el software.

En un punto de la instalación, el sistema nos solicitará que indiquemos una contraseña para el acceso a la base de datos MySQL. La indicaremos y proseguiremos con la instalación.

servidor-local-ubuntu-password-mysql

Una vez finalizada la instalación, es aconsejable que reiniciemos el equipo para que los servicios se activen correctamente.

Probando el servidor

Antes de continuar instalando mas aplicaciones, vamos a verificar que el servidor esta funcionando correctamente, y de paso, comprobaremos la configuración de la red que hicimos en la entrega anterior.

Desde nuestro equipo anfitrión, abriremos el navegador y teclearemos el nombre del servidor que indicamos en el fichero hosts, que en nuestro caso miservidor y comprobaremos como Apache está funcionando correctamente.

servidor-local-ubuntu-probando-apache

Para comprobar el funcionamiento de php, vamos a crear el típico phpinfo. Lo primero será situarnos en la carpeta donde se almacena el contenido web. Para ello teclearemos:

cd / var/www

Una vez allí, crearemos el fichero con el editor “nano” que viene instalado por defecto:

sudo nano info.php

Se nos abrirá el editor y teclearemos lo siguiente:

<?php
phpinfo();
?>

Despues pulsaremos F2 para guardar, s para sobreescribir y Intro para aceptar el nombre que le hemos asignado. A continuación accederemos al navegador en nuestro equipo anfitrión e indicaremos la url:

http://miservidor/info.php

Si obtenemos esta ventana de información del servidor es que nuestro PHP está funcionando correctamente.

servidor-local-ubuntu-probando-php

Finalmente vamos a acceder por la línea de comandos para ver si MySQL esta bien instalado. Teclearemos:

mysql -u root -p

e indicaremos la contraseña que indicamos en la instalación. Si se nos conecta al servidor MySQL es porque funciona correctamente. Una última prueba será ver las bases de datos actuales. Podemos visualizarlas si tecleamos:

show databases;servidor-local-ubuntu-probando-mysql
Facebooktwittergoogle_plus

Un servidor web con VirtualBox – Configurando la red

En la anterior entrega Un servidor web con VirtualBox – El entorno, instalamos el sistema Ubuntu “pelado”, es decir, sin ningún software adicional, por lo tanto y de momento, no lo podemos utilizar como servidor web.

Lo que hoy vamos a hacer, es preparar nuestro equipo y al sistema virtual para poder utilizarlos sin necesidad de escribir la ip en la barra de direcciones, es decir, le vamos a indicar a nuestro equipo que cuando escribamos cierto nombre en la barra de direcciones del navegador, que acceda a nuestro sistema Ubuntu virtual. Sigue leyendo

Facebooktwittergoogle_plus

Saber la codificación de un fichero en Linux

Es muy común el tener que usar ficheros .csv para actualizar una base de datos y necesitamos un tipo de codificación de caracteres en concreto para que no se estropeen los caracterees especiales. O también puede que necesitemos saber la codificación de un fichero .php para indicarlo en la cabecera de éste.

Para estos casos y si estas utilizando el sistema Linux, existe una herramienta que nos permitirá averiguar fácilmente la codificación.

Tan solo deberás abrir un terminal y teclear:

file -bi nombre_fichero

Obteniendo por ejemplo el siguiente valor:

text/plain; charset=utf-8

siendo el valor de charset la codificación del fichero en cuestión

Puedes conocer mas opciones del comando file, como siempre, si escribes en tu terminal:

man file
Facebooktwittergoogle_plus

Un servidor web con VirtualBox – El entorno

Es muy común el desarrollar un sitio web en local, hacer las pruebas o modificaciones pertinentes, y como proceso final, publicarlo en Internet. Para estos menesteres, existen servidores locales que nos permiten tener Apache, PHP y MySQL instalados muy fácilmente.

Si nuestro sistema es Windows, podremos tener fácilmente un servidor web, utilizando aplicaciones como Xampp, EasyPHP, Wampp, etc. Pero si queremos tener un control total sobre el servidor e instalarle el software que queramos, podemos instalar VirtualBox, y tener nuestro servidor virtualizado.

Para ello vamos a descargar e instalar la última versión de VirtualBox y como servidor utilizaremos Ubuntu Server 12.04.3 LTS, por tener un periodo de soporte más largo.

Instalando el entorno

La instalación de VirtualBox, no nos supondrá mayor problema. Será el típico Siguiente hasta que se haya completado todo el proceso. A continuación, abriremos la aplicación y crearemos una máquina virtual, indicando como Tipo de sistema Linux, como Versión Ubuntu y un nombre que la identifique.

servidor-local-instalacion

El asistente nos preguntará sobre los datos de la maquina virtual. Indicaremos unos 2 Gb de memoria Ram y unos 10-15 Gb de espacio en disco. Aunque estos valores dependerán las cantidades disponibles en nuestro equipo. El disco será de tamaño dinamico (Reservado dinámicamente).

Finalizado el asistente, procederemos a arrancar la máquina virtual, pero primero deberemos indicarle que utilice la ISO de Ubuntu cuando arranque. Para ello, pulsaremos el botón de Configuración, situado en la barra superior. En la nueva ventana que nos aparecerá, pulsaremos en el apartado Almacenamiento. A continuación, en la parte central pulsaremos sobre el icono del disco CD, y finalmente en la parte derecha, Pulsaremos sobre el icono del CD. Esto nos desplegará una serie de opciones. Deberemos eligir Seleccionar un archivo de disco virtual de CD/DVD y pulsar en la ISO de Ubuntu que nos acabamos de descargar.

servidor-local-virtualbox

Aceptaremos los cambios y pulsaremos en el icono de Iniciar, situado en la barra superior. Al arrancar la máquina virtual se iniciará la instalación de Ubuntu Server.

servidor-local-ubuntu

Seleccionaremos el idioma español, y a continuación, indicaremos Instalar Ubuntu Server.Deberemos indicar varios parámetros, como la zona horaria, distribución del teclado, etc.  Indicaremos un usuario y una contraseña para la cuenta. También Indicaremos utilizar todo el disco, cuando se nos pregunte sobre las particiones

Finalmente, cuando se nos pregunte por que servicios queremos instalar, no seleccionaremos ninguno, ya que la instalación de éstos, la realizaremos posteriormente a mano desde la consola.

servidor-local-ubuntu-paquetes

Pasados unos minutos, se nos solicitará reiniciar el equipo. Aceptaremos y nos aparecerá la consola de nuestro servidor Ubuntu, solicitándonos los datos de login.

servidor-local-ubuntu-login

Una vez logueados, ya podremos instalar todo el software necesario, pero esto será en próximas entregas…

Facebooktwittergoogle_plus