En este post les dejo los pasos a seguir para instalar NGINX, PHP y MongoDb en entorno Linux, específicamente en Debian. El entorno de desarrollo está instalado en una máquina virtual usando Vagrant. (Luego escribiré algo al respecto, aun me faltan afinar detalles).
Manos a la obra.
Versión de Linux
Para ver la versión de Linux instalada en el servidor, se debe ejecutar el siguiente comando:
lsb_release -a
Eso nos mostrará algo como lo siguiente:
1 2 3 4 |
Distributor ID: Debian Description: Debian GNU/Linux 8.5 (jessie) Release: 8.5 Codename: jessie |
NGINX
NGINX es la siguiente generación de servidores web, bueno, realmente antes no había mucho de donde escoger, existía Apache o Apache. Esto tendría que evolucionar alguna vez y ya lo hizo.
NGINX es un servidor realmente rápido, (tenía mis dudas oero lo comprobé), pueden aprender más en la página oficial de NGINX o en su wiki.
Entrando en materia, lo primero que debemos hacer es adicionar las referencias de instalacion, para eso editamos el archivo sourcelist.
1 |
vi /etc/apt/sources.list |
Y adicionamos las siguientes líneas al final del archivo.
1 2 |
deb http://ftp.ch.debian.org/debian/ jessie-updates main deb-src http://ftp.ch.debian.org/debian/ jessie-updates main |
Observe que para el ejemplo, mi sistema es debian jessie, deben buscar la página indicada según su sistema. En esta página pueden ver las diferentes versiones para Debian.
Luego hay que actualizar las dependencias.
1 2 3 4 5 |
sudo apt-get update Ahora si podemos ejecutar la instalación de NGINX. sudo apt-get install nginx Una vez termine de instalar, arrancamos el servidor con: sudo service nginx restart |
Con esto ya tenemos instalado y corriendo el NGINX.
PHP
El paso siguiente es la instalación de PHP. En los tiempos de Apache había que instalar el PHP y hacerle algunas modificaciones al Apache para que se pudieran ejecutar.
NGNIX practicamente ejecuta los PHP nativamente, solo hay que instalar el PHP-FPM FastCGI Process Manager (esto ejecutara los php más rápido). Pueden leer más en la documentación de PHP
Ejecutamos el comando de instalación
1 |
sudo apt-get -y install php5-fpm |
El siguente paso es reiniciar el servicio de NGINX y arrancar el servicio de php-fpm.
1 2 |
sudo service nginx restart sudo service php5-fpm start |
Listo con esto ya podemos ejecutar php.
Podemos poner el popular info.php en el directorio /var/www/html/
1 2 3 |
<?php phpinfo( ); ?> |
MongoDB
La idea de todo esto es que nuestra applicación corra velozmente, por eso escogí MongoDb como la base de datos para nuestro proyecto.
Hay muchas leyendas urbanas sobre las bases de datos, muchos creen que SQL es mejor otros defiende las NoSQL pero la verdad son cosas que hacen lo mismo, solo que lo hacen de maneras diferentes.
De toda la información que he leido al respecto, la mejor explicación que encontré es la siguiente:
SQL es como tener varias hojas de cálculo y en cada hoja (tablas) tienes una información que se relaciona unas con otras por intemedio de un identificador único (indice).
NoSQL es como tener un documento de Word, toda la infomación que necesitas, la encuentras en un solo documento.
Obviamente SQL es más popular que NoSQL y al momento de poner aplicaciones en producción, práctimente estamos obligados a usar SQL pues los servidores económicos que encontramos, todos vienen con MySQL. Estoy seguro que cuando MongoDB tambien sea una opción en los servidores con CPanel, todo cambiará.
Se puede encontrar mucha información sobre este tema en la web y si quieren saber más sobre MongoDB, pueden leer su documentación oficial en Inglés y también en Español
Ahora vamos con la instalación de MongoDB.
Lo primero que debemos hacer, según la documentación, es importal la llave pública del sistema de paquetes, para eso ejecutamos este comando:
1 |
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 |
La verdad no estoy seguro si esta llave cambia, por lo que les recomiendo revisar esta parte de la documentación para verificar el comando.
Luego de esto debemos adicionar el repositorio al sistema.
1 |
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list |
Y ahora si, instalamos:
1 |
sudo apt-get install -y mongodb |
Una vez termine la instalación, arrancamos el servicio de Mongo y eso es todo.
1 |
sudo /etc/init.d/mongodb start |
MongoDb + PHP
El siguente paso es agragar la extensión de PHP para Mongo, lo primero es instalar el repositorio para extensiones de PHP, PEAR.
1 |
sudo apt-get install make php5-dev php-pear |
` Luego algunas librerías que son necesarias
1 2 3 4 5 6 |
sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev sudo apt-get install -y libcurl4-openssl-dev pkg-config sudo apt-get install -y libsasl2-dev sudo apt-get install curl libcurl3 php5-curl Ahora si la extension de Mongo sudo pecl install mongodb |