viernes, 16 de noviembre de 2018

Udemy - cupón de descuento

Simplemente ve a esta dirección:

https://www.udemy.com/share/100ohcA0cadFlaRw==/

Y ya estás!

lunes, 12 de noviembre de 2018

Instalación de Laravel en CentOS 7 con Nginx y Bitbucket

Hay varios detalles los que hay que hacer. Para efectos prácticos asumiré que ya tienes instalado Nginx 1.14, con PHP 7.2 y MySQL 8.

En este caso me voy a situar en /var/www/html/

# cd /var/www/html

y ahí mismo hago un git clone de mi proyecto laravel que está en Bitbucket
# git clone https://bitbucket.org/mi/proyecto/laravel.git

Ahora lo que tengo que hacer es cambiar el dueño de esa carpeta de Laravel:

# chown -R nginx:nginx laravel/

Ahora hay que cambiar los permisos de los archivos
# find /var/www/html/laravel-5.7/ -type f -exec chmod 640 {} \;

Cambiar los permisos de los directorios:
# find /var/www/html/laravel-5.7/ -type d -exec chmod 750 {} \;

Proceder a Instalar laravel y dependencias de nuestro proyecto
# composer install --no-dev

Configurar los permisos de SELINUX
# semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/laravel/storage(/.*)?"

# semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/laravel/bootstrap/cache(/.*)?"

# restorecon -Rv /var/www/html/

# semanage boolean -m httpd_can_network_connect_db --on

Reiniciar los servicios para que los cambios surtan efecto:
# systemctl restart nginx

# systemctl restart php-fpm

Referencias:


  • https://www.linkedin.com/pulse/selinux-laravel-framework-rodrigo-alvares
  • https://stackoverflow.com/a/51826584/1883256
  • https://stackoverflow.com/a/47951278/1883256


Nada que ver pero sí con permisos de bases de datos con laravel:

  • https://laracasts.com/discuss/channels/general-discussion/mysql-database-user-grant-permissions-for-laravel
  • https://github.com/shavitush/bhoptimer/issues/20


Configuración de dominios y sitios web con Nginx en CentOS 7

Asumo que ya tienes instalado tanto Nginx en un servidor con CentOS 7 y que puedes acceder a modo root.

Accedemos a modo root:

$ su

Vamos a la carpeta de Nginx y vemos lo que hay:

# cd /etc/nginx

# ll

Debemos tener ahí dos carpetas, una que se llame "sites-available" y la otra "sites-enabled". En resumen, la primera sirve para colocar ahí los directorios preferentemente con el nombre de los dominios y su respectivo archivo de configuración. El segundo simplemente tendrá un enlace simbólico (symbolic link) que son como una especie de "acceso directo" de windows el cual son prácticos ya que, con el simple hecho de eliminar un enlace simbólico, ya tienes ese sitio offline, sin necesidad de borrar los archivos de configuración.

Si no existiesen esas carpetas, hay que crearlas.

# mkdir sites-available
# mkdir sites-enabled

Vamos primero a "sites-available" y creamos nuestro primer archivo de configuración. Hay miles de maneras y configuraciones para hacerlo, al menos esta funciona para Wordpress y Laravel 5.7 en adelante.

Creamos un archivo con el siguiente nombre:
# nano misitio.com.conf

-----------------------------------------------------------------------------------------------
#Estos dos primeros bloques sólo debe ser puesto en el sitio principal. En los demás sitios ya no debe ponerse.
server {
        listen 80 default_server;
        listen [::]:80 ipv6only=on default_server;

        return http://misitio.com;
}

server {
    listen 80;
    #Abajo pon la IP que le corresponda y que esto lo redireccione a tu dominio principal
    server_name 192.168.10.3;

    return 301 $scheme://misitio.com$request_uri;
}

