Cómo instalar en Ubuntu Linux Nginx, MySQL, PHP (LEMP)

Preparar

Los pasos de este tutorial requieren que el usuario tenga privilegios de root

Paso 1: Actualización Apt-Get

A lo largo de este artículo voy a usar apt-get como un instalador para todos los programas del servidor. Siempre se descubren vulnerabilidades en los programas que utilizamos, por lo que es importante que descarguemos todo el software actualizado para proteger el servidor.

Hagamos una actualización completa de los programas del servidor.

apt-get update

Paso 2: Instalar Mysql

MySQL es un potente sistema de gestión de bases de datos utilizado para organizar y recuperar datos

Para instalar MySQL, abra el terminal y escriba estos comandos:

sudo apt-get install mysql-server php5-mysql

Durante la instalación, MySQL le pedirá que establezca una contraseña de root. Si pierdes la oportunidad de configurar la contraseña mientras el programa se está instalando, es muy fácil establecer la contraseña más adelante desde dentro del shell de MySQL.

Una vez instalado MySQL, debemos activarlo con este comando:

sudo mysql_install_db

Para finalizar ejecutar el siguiente script de instalación de MySQL:

sudo /usr/bin/mysql_secure_installation

El comando le pedirá su contraseña de root actual.

Escríbalo.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

A continuación, el mensaje le preguntará si desea cambiar la contraseña de root. Sigue adelante y elige N para pasar a los siguientes pasos.

Es más fácil simplemente decir Sí (Y) a todas las opciones. Al final, MySQL recargará e implementará los nuevos cambios.

By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...

Paso 3: Instalar Nginx

Una vez que MySQL está todo configurado, podemos pasar a instalar nginx en el servidor.

Ejecute:

echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
sudo apt-get update
sudo apt-get install nginx

Nginx no se inicia por sí solo. Para obtener Nginx en ejecución, escriba:

sudo service nginx start

Puede confirmar que Nginx se ha instalado en el servidor dirigiendo su navegador a la dirección IP del servidor.

Puede ejecutar el siguiente comando para revelar la dirección IP:

ifconfig eth0 | grep inet | awk '{ print $2 }'

Paso 4: Instalar PHP

Para instalar PHP-FPM (la versión de PHP para Nginx), abra el terminal y escriba estos comandos. Voy a explicar los detalles de configuracion de nginx y php en el siguiente paso.

sudo apt-get install php5-fpm

Paso 5: Configurar PHP

Necesitamos hacer un pequeño cambio en la configuración php. Abrir el archivo php.ini:

sudo nano /etc/php5/fpm/php.ini

Busque la línea cgi.fix_pathinfo = 1 y cambie el 1 a 0.

cgi.fix_pathinfo=0

Si este número se mantiene como 1, el intérprete PHP hará todo lo posible para procesar el archivo que esté lo más cerca posible del archivo solicitado. Este es un posible riesgo de seguridad. Si este número se establece en 0, a la inversa, el intérprete sólo procesará la ruta exacta del archivo, una alternativa mucho más segura. Guardar y Salir. Ahora necesitamos hacer otro pequeño cambio en la configuración de php5-fpm. Abra www.conf:

sudo nano /etc/php5/fpm/pool.d/www.conf

Buscar la línea que contenga: listen = 127.0.0.1:9000, y cámbiela por 127.0.0.1:9000 to /var/run/php5-fpm.sock.

listen = /var/run/php5-fpm.sock

Grabar y salir.

Restaurar php-fpm:

sudo service php5-fpm restart

Paso 6: Configurar Nginx

Abra el archivo de host virtual predeterminado.

sudo nano /etc/nginx/sites-available/default

La configuración debe incluir los cambios que se muestra a continuación (los detalles de los cambios están abajo de la configuración):

