domingo, 13 de marzo de 2016

Instalar LAMP en Arch y derivadas

Bueno papilos hoy hago éste tutorial de como instalar un servidor web en nuestro equipo.
Ésto más que nada sirve para practicar, tal vez administrar algo muy pequeño, sólo dejaré una configuración básica, de acuerdo a la máquina que tengamos y el acceso a internet.


 Qué es LAMP?
 LAMP es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:
Linux, el sistema operativo; En algunos casos también se refiere a LDAP.
Apache, el servidor web;
MySQL/MariaDB, el gestor de bases de datos;
Perl, PHP, o Python, los lenguajes de programación.

La combinación de estas tecnologías es usada principalmente para definir la infraestructura de un servidor web, utilizando un paradigma de programación para el desarrollo.


Archivos que vamos a utilizar:

*Apache: /etc/httpd/conf/httpd.conf
*PHP: /etc/php/php.ini
*MySQL/MariaDB: /etc/mysql/my.cnf


Instalación de los paquetes necesarios:

Apache: pacman -S apache




Base de Datos: pacman -S mariadb


Base de datos Opcional método gráfico : pacman -S mysql-workbench


PHP: pacman -S php php-apache



Configuración de Apache:

- Una vez instalado el paquete apache prácticamente ya se encuentra listo para ser usado, pero obviamente tenemos el archivo de configuración httpd.conf que se encuentra en el directorio: /etc/httpd/conf/
- En éste caso usaré la configuración default, pero en otro momento veremos que más podemos hacer con apache, ya que me resultó cómodo, asi que los archivos HTML se encuentran en el directorio /srv/http.
- Asi que vamos hasta dicho directorio y vamos a crear un archivo .html con el siguiente código dentro:

<html>
  <head>
    <title>Bienvenido a Apache!</title>
  </head>
    <body>
      <h2>Funcionando correctamente!</h2>
    </body>
</html>



- Lo guardamos con el nombre index.html y para corroborar que quedó funcionando el server apache, vamos a iniciar el servicio httpd de la siguiente manera (como root):

systemctl start httpd.service

- Abrimos el navegador y escribimos: http://127.0.0.1 o http://localhost y voila!

- Ahora en el caso que quieran que inicie justo a la pc escribimos:

systemctl enable httpd.service

- Y listo! el servicio httpd iniciará con el sistema cada vez que enciendan el equipo.


Configuración de mariadb:

