Asunción
1. Este tutorial se realiza en un servidor Ubuntu 14.04, aunque las instrucciones también funcionarán para cualquier distribución basada en Debian.
2. Este tutorial sólo se centra en la instalación y configuración de la pila LEMH. No toca el aspecto de seguridad del servidor.
3. Ya debe tener acceso SSH a su servidor (o acceso físico a su máquina) para llevar a cabo este tutorial.
Instalando Nginx
Nginx es un sustituto ligero, pero potente, de Apache. Es un servidor proxy inverso de código abierto, así como un servidor web con un fuerte enfoque en alta concurrencia, alto rendimiento y bajo uso de memoria. Tenga en cuenta que Nginx no es compatible con Apache, por lo que toda la configuración de Apache, especialmente los archivos.htaccess que ha creado, no funcionarán en Nginx. También es posible ejecutar tanto Apache como Nginx en el mismo servidor, pero eso implicará una configuración complicada que no vamos a tratar aquí.
Nginx se encuentra en el repositorio de Ubuntu, pero a menudo está desactualizado. Para obtener la última versión estable, agregue el siguiente PPA a su sistema:
sudo add-apt-repository ppa:nginx/stable sudo apt-get update
La última versión de Nginx a partir de este post es 1.6.2. Alternativamente, si desea probar la última versión de desarrollo, puede utilizar este PPA en su lugar:
sudo add-apt-repository ppa:nginx/development sudo apt-get update
La última versión de desarrollo a partir de este post es la 1.7.8.
Para instalar Nginx, ejecute el comando:
sudo apt-get install nginx
Una vez instalado, ejecute el siguiente comando para asegurarse de que se inicie:
sudo service nginx start
Luego, en su navegador, vaya a la url «http://123.4.56.789» (reemplace 123.4.56.789 con la dirección IP de su servidor), y verá lo siguiente:
Instalación de MariaDB
Durante muchos años, MySQL es el servicio de gestión de base de datos por defecto para muchas aplicaciones. Desde que fue adquirida por Oracle, mucha gente empezó a cuestionar su «open-source» y la comunidad (que incluía al fundador de MySQL) decidió crear una bifurcación de MySQL y la llamó MariaDB. MariaDB es un reemplazo para MySQL, lo que significa que es totalmente compatible con bases de datos MySQL y puede ser usado como un reemplazo total para MySQL.
Hecho interesante : MySQL fue fundada por Michael Widenius y lleva el nombre de su primera hija, My. El desarrollador principal de MariaDB es también Michael Widenius y lleva el nombre de su segunda hija, Maria.
En su servidor, si ha instalado previamente MySQL, es mejor eliminar MySQL completamente antes de instalar MariaDB:
sudo apt-get remove –purge mysql-server mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo rm -rf /var/lib/mysql
sudo apt-get autoclean
Luego, agregue el PPA para MariaDB:
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository `deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main? sudo apt-get update
Tenga en cuenta que también puede generar su propio PPA aquí y encontrar la ubicación más cercana a su servidor.
Instale MariaDB con este comando:
sudo apt-get install mariadb-server
Durante la instalación, se le pedirá que establezca una contraseña para el usuario root.
Después de la instalación, puede iniciar MariaDB con el comando:
sudo service mysql start
Instalación de PHP y HHVM
HHVM no es un sustituto de PHP. Es una máquina virtual de código abierto diseñada para ejecutar programas escritos en Hack y PHP. HHVM utiliza un enfoque de compilación justo a tiempo (JIT) para lograr un rendimiento superior mientras mantiene la flexibilidad de desarrollo que proporciona PHP.
Antes de instalar HHVM, es importante instalar primero PHP en el servidor. En lugar de instalar el paquete PHP5 completo, que incluye un montón de archivos Apache, sólo instalaremos php5-fpm, que luego instalará las dependencias necesarias de PHP. Además, necesitaremos php5-fpm como reserva para HHVM.
sudo apt-get install php5-fpm php5-mysql php5-curl
Una vez hecho esto, instale HHVM con los comandos:
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get update sudo apt-get install hhvm
Una vez instalado HHVM, proceda a configurarlo para Nginx con el comando:
sudo /usr/share/hhvm/install_fastcgi.sh
Por último, reinicie HHVM
Sudo servicio hhvm restart
Para comprobar si HHVM está funcionando, cree un archivo «phpinfo.php» en la carpeta raíz de Nginx.
sudo nano /var/www/html/phpinfo.php
y pegue la siguiente línea:
Pulse "Ctrl + o" para guardar y "Ctrl + x" para salir.
En su navegador, cargue la url: http://123.4.56.789/phpinfo.php (reemplace 123.4.56.789 con la dirección IP de su servidor). Deberías ver sólo la palabra "HipHop" para mostrar que HHVM está funcionando.
Configurar sitios para ejecutarse en Nginx y HHVM (con php5-fpm fallback)
Ahora que lo tiene todo configurado, es el momento de crear un host virtual para ejecutar su sitio web.
Cree un nuevo archivo de configuración que contenga los detalles de su sitio web:
sudo nano /etc/nginx/sites-available/my-site
y pegar el siguiente fragmento:
servidor {
Escucha 80;
escucha [::]:80;
root /var/www/html;
# Agregar index.php a la lista si está usando PHP
index index.html index.htm;
nombre_servidor mywebsite.com;
incluye hhvm-with-fallback.conf;
ubicación / {
# Primer intento de servir la petición como archivo, luego
# como directorio, y luego volver a mostrar un 404.
try_files $uri $uri/ =404;
}
# pasar los scripts PHP al servidor FastCGI escuchando en 127.0.0.0.1:9000
#
ubicación @fallback {
# include snippets/fastcgi-php.conf;
#
# Con php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
incluir fastcgi_params;
}
# denegar el acceso a los archivos.htaccess, si la raíz del documento de Apache
# concuerda con la de Nginx.
#
localización ~ /.ht {
negar todo;
}
}>
Puede cambiar el nombre_del_servidor para que apunte a su propio dominio y a la ubicación de la carpeta raíz donde desea que se sirvan los archivos.
HHVM tiene este error de bloquearse ocasionalmente sin reiniciarse; esto causará que el sitio web falle con un error de 500. En este caso, crearemos un sistema alternativo mediante el cual PHP5-FPM se hará cargo cuando HHVM falle. ¿Notas el bloque de ubicación @fallback en el fragmento de configuración de arriba? Esa es la llamada de vuelta cuando HHVM falla. Para completar la ecuación, todavía tenemos que crear el archivo «hhvm-with-fallback.conf» que es una versión modificada del archivo «hhvm.conf».
sudo nano /etc/nginx/hhvm-with-fallback.conf
Pegue el siguiente fragmento:
localización ~ .(hh|php)$ { proxy_intercept_errors on; error_page 500 501 502 503 = @fallback; fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; incluir fastcgi_params; }
>
Guarde y salga del archivo.
Por último, pruebe la configuración de Nginx con
sudo nginx -t
y si todo está bien, reinicia Nginx.
reinicio de nginx de servicio de persuasión
Eso es todo. Ha completado la configuración de la pila LEMH en su servidor Linux.