server {
        listen 80;
        listen [::]:80;

    # Log files for Debugging
        access_log /var/log/nginx/misitio.com.access.log;
        error_log /var/log/nginx/misitio.com.error.log;

    # Webroot Directory for Laravel project
        root /var/www/html/misitio.com;
        index index.php index.html;

        # Your Domain Name
        server_name misitio.com;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

    # PHP-FPM Configuration Nginx
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
        #Deny access to .htaccess files, since nginx may show them as plain text.
        location ~ /\.ht{
                deny all;
        }
        #Deny access to .git files, since nginx may show them as plain text.
        location ~ /\.git{
                deny all;
        }
}
-----------------------------------------------------------------------------------------------

Luego creamos el enlace simbólico:

# ln -s /etc/nginx/sites-available/misitio.com.conf /etc/nginx/sites-enabled/

Ahora, hay que crear carpetas dentro de /var/www/html/ para alojar ahí los archivos de configuración.

# cd /var/www/html/
# mkdir misitio.com
# cd misitio.com
# nano index.php

index.php
-----------------------------------------------------------------------------

echo 'Probando nginx con php';
-----------------------------------------------------------------------------

Reiniciamos el servidor:
# systemctl restart nginx

miércoles, 7 de noviembre de 2018

Actualizar OpenSSL en CentOS 7

Hay que seguir los siguientes pasos:

Instalar primero los siguientes paquetes:
# yum install libtool perl-core zlib-devel

Ahora hay que ir al siguiente directorio:
#  cd /usr/local/src/

Luego hay que ir a este sitio para copiar el enlace o URL del archivo a bajar. En este caso, voy a bajar el que se muestra:

# wget https://www.openssl.org/source/openssl-1.1.1.tar.gz

Lo descomprimimos:
# tar -zxf openssl-1.1.1.tar.gz

Vamos a la carpeta que fue descomprimida:
# cd openssl-1.1.1

Ejecutamos el siguiente comando:
# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib

# make

# make test

# make install

Ahora procedemos a editar el archivo openssl.sh
# nano /etc/profile.d/openssl.sh

-------------------------------------------------------------------------
# /etc/profile.d/openssl.sh
pathmunge /usr/local/openssl/bin
-------------------------------------------------------------------------
 Ahora unas configuraciones adicionales:

De acuerdo a la versión que bajamos de openssl creamos el archivo:
# nano /etc/ld.so.conf.d/openssl-1.1.1.conf

Y colocamos lo siguiente:
-------------------------------------------------------------------------
# /etc/ld.so/conf.d/openssl-1.1.0g.conf
/usr/local/openssl/lib
-------------------------------------------------------------------------

# ll /etc/ld.so.conf.d/

# ldconfig -v

Y ahora sí!

# openssl version

Si no saliera, hay que salir y volver a abrir la sesión.


Referencias:



Actualizar Laravel Homestead en Windows 7 - resumido

Te puede interesar:



Antes que nada procedo a revisar el archivo C:\Users\Pathros\Homestead\Homestead.yaml
para tener una idea de las bases de datos que tengo y así decidir si procedo a respaldar o no x base de datos y
códigos fuente. Porque con la actualización, todas las BD serán eliminadas.

me paso a la carpeta C:\Users\Pathros\Homestead
Hago una copia del archivo Homestead.yaml


Regresé a C:\Users\Pathros\ y procedí a eliminar el ambiente de vagrant:

$ vagrant destroy

Verifico que ya no hay laravel homestead boxes

$ vagrant global-status

Si aplica, procedo a actualizar vagrant y virtualBox y reiniciar el equipo.

Ahora, dentro de C:\Users\Pathros procedemos a bajar la caja de vagrant, en este caso elijo la opción 3 para virtualbox.

$ vagrant box add laravel/homestead

vagrant box add laravel/homestead

viernes, 2 de noviembre de 2018

Instalar QEMU en MacOS Mojave 💻 👎🏽

Vamos a ver cómo se instala QEMU en una MacOS 💻.

Primero hay que tener instalado homebrew o brew.

Versión de brew: $ brew -v





Luego procedemos a instalar QEMU.





$ brew install qemu







Una vez instalado, procedo a crear una carpeta llamada /qemu
$ mkdir qemu
con el fin de crear ahí una imagen (disco), en el cual voy a instalar un sistema operativo Linux, digamos un CentOS 7 con LAMP.