- Antes de utilizar el script de instalación de mariadb, vamos a setear la base de datos de ésta manera:

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql (Wiki link: https://wiki.archlinux.org/index.php/MySQL)

- Luego ejecutamos el script de instalación: mysql_secure_installation y vamos siguiendo los pasos y configurando lo que necesitamos.

- Luego de haber finalizado el script podemos crear un usuario y darle todos los privilegios de la siguiente manera:

* Recuerda colocar el password que colocaste cuando configuraste el script.


- Listo! Ya queda configurada mariadb con un usuario agregado con todos los privilegios.


Configuración de PHP:

- Ahora lo que vamos hacer es configurar Apache junto a PHP. Es una configuración básica, pero como dije más arriba, es para practicar, luego ustedes pueden ir personalizando lo que necesiten.

- Vamos a editar el archivo /etc/httpd/conf/httpd.conf y vamos a comentar la línea:


#LoadModule mpm_event_module modules/mod_mpm_event.so <- quedando de ésa forma con el "#" delante.

Y vamos a agregar la línea:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so debajo.

- Ahora vamos a buscar dentro del mismo archivo la línea:
LoadModule dir_module modules/mod_dir.so

y debajo de ésa agregamos la siguiente:
LoadModule php7_module modules/libphp7.so

- Nos fijamos que se encuentre la línea:
Include conf/extra/php7_module.conf

- También vamos a decirle a PHP que usamos mysql también asi que vamos a editar el archivo php.ini que se encuentra en /etc/php y descomentamos la línea eliminando el ";" que se encuentra delante:

extension=mysqli.so



Guardamos y salimos.

- Y finalmente vamos a crear un archivo por ejemplo:
info.php y agregamos ésta líena dentro del mismo:

<?php phpinfo(); ?>

- Guardamos los cambios, ejecutamos: systemctl restart httpd

- Abrimos navegador e ingresamos a: localhost/info.php





- En el caso de que no se visualice nada, vamos a editar nuevamente el archivo httpd.conf y vamos a la parte de "AddType" y aquí vamos a descomentar un addtype y colcamos éste: AddType application/x-httpd-php .php

Quedando así:




- Finalmente reiniciamos los servicios:

systemctl restart httpd
systemctl restart mysqld

- Listo!

Recuerden que los comandos systemctl se pueden usar así:

* Ejecutar inmediatamente: systemctl start httpd
* Detener inmediatamente: systemctl stop httpd
* Ejecutar al inicio del sistema: systemctl enable httpd
* Deshabilitar el servicio del inicio: systemctl disable httpd
* Visualizar estado del servicio: systemctl status httpd (ésto nos da un parámetro genial para ver si tenemos algún error para darnos idea como solucionarlo).


Espero que les sirva y que tengan una linda experiencia!

Abrazo de gol!

viernes, 11 de marzo de 2016

Eliminar paquetes huérfanos en Arch

Seguramente habrá miles de documentos en internet mostrando como eliminar los paquetes huérfanos en arch, pero es un bajón andar buscando aquí, allá, arriba, abajo, tipo fatality de MK, asi que yo dejo aquí como eliminarlos en algo que ni siquiera es un mini tutorial, sinó más que nada un little how-to, asi que ahí voy!

Abrimos una terminal y escribimos:
sudo pacman -Rsc $(pacman -Qtdq)




Para los que no saben ahí va en más detalle:

pacman -Rsc:
-R: elimina el paquete del sistema.
-c: elimina los paquetes y los que dependen del mismo.
-s: elimina todos los paquetes y sus dependencias siempre que no sean requeridos por otros paquetes que si están siendo usados en nuestro sistema.

pacman -Qtdq:
-Q busca los paquetes en nuestra base de datos.
-t: filtra la salida de los paquetes que no son necesarios.
-d: filtra la salida de los paquetes instalados como dependencias.
-q: mostrará menos información de lo habitual.

Ésto también se puede utilizar en un script como lo harían en sistemas debian con la opción: apt-get autoremove --purge, que eliminaría los paquetes huérfanos y además los archivos de configuración de dichos paquetes.

VideoTutorial:




Nos vemos en la próxima... Abrazo de gol!

sábado, 20 de febrero de 2016

Instalación y Configuración de dnscrypt-proxy + dnsmasq en Archlinux

Introducción: 
  

¿Qué es dnscrypt-proxy?
- DNSCrypt encrypta y autentifica el tráfico DNS entre el usuario y la resolución DNS, previene la suplantación local de las consultas DNS, asegurando que las respuestas DNS son enviadas por el servidor de eleccion. (Wiki)

¿Qué es dnsmasq?
- dnsmasq proporciona servicios como caché DNS y como servidor DHCP. Como un servidor de nombres de dominio (DNS), puede almacenar en caché las consultas DNS para mejorar las velocidades de conexión a los sitios visitados anteriormente, y, como un servidor DHCP, dnsmasq puede ser utilizado para proporcionar direcciones IP internas y rutas a los equipos de una LAN. Uno, o ambos de estos servicios, se pueden implementar. dnsmasq es considerado ligero y fácil de configurar; está diseñado para su uso en un ordenador personal o para su uso en una red con menos de 50 ordenadores. También viene con un servidor PXE.  (Wiki)


¿Qué utilicé?:
- Para editar los archivos de configuración usé nano.
- En todo momento lo hice con mi cuenta de root, pero si tienen configurado sudo, pueden utilizarlo tranquilamente.
- Para chequear la caché con el comando dig, éste se encuentra en bind-tools
dentro de los repositorios oficiales, pacman -S bind-tools :)


Instalación:

- Como root o usando sudo en nuestro terminal o tty instalamos los paquetes dnscrypt-proxy y dnsmasq asi:


* El mensaje de advertencia es porque ya los tengo instalados, ustedes sólo tienen que confirmar presionando Enter:


Configuración:

1 - Vamos a habilitar dnscrypt-proxy (recuerden como root o usando sudo):



2 - Ahora editamos el archivo /etc/resolv.conf y en nameserver borramos lo que está y colocamos 127.0.0.1 (si quieren pueden hacer un backup del archivo) y debería quedar así:



- Teniendo en cuenta que NetworkManager escribe el archivo resolv.conf, lo que vamos hacer es protegerlo contra escritura con la siguiente orden:



3 - Ahora lo que vamos hacer es buscar un server que esté lo más cerca de nuestra ubicación, sinó pueden usar el que viene por defecto que es dnscrypt.eu-nl, la lista la podemos abrir con localc se encuentra aquí: /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv de ésta manera:


* Si queremos modificar el server que resuelve el dns por defecto podemos editar asi:


* Al final del archivo en la sección [Service] modificamos lo que está seleccionado en gris y colocamos el server que ya seleccionamos en el listado:



4 - Por defecto dnscrypt-proxy utiliza el puerto 53, ya que dnsmasq también, asi que lo que vamos a hacer es cambiarlo utilizando nuevamente con:
systemctl edit dnscrypt-proxy.service.socket --full y en la sección [Socket] lo dejamos como a continuación:


Guardamos los cambios y cerramos.


5 - Ahora configuramos dnsmasq, vamos a editar el archivo /etc/dnsmasq.conf y agregamos éstas tres líneas al final:

no-resolv
server=127.0.0.1#40
listen-address=127.0.0.1

Guardamos los cambios y cerramos.


6 - Ahora hacemos lo siguiente:
- Reiniciamos dnscrypt-proxy:
systemctl restart dnscrypt-proxy
- Activamos dnsmasq:
systemctl enable dnsmasq
- Ejecutamos dnsmasq:
systemctl start dnsmasq
- Reiniciamos nuestra conexión de internet:
systemctl restart NetworkManager


7 - Bueno ahora probamos si realmente queda funcionando con un ping por ejemplo a google.com.ar:



8 - Nos fijamos si funciona el caché de dns con el comando dig:


- Aquí tenemos en cuenta que el primer dig que hago hay una demora de 349 msec y cuando hago nuevamente la consulta con dig que pasa? 0 msec, osea cachea correctamente.


9 - Listo dnscrypt-proxy y dnsmasq configurados y funcionando correctamente.!


Nota: Quiero aclarar luego de buscar en varios lados no me funcionaba de ninguna manera que mostraban en la wiki de arch, la versión en español está mal traducida (será cuestión que alguien traduzca bién o lo haré yo en algún momento) asi que usé la versión en inglés. Asi que básicamente me basé en dicha wiki, todos los créditos para ellos. En éste caso son los pasos que utilicé y me funcionó A MI.
Cualquier consulta o inconvenientes que tengan me avisan y lo vamos charlando hasta que les quede funcionando!

En el caso que quieran mirar el video en YouTube también dejo link:



Abrazo de gol! :D

domingo, 10 de enero de 2016

Instalar zsh y personalizarla con Oh My Zsh



Buenas noches papilos y mamilas, la verdad que luego de una "recomendación" del papilo Endislive, comencé a utilizar la shell zsh en Arch, por ahora nada que objetar, más allá que todavía me estoy acostumbrando, más todavía cuando venía trabajando solamente en la tty y claro está con mi querida, bah ex-querida bash que tantas alegrías me dió xD 
Sin más que decir, ahí les muestro como instalé y lo dejé en éste caso configurada con Oh My Zsh, como para darle color también para los "vagos" que no tienen ganas de andar configurando...

1.: Primero vamos a instalar nuestra futura shell zsh de ésta manera:

pacman -S zsh




En la imagen muestra reinstalando, porque ya la tengo, pero para que vean por lo menos lo que instala.

2.: Una vez instalada vamos a transformarla en nuestra terminal por default de ésta manera:

ice@ice ~$ chsh -s /bin/zsh
3.: Luego seguramente tendrán un "asistente" de configuración, lo van siguiendo si quieren paso a paso seleccionando las letras y leyendo lo que aparece o sinó lo cancelan y directamente siguen con el paso 4 así...

4.: Vamos a instalar ahora oh my zsh, con yaourt:
ice@ice ~$ yaourt oh my zsh



 

Tal cual como aparece en la imagen, seleccionamos la opción número "3". No editamos nada y luego directamente vamos interactuando como nos tiene acostumbrado yaourt.

5.: Una vez instalado vamos a configurarlo copiando el archivo zshrc a nuestro home así:
ice@ice ~$ cp /usr/share/oh-my-zsh/zshrc /home/ice/.zshrc

6.: En .zshrc tal cual como en .bashrc, podemos ingresar por ejemplo con nano a editarlo y modificar datos, crear alias, etc, todo dependerá de tu imaginación y claro, ganas de leer si no entendés mucho.


7.: Por las dudas no quede seleccionada, simplemente escriben zsh y de ahí activan los cambios con el comando source, así:
source .zshrc


8.: Y finalmente ya configurado, si quieren mirar una lista de los themes que tienen lo pueden hacer aquí, yo por ejemplo tengo seteado como usuario los themes en random y como root el theme "bira". 

Espero que les sirva a todos y bueno a comenzar a practicar con zsh que tiene mucho para aprender, nuevas funciones que la verdad son muy cómodas...

Un abrazo!