[...]
server {
listen 80;

root /usr/share/nginx/www;
index index.php index.html index.htm;

server_name example.com;

location / {
try_files $uri $uri/ /index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}

# pass the PHP scripts to FastCGI server listening on the php-fpm socket
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

}

}
[...]

Estos son los detalles de los cambios:

  • Agregue index.php a la línea de índice.

  • Cambie el server_name del host local a su nombre de dominio o dirección IP (reemplace example.com en la configuración)

  • Cambiar las líneas correctas en la sección “location \~ \.php\$ {“

  • Guardar y Salir

Paso 7: Crear una página de información de PHP

Podemos ver rápidamente todos los detalles de la nueva configuración de php creando una página web.

Para ello, primero cree un nuevo archivo:

sudo nano /usr/share/nginx/www/info.php

Añada las siguientes líneas al archivo:

<!--?php phpinfo(); ?-->

Graba y salga. Reinicie Nginx.

sudo service nginx restart

Puede ver los detalles de configuración de nginx y php-fpm visitando http://su-direccion-ip/info.php

Ahora sus servicios LEMP están configurados en su servidor.

11 razones para utilizar Linux en vez de Windows

Aquí hay 11 razones por las que dicen por qué hay que migrar de Windows a un escritorio Linux.

1) ¡Linux es GRATIS!

A diferencia del sistema operativo Windows y sus actualizaciones relacionadas, la instalación del sistema operativo Linux y la actualización son absolutamente grauitas. Mientras que para el sistema operativo Windows tiene que desembolsar a Microsoft, Linux se ofrece a usted con la mejor interfaz libre de costo.

2) ¡La seguridad de los datos es la máxima prioridad!

Linux se ha desarrollado teniendo la seguridad de los datos del usuario como primera prioridad. Usted siempre habrá escuchado o por su experiencia personal, el dolor de la instalación y actualización del antivirus en Windows. Además del costo adicional del antivirus usted siempre tiene el riesgo de perder datos si no actualiza el antivirus a tiempo.

Sin embargo este no es el caso con un Linux, ya que no se requiere un antivirus en absoluto aquí! Virus y Malware es ajeno a Linux. Por lo tanto, el cambio a Linux no sólo le ahorrará dinero, sino también cada bit de datos almacenados en su disco duro.

3) Usted no tiene que dudar en ir a un nivel más bajo en el hardware!

La mayoría de los paquetes del sistema operativo Windows requieren una buena cantidad de almacenamiento para aplicaciones incorporadas y por lo tanto, puede que tenga que estar equipado con al menos 4 GB de espacio RAM para Windows 10. Linux funciona bien incluso en un hardware bajo de recursos. Con 1GB de RAM con Linux se puede ejecturar perfectamente. Incluso hay distribuciones que requieren 512 MB.

4) ¡Fácil de usar!

Es un mito que la interfaz de Linux es sólo para frikis. No es como los primeros tiempos en los que uno necesitaba ser un ninja en la línea de comandos. Las herramientas GUI han salido de la caja y Linux es actualmente tan fácil de usar como la interfaz de Windows.

5) ¡Los controladores ya no son un problema!

En el escritorio de Windows tenemos que encontrar el controlador que se adapte a nuestro sistema e instalarlo. Sin embargo, este no es el caso con Linux. Todos los controladores están directamente soportados por el Kernel de Linux. Por lo tanto, es más que un Plug and Play con Linux a diferencia de Windows donde uno necesita luchar instalando los controladores.

6) Interfaz atractiva

Linux tiene una interfaz mucho más atractiva si se compara con el escritorio de Windows. Estar en Unity, Cinnamon, Gnome 3, KDE, Mate o entornos de escritorio de gama baja como Xfce o Lxde, todos estos se ven mucho más atractivo que el escritorio de Windows. Se le permite elegir el sabor de escritorio de acuerdo a su elección.

7) Como iOS tienes un App Store