$ qemu-img create -f qcow2 centos7.img 20G

En donde "qcow2", de acuerdo a este enlace, es un formato que incluye varias características especiales, tales como la posibilidad de tomar múltiples snapshots, encriptación AES y compresión zlib.

Ahora para comenzar con la instalación, aplicamos el siguiente comando en donde especificamos a qemu cuál es el disco de instalación y el disco destino a donde se va a instalar el sistema operativo linux CentOS 7.


$ qemu-system-x86_64 -m 4096 -boot d -smp 3 -net nic -net user -hda centos7.img -cdrom /Users/pathros/Downloads/software/CentOS-7-x86_64-Minimal-1804.iso -enable-kvm
Para entrar a la interfaz sólo colocamos el mouse dentro de la pantalla y hacemos clic. Para salir o retomar el control del mouse, utilizamos la combinación de teclas "ctrl + alt + g".

Links:


Al final de cuentas, está súper lento y me reporta algunos errores raros. Qemu en Mac 💻👎🏽😒

Falta probar lo de otro compañero:

"yo probé lubuntu , light version", "sí es rapido". "para windows hay un asistente de qemu" "qemu manager" "es un entorno gráfico como el que usted usó hace un momento"

Checar:
"VT-x" "yo tuve que hacer eso, en la configuracion del bios."
"Intel-VT y Amd-V"

Checar referencias: https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-kvm-qemu-on-centos-7-rhel-7.html

Otras referencias:


  • http://freelinuxtutorials.com/tutorials/qemu-virtualization/
  • https://www.taringa.net/comunidades/unixx/5686747/Tutorial-Qemu-para-novatos.html
  • https://wiki.archlinux.org/index.php/QEMU
  • https://opensourceforu.com/2011/05/quick-quide-to-qemu-setup/
  • http://alexander.holbreich.org/qemu-kvm-introduction/
  • http://wiki.laptop.org/go/Using_QEMU_on_Windows
  • http://www.elsotanillo.net/2006/08/windows-howto-instalacion-de-qemu-en-windows-2/
  • https://www.adictosaltrabajo.com/2007/03/21/qemu-win-v-p-n/
  • https://es.scribd.com/document/388978446/QEMU-AQEMU-TUTORIAIS
  • https://www.emaculation.com/doku.php/ppc-osx-on-qemu-for-windows

jueves, 1 de noviembre de 2018

nginx: [emerg] duplicate listen options for [::]:80 in archivo.conf

Si has agregado nuevos dominios / subdominios y nuevos archivos de configuración en nginx y resulta que te encuentras con el siguiente error:

"
# nginx -t
nginx: [emerg] duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/domain.com.conf:3

nginx: configuration file /etc/nginx/nginx.conf test failed
"

De acuerdo a este post, se debe a la directiva "listen [::]:80 ipv6only=on;", por lo que quité el texto o directiva "ipv6only=on" excepto en el archivo de configuración del sitio principal (default_server) y ya quedó 😎. Es decir:
----------------------
server {
        listen 80;

        listen [::]:80 ;#ipv6only=on;
#...
}
----------------------

Referencias:
https://github.com/certbot/certbot/issues/5550
Saludos 🥂

Instalar el LEMP en CentOS 7

En este artículo documentaré los pasos para instalar el LEMP más reciente (que se pueda) en un CentOS 7 y tomando en cuenta las cuestiones de seguridad más importantes o al menos las mínimas.

He consultado un montón de guías y ninguna está completa, por lo que he decidido hacer mi propia guía con naranjas y peras, santo y seña.

Este LEMP se piensa para instalar aplicaciones tanto de Laravel como de un Wordpress multisitios, manejando distintos dominios o subdominios para cada aplicación.

Cabe aclarar el significado de LEMP en este artículo:

L = Linux -> CentOS 7
E = Nginx 1.14
M = MySQL 8 (no MariaDB)
P  = PHP 7.2

 

Tags