Al igual que iOS, Linux le permite tener su propio repositorio de software o tienda de aplicaciones. Se le permite tener todas las aplicaciones que se requieren en un solo lugar. Es más conveniente para encontrar la aplicación adecuada que necesita. Las aplicaciones en el repositorio de software están bien actualizadas y consumen menos espacio, y no es necesario luchar con la falta de espacio y la llamada continua de problemas para actualizaciones, como en un escritorio de Windows 10.

8) Fácil proceso de actualización

Cada uno de nosotros habría experimentado el tedioso y lento proceso de actualización en un escritorio de Windows. Este no es el caso con Linux. Las actualizaciones de Linux son sólo cuestión de un clic y no es necesario reiniciar el sistema para cada actualización. Todas las actualizaciones están vinculadas a la seguridad y las actualizaciones de aplicaciones, lo que hace que sea un proceso de una sola vez.

9) ¡Los juegos en Linux ya están aquí!

Linux le permite tener acceso a los juegos de Windows sólo a través de PlayOnLinux. También proporciona acceso a GOG.com y Steam donde una serie de juegos nativos de Linux se actualizan regularmente.

10) Soporte de la Comunidad Linux

Otra mejor característica de Linux es el Soporte de la Comunidad Linux. Linux dispone de varios foros y blogs que le proporcionan toda la información necesaria que necesita para utilizar un escritorio Linux.

11) Qué se ejecuta en su escritorio

Con la introducción de Windows 10, nunca se sabe lo que está funcionando en su escritorio y no puede obtener detalles más específicos en él. También con Windows 10, Microsoft puede empujar las actualizaciones a su computadora a voluntad (le sorprenderá ver una actualización al azar funcionar repentinamente). Pero con un Linux, está claro si solo mira la lista de paquetes, lo que se está ejecutando en tu computadora. Y nunca se le obliga a instalar una actualización ni se instala en su computadora automáticamente.

Estas son las 11 razones que hacen que usted debería considerar para utilizar Linux.

Deje de usar la tail -f (la mayoría de las veces)

Veo a mucha gente usando tail -f para monitorear archivos que están cambiando, en su mayoría archivos de registro. Si eres uno de ellos, déjame mostrarte una mejor alternativa: less +F

La documentación explica bien de qué se trata esto de +F : Desplazarse hacia adelante y sigue intentando leer cuando se llega al final del archivo. Normalmente este comando se usaría cuando ya esté al final del archivo. Es una forma de supervisar la cola de un archivo que está creciendo mientras se está viendo. (El comportamiento es similar al comando “tail -f“).

Así que dice que es similar a la tailf -f, pero ¿por qué creo que es mejor?

En pocas palabras, le permite cambiar entre navegación y modo de observación. Todos hemos estado allí: Estás viendo un archivo con la tailf -f, y entonces necesitas buscar algo en este archivo, o simplemente navegar hacia arriba y hacia abajo. Ahora necesitas salir de la cola (o abrir una nueva shell) o abrirlo con vim para encontrar lo que estás buscando. Después de eso, ejecuta la cola de nuevo para seguir viendo el archivo. No hay necesidad de hacer eso cuando se utiliza less.

Digamos que desea ver el archivo apache.log:

$ less +F apache.log
...
La información
importante
del archivo
log
aquí
...
Waiting for data... (interrupt to abort)

Aquí tienes prácticamente el mismo comportamiento que obtendrías con tail.

Ahora podemos hacer algo interesante, se desea buscar todas las apariciones de “foo”. Sólo puedes pulsar Ctrl-c para ir al modo “normal” de less (como si hubieras abierto el archivo sin el distintivo + F), y luego tendrás todas las funciones normales de less que esperas, incluida la búsqueda con /foo . Puede ir a la siguiente o anterior ocurrencia con n o N, subir y bajar con j y k, crear marcas con m y hacer todo tipo de cosas que less (1) diga que puede hacer.

Una vez que haya terminado, simplemente pulse F para volver al modo de observación nuevamente. Es fácil.

Cuando no usar menos

Cuando necesite ver varios archivos al mismo tiempo, tail -f puede darle una mejor salida.

 

Cómo personalizar colores y contenido de Bash en el prompt de terminal de Linux

Actualizar Fedora 24 a 25 con DNF

Hoy, Bash es el shell por defecto en la mayoría (si no en todas) las distribuciones modernas de Linux. Sin embargo, es posible que haya notado que el color del texto en el terminal y el contenido del mensaje pueden ser diferentes de una distro a otra.

En caso de que se han estado preguntando cómo personalizar esto para una mejor accesibilidad o mero capricho, les montreré como puede cambiarlo.

Variable de entorno de Bash PS1

El símbolo del sistema y el aspecto del terminal están gobernados por una variable de entorno denominada PS1. De acuerdo con la página de manual Bash, PS1 representa la cadena del prompt principal que se muestra cuando el shell está listo para leer un comando.

El contenido permitido en PS1 consta de varios caracteres especiales de escape invertido cuyo significado se muestra en la sección PROMPTING de la página de manual.

Para ilustrar, vamos a mostrar el contenido actual de PS1 en nuestro sistema (esto puede ser algo diferente en su caso):

$ echo $PS1
[\u@\h \W]\$

Ahora explicaré cómo personalizar PS1 según nuestras necesidades.

Personalización del formato PS1

De acuerdo con la sección PROMPTING en la página de manual, este es el significado de cada carácter especial:

\U: el nombre de usuario del usuario actual.
\H: el nombre de host hasta el primer punto (.) En el nombre de dominio completo.
\W: el nombre de base del directorio de trabajo actual, con $HOME abreviado con un tilde (~).
\$: Si el usuario actual es root, muestra #, $ en caso contrario.

Por ejemplo, es posible que desee considerar la posibilidad de agregar ! Si queremos mostrar el número del historial del comando actual, o \H si queremos mostrar el FQDN en lugar del nombre del servidor corto.

En el ejemplo siguiente, importaremos ambos a nuestro entorno actual ejecutando este comando:


PS1="[\u@\H \W !]\$"

Al presionar Intro, verá que el contenido del mensaje cambia como se muestra a continuación. Compare el mensaje antes y después de ejecutar el comando anterior:

Ahora vamos un paso más allá y cambiamos el color del usuario y el nombre de host en el símbolo del sistema, tanto el texto como el fondo que lo rodea.

En realidad, podemos personalizar 3 aspectos del indicador:

Formato de Texto Color del texto Color de Fondo
30: Negro 40: Negro
1: negrita 31: Rojo 41: Rojo
4: subrayado 32: Verde 42: Verde
33: Amarillo 43: Amarillo
34: Azul 44: Azul
35: Púrpura 45: Púrpura
36: Cian 46: Cian
37: Blanco 47: Blanco

Utilizaremos el carácter especial de \e al principio y un m al final para indicar que lo que sigue es una secuencia de color.

En esta secuencia, los tres valores (fondo, formato y primer plano) se separan por comas (si no se da valor, se asume el valor predeterminado).

Además, dado que los rangos de valores son diferentes, no importa cuál (fondo, formato o primer plano) especifique primero.

Por ejemplo, la siguiente PS1 hará que el mensaje aparezca en texto subrayado amarillo con fondo rojo:


PS1="\e[41;4;33m[\u@\h \W]$ "

Tan bueno como parece, esta personalización sólo durará para la sesión de usuario actual. Si cierra su terminal o sale de la sesión, los cambios se perderán.

Para que estos cambios sean permanentes, deberá añadir la siguiente línea a ~/.bashrc o ~/.bash_profile según su distribución:


PS1="\e[41;4;33m[\u@\h \W]$ "

Siéntase libre de jugar con los colores para encontrar lo que funciona mejor para usted.