Blog

  • cPanel & CloudLinux: How to Fix PHP Error «SessionHandler::write(): open() failed: No such file or directory»

    cPanel & CloudLinux: How to Fix PHP Error «SessionHandler::write(): open() failed: No such file or directory»

    If you are a system administrator and have encountered the following error in your PHP logs:

    PHP Warning: SessionHandler::write(): open(/var/cpanel/php/sessions/alt-php74/sess_ecc8f1037c9adc71a4c2a75064937e24, O_RDWR) failed: No such file or directory (2) in /home/user/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php on line 64
    
    PHP Warning: session_write_close(): Failed to write session data using user defined save handler. (session.save_path: /var/cpanel/php/sessions/alt-php74) in /home/user/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php on line 266

    You are not alone. This error occurs when PHP cannot write to the specified path for saving sessions, usually caused by using the PHP Selector from CloudLinux.

    Here, we explain how to fix this issue in a cPanel environment with CloudLinux 8, cPanel, and CageFS.

    Step 1: Verify the existence of directories

    First, make sure that the directories mentioned in the error exist. In this case, the directory is /var/cpanel/php/sessions/alt-php74. To create them, use the following commands (I include all versions from PHP 4.4 to PHP 8.3):

    mkdir -p /var/cpanel/php/sessions/alt-php44
    mkdir -p /var/cpanel/php/sessions/alt-php51
    mkdir -p /var/cpanel/php/sessions/alt-php52
    mkdir -p /var/cpanel/php/sessions/alt-php53
    mkdir -p /var/cpanel/php/sessions/alt-php54
    mkdir -p /var/cpanel/php/sessions/alt-php55
    mkdir -p /var/cpanel/php/sessions/alt-php56
    mkdir -p /var/cpanel/php/sessions/alt-php70
    mkdir -p /var/cpanel/php/sessions/alt-php71
    mkdir -p /var/cpanel/php/sessions/alt-php72
    mkdir -p /var/cpanel/php/sessions/alt-php73
    mkdir -p /var/cpanel/php/sessions/alt-php74
    mkdir -p /var/cpanel/php/sessions/alt-php80
    mkdir -p /var/cpanel/php/sessions/alt-php81
    mkdir -p /var/cpanel/php/sessions/alt-php82
    mkdir -p /var/cpanel/php/sessions/alt-php83
    chmod 1777 /var/cpanel/php/sessions/alt-php44
    chmod 1777 /var/cpanel/php/sessions/alt-php51
    chmod 1777 /var/cpanel/php/sessions/alt-php52
    chmod 1777 /var/cpanel/php/sessions/alt-php53
    chmod 1777 /var/cpanel/php/sessions/alt-php54
    chmod 1777 /var/cpanel/php/sessions/alt-php55
    chmod 1777 /var/cpanel/php/sessions/alt-php56
    chmod 1777 /var/cpanel/php/sessions/alt-php70
    chmod 1777 /var/cpanel/php/sessions/alt-php71
    chmod 1777 /var/cpanel/php/sessions/alt-php72
    chmod 1777 /var/cpanel/php/sessions/alt-php73
    chmod 1777 /var/cpanel/php/sessions/alt-php74
    chmod 1777 /var/cpanel/php/sessions/alt-php80
    chmod 1777 /var/cpanel/php/sessions/alt-php81
    chmod 1777 /var/cpanel/php/sessions/alt-php82
    chmod 1777 /var/cpanel/php/sessions/alt-php83

    Step 2: Edit the cagefs.mp file

    Add the following lines to the end of your /etc/cagefs/cagefs.mp file so that CageFS includes these directories in its environment:

    @/var/cpanel/php/sessions/alt-php44,700
    @/var/cpanel/php/sessions/alt-php51,700
    @/var/cpanel/php/sessions/alt-php52,700
    @/var/cpanel/php/sessions/alt-php53,700
    @/var/cpanel/php/sessions/alt-php54,700
    @/var/cpanel/php/sessions/alt-php55,700
    @/var/cpanel/php/sessions/alt-php56,700
    @/var/cpanel/php/sessions/alt-php70,700
    @/var/cpanel/php/sessions/alt-php71,700
    @/var/cpanel/php/sessions/alt-php72,700
    @/var/cpanel/php/sessions/alt-php73,700
    @/var/cpanel/php/sessions/alt-php74,700
    @/var/cpanel/php/sessions/alt-php80,700
    @/var/cpanel/php/sessions/alt-php81,700
    @/var/cpanel/php/sessions/alt-php82,700
    @/var/cpanel/php/sessions/alt-php83,700

     

    Step 3: Update and remount CageFS

    After editing cagefs.mp, you need to rebuild and update CageFS for the changes to take effect:

    cagefsctl --force-update
    cagefsctl --update
    cagefsctl --remount-all

    Step 4: Verify the changes

    To make sure the changes have been applied correctly, you can enter the CageFS environment of a specific user and verify that the directories are present:

    cagefsctl --enter <username>
    ls /var/cpanel/php/sessions/

    Replace with the username to verify that the new directories are present.

    Conclusion

    By following these steps, you should have resolved the PHP session writing issue within a cPanel environment with CloudLinux 8 and CageFS. Ensure that the session directories exist and are correctly configured in cagefs.mp, and always rebuild and update CageFS after making configuration changes.

    SEO Keywords (ignore this)

    • SessionHandler::write() failed: No such file or directory
    • PHP session_write_close() error
    • cPanel PHP sessions directory missing
    • CloudLinux 8 CageFS session handling
    • How to fix PHP session errors in cPanel
    • Session directories in CageFS
    • Symfony PHP session issues
    • PHP Selector CloudLinux
    • PrestaShop PHP Issues
    • Prestashop 500 error
    • Prestashop PHP Session

    We hope this guide has been helpful in resolving the issue and that other system administrators can easily find this solution. Good luck!

  • CPanel & CloudLinux : Cómo solucionar el error de PHP «SessionHandler::write(): open() failed: No such file or directory»

    CPanel & CloudLinux : Cómo solucionar el error de PHP «SessionHandler::write(): open() failed: No such file or directory»

    Si eres un administrador de sistemas y has encontrado el siguiente error en tus logs de PHP:

    PHP Warning: SessionHandler::write(): open(/var/cpanel/php/sessions/alt-php74/sess_ecc8f1037c9adc71a4c2a75064937e24, O_RDWR) failed: No such file or directory (2) in /home/user/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php on line 64
    
    PHP Warning: session_write_close(): Failed to write session data using user defined save handler. (session.save_path: /var/cpanel/php/sessions/alt-php74) in /home/user/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php on line 266

    No estás solo. Este error ocurre cuando PHP no puede escribir en la ruta especificada para guardar las sesiones, normalmente es causado por usar el PHP Selector de CloudLinux.

    A continuación, te explicamos cómo solucionar este problema en un entorno cPanel con CloudLinux 8, CPanel y CageFS.

    Paso 1: Verifica la existencia de los directorios

    Primero, asegúrate de que los directorios mencionados en el error existen. En este caso, el directorio es /var/cpanel/php/sessions/alt-php74. Para crearlos, usa los siguientes comandos (te adjunto todas las versiones desde PHP 4.4 hasta PHP 8.3:

    mkdir -p /var/cpanel/php/sessions/alt-php44
    mkdir -p /var/cpanel/php/sessions/alt-php51
    mkdir -p /var/cpanel/php/sessions/alt-php52
    mkdir -p /var/cpanel/php/sessions/alt-php53
    mkdir -p /var/cpanel/php/sessions/alt-php54
    mkdir -p /var/cpanel/php/sessions/alt-php55
    mkdir -p /var/cpanel/php/sessions/alt-php56
    mkdir -p /var/cpanel/php/sessions/alt-php70
    mkdir -p /var/cpanel/php/sessions/alt-php71
    mkdir -p /var/cpanel/php/sessions/alt-php72
    mkdir -p /var/cpanel/php/sessions/alt-php73
    mkdir -p /var/cpanel/php/sessions/alt-php74
    mkdir -p /var/cpanel/php/sessions/alt-php80
    mkdir -p /var/cpanel/php/sessions/alt-php81
    mkdir -p /var/cpanel/php/sessions/alt-php82
    mkdir -p /var/cpanel/php/sessions/alt-php83
    chmod 1777 /var/cpanel/php/sessions/alt-php44
    chmod 1777 /var/cpanel/php/sessions/alt-php51
    chmod 1777 /var/cpanel/php/sessions/alt-php52
    chmod 1777 /var/cpanel/php/sessions/alt-php53
    chmod 1777 /var/cpanel/php/sessions/alt-php54
    chmod 1777 /var/cpanel/php/sessions/alt-php55
    chmod 1777 /var/cpanel/php/sessions/alt-php56
    chmod 1777 /var/cpanel/php/sessions/alt-php70
    chmod 1777 /var/cpanel/php/sessions/alt-php71
    chmod 1777 /var/cpanel/php/sessions/alt-php72
    chmod 1777 /var/cpanel/php/sessions/alt-php73
    chmod 1777 /var/cpanel/php/sessions/alt-php74
    chmod 1777 /var/cpanel/php/sessions/alt-php80
    chmod 1777 /var/cpanel/php/sessions/alt-php81
    chmod 1777 /var/cpanel/php/sessions/alt-php82
    chmod 1777 /var/cpanel/php/sessions/alt-php83

    Paso 2: Edita el archivo cagefs.mp

    Añade las siguientes líneas al final de tu archivo /etc/cagefs/cagefs.mp  para que CageFS incluya estos directorios en su entorno:

    @/var/cpanel/php/sessions/alt-php44,700
    @/var/cpanel/php/sessions/alt-php51,700
    @/var/cpanel/php/sessions/alt-php52,700
    @/var/cpanel/php/sessions/alt-php53,700
    @/var/cpanel/php/sessions/alt-php54,700
    @/var/cpanel/php/sessions/alt-php55,700
    @/var/cpanel/php/sessions/alt-php56,700
    @/var/cpanel/php/sessions/alt-php70,700
    @/var/cpanel/php/sessions/alt-php71,700
    @/var/cpanel/php/sessions/alt-php72,700
    @/var/cpanel/php/sessions/alt-php73,700
    @/var/cpanel/php/sessions/alt-php74,700
    @/var/cpanel/php/sessions/alt-php80,700
    @/var/cpanel/php/sessions/alt-php81,700
    @/var/cpanel/php/sessions/alt-php82,700
    @/var/cpanel/php/sessions/alt-php83,700

     

    Paso 3: Actualiza y remonta CageFS

    Después de editar cagefs.mp, debes reconstruir y actualizar CageFS para que los cambios se apliquen:

    cagefsctl --force-update
    cagefsctl --update
    cagefsctl --remount-all

    Paso 4: Verifica los cambios

    Para asegurarte de que los cambios se han aplicado correctamente, puedes entrar en el entorno CageFS de un usuario específico y verificar que los directorios están presentes:

    cagefsctl --enter <username>
    ls /var/cpanel/php/sessions/

    Reemplaza con el nombre de un usuario para verificar que los nuevos directorios están presentes.

    Conclusión

    Siguiendo estos pasos, deberías haber solucionado el problema de escritura de sesiones en PHP dentro de un entorno cPanel con CloudLinux 8 y CageFS. Asegúrate de que los directorios de sesiones existen y están correctamente configurados en cagefs.mp, y siempre reconstruye y actualiza CageFS después de hacer cambios en la configuración.

    SEO Keywords (ignora esto)

    • SessionHandler::write() failed: No such file or directory
    • PHP session_write_close() error
    • cPanel PHP sessions directory missing
    • CloudLinux 8 CageFS session handling
    • Cómo solucionar error de sesiones PHP en cPanel
    • Directorios de sesiones en CageFS
    • Problemas de sesiones Symfony en PHP
    • PHP Selector CloudLinux
    • Prestashop problemas PHP
    • Prestashop error 500
    • Prestashop PHP Session

    Esperamos que esta guía te haya sido útil para resolver el problema y que otros administradores de sistemas puedan encontrar esta solución fácilmente. ¡Buena suerte!

  • ¿Cómo solicitar el Kit Digital?

    Cómo solicitar las ayudas de KIT DIGITAL
    Para la solicitud del Kit digital debes acceder a dos plataformas distintas:
    1. Acelerapyme, en donde realizarás un test de autodiagnóstico
    2. red.es en donde solicitarás que te concedan el KIT. En esta solicitud se comprueba que tengas realizado el Autodiagnóstico de Madurez Digital. Si no lo tiene hecho no te dejará continuar con la solicitud.

    El registro en Acelerapyme y red.es debe ser con el mismo CIF/NIF para que todo case bien a la hora de hacer las comprobaciones de autodiagnóstico.

    Realizar el Autodiagnóstico de Madurez Digital
    https://www.acelerapyme.gob.es/quieres-conocer-el-grado-de-digitalizacion-de-tu-pyme
    Debes acceder a esa página y registrarte.
    Una vez te hayas registrado, debes completar las 2 partes de las que se compone el test. Cuando acabes la primera parte del test debes completar la segunda parte del test para que al solicitar el Kit Digital en red.es no te de error.
    En cuanto tengas las 2 partes completadas, puedes ir a red.es a solicitar el KIT

    Solicitar el Kit Digital
    El kit se solicita desde red.es
    Tienes que saber a qué convocatoria te debes presentar, es fácil, por el número de empleados (que tienes que demostrar) que tenga la empresa. No intentes “colar” más empleados para acceder a una convocatoria con mayor dotación económica, lo van a comprobar si o si y te van a denegar la ayuda, con lo que tendrás que volver a solicitar la ayuda y habrás perdido más de 2 meses.
    Es muy sencillo y solo te pedirán datos de tu empresa y del solicitante.
    Dependiendo del tipo de solicitante, hay un momento en el que te piden que informes de las ayudas minimis que ha recibido la empresa. Si ese es tu caso: https://www.pap.hacienda.gob.es/bdnstrans/GE/es/concesiones/minimis
    image.png
    image.png
    En este apartado mete el NIF de la empresa y te aparecerán los nombres de empresas que corresponden con ese NIF. Te pueden salir varios, selecciona uno de ellos.
    Cuando ya tengas una empresa seleccionada debes darle a “Buscar” que está al lado derecho de la pantalla.
    image.png

    Completa todas las preguntas hasta que te permita enviar la solicitud.

  • Solucionar el problema kernel al actualizar CloudLinux

    Solucionar el problema kernel al actualizar CloudLinux

    Escribo este post a modo de auto-documentación.

    Al actualizar CloudLinux me dejaron de funcionar varias cosas en CPanel, entre ellas las webs, debido a que no estaba cargando alguno de los módulos PHP.

    Como estoy usando el PHP de CloudLinux al intentar entrar me aparecía el siguiente error:

    Reboot your system to update the kernel.

    Pero ya había actualizado varias veces a si que me puse a indagar porqué no estaba funcionando bien.

    Lo primero que te decían en la documentación oficial era que ejecutaras el comando

    modprobe kmodlve

    Y aparecía un error similar a este (no pude copiarlo exacto)

    Module kmodlve not found in /lib/modules/4.18.0-425.19.2.lve.el8.x86_64+debug

    Ahí me di cuenta que en el kernel aparecía la palabra debug

    Tampoco aparecía nada si ejecutabas el siguiente comando:

    lsmod | grep lve

    Bueno pues resumiendo el problema era que al actualizar el kernel, CloudLinux nos había habilitado un kernel de debug, que no trae todos los módulos ya que suelen traer sólo los esenciales para poder solucionar errores, con lo cual no estaban cargando el módulo kmodlve ni muchos módulos que luego se necesitaban en CPanel.

    Al listar los kernels disponibles en GRUB usando el comando:

    awk -F\' '$1=="menuentry " {print i++ " = "$2}' /etc/grub2.cfg

    Sólo aparecía lo siguiente:

    0 =  System setup

    En principio la solución era eliminar el kernel de debug y dejar los normales, pero al intentar borrarlo nos aparecía el siguiente mensaje:

    # El comando $(uname -r) muestra la versión del kernel actual, cámbiala si necesitas eliminar otra versión
    yum remove kernel-debug-core-$(uname -r)
    
    The operation would result in removing the following protected packages: kernel-debug-core

    Ya que como era el kernel donde habíamos booteado no nos dejaba borrarlo, la solución fue:

    1. Conectarnos al servidor a través de VNC remoto para poder ver la pantalla mientras reiniciaba
    2. Iniciar el sistema con un kernel norma
    3. Ejecutar el comando anterior para borrar el kernel debug y que se elimine del GRUB
    4. Volver a reiniciar para quedar todo solucionado y ver que el servidor arranca por defecto con el kernel normal

     

    Espero que esto te ayude si alguna vez te encuentras en esta situación y te dejo algunos enlaces que te pueden ser útiles:

     

     

  • Migrar una cuenta de correo desde GMail o Google Workspace a IMAP en un servidor usando IMAPSync

    Migrar una cuenta de correo desde GMail o Google Workspace a IMAP en un servidor usando IMAPSync

    No se si conoces el programa llamado IMAPSync este programa te permite migrar cuentas de correo entre servidores y es muy útil cuando quieres llevarte toda la información de un servidor a otro sin perder ningún correo, es decir, el programa copia todos los correos electrónicos de un servidor a otro, nosotros lo usamos muchísimo con nuestros clientes.

    Migrar correo de un servidor a otro, IMAP a IMAP

    Normalmente seguimos el siguiente procedimiento:

    1. Se crean las cuentas de correo en el nuevo servidor
    2. Se sincronizan todos los correos usando IMAPSync (esto puede durar horas e incluso días dependiendo del tamaño del correo y la velocidad/límites del servidor)
    3. Se cambian los registros DNS (A y MX) para que apunten al nuevo servidor
    4. Se vuelve a ejecutar IMAPSync a las 24h de la propagación para evitar perder ningún correo que hubiera entrado en el servidor antiguo.

    El comando que usamos para migrar de una cuenta de IMAP a otra es el siguiente:

    imapsync --host1 "mail.servidorantiguo.com" -user1 nombre@dominio.com --password1 'contraseña' --ssl1 --host2 "mail.servidornuevo.com" --user2 nombre@dominio.com --password2 'contraseña' --ssl2

    Migrar correo de GMail a IMAP

    Cuando migramos de IMAP a IMAP no suele darnos ningún problema, pero al intentar migrar desde Google o GMail nos podemos encontrar con que no somos capaces de iniciar sesión con un mensaje muy similar al siguiente:

    Err 1/1: Host1 failure: Error login on [imap.gmail.com] with user [usuario@dominio.com] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)

    Te explicamos los pasos a seguir para solucionarlo:

    Activar el acceso IMAP a GMail

    Lo primero es ir a nuestra cuenta de GMail (la que queremos migrar) pulsar en Ajustes, seguidamente en Reenvío y correo POP/IMAP y por último Habilitar IMAP, no olvides pulsar el botón de Guardar Cambios cuando lo hayas hecho todo.

    Activar el acceso a aplicaciones no seguras

    Si no habilitamos esta opción, las medidas de seguridad de Google nos impedirán conectarnos a nuestra cuenta de GMail.

    Para hacerlo debemos dirigirnos a Seguridad de nuestra cuenta

    Dentro de las opciones elegir Acceso de aplicaciones menos seguras y activamos esta opción

    ¡Listo! Ya podemos usar IMAPSync para sincronizar nuestra cuenta de correo electrónico.

    imapsync  --host1 imap.gmail.com -user1 usuario@gmail.com --password1 "contraseñea" --ssl1  --gmail1 --host2 "mail.nuevoservidor.com" --user2 usuario@nuevoservidor.com --password2 "contraseña" --ssl2 --useheader Message-ID

     

  • Cómo instalar Oh My ZSH en tu consola y algunos plugins útiles (Actualizado 2021)

    Cómo instalar Oh My ZSH en tu consola y algunos plugins útiles (Actualizado 2021)

    [et_pb_section fb_built=»1″ _builder_version=»4.7.5″ _module_preset=»default» custom_margin=»0px|0px|0px|0px|false|false» custom_padding=»0px|0px|0px|0px|false|false»][et_pb_row _builder_version=»4.7.5″ _module_preset=»default»][et_pb_column type=»4_4″ _builder_version=»4.7.5″ _module_preset=»default»][et_pb_text _builder_version=»4.7.6″ _module_preset=»default»]

    En este post os enseñaremos cómo instalar Oh My ZSH en vuestra consola y empezar a disfrutar de una experiencia única, sobre todo si, como nosotros, la usáis muchas horas al día.

     

    ¿Qué es Oh My ZSH?

    Oh My ZSH es un superpack de utilidades, plugins y plantillas para el shell ZSH que te permitirá tener un super terminal lleno de útiles añadidos.

    ¿Qué es un terminal o consola?

    Si alguna vez has usado una consola de terminal, te habrás fijado en el aspecto tan aburrido (normalmente en blanco y negro) que tienen.

    [/et_pb_text][et_pb_image src=»https://busirocket.com/wp-content/uploads/2020/12/Terminal_Mac.jpg» title_text=»Terminal_Mac» _builder_version=»4.7.6″ _module_preset=»default»][/et_pb_image][et_pb_text _builder_version=»4.7.6″ _module_preset=»default» hover_enabled=»0″ sticky_enabled=»0″]

    Esto está bien para un uso esporádico, pero cuando comenzamos a usar nuestra consola día a día empezamos a echar en falta algunas funciones, o empezamos a copiar y pegar comandos día a día, ahí es cuando uno se plantea si no hay una opción mejor a la que viene por defecto.

     

    ¿Qué es una Shell?

    Una shell es (salvando las distancias) un conjunto de órdenes y comandos, por eso a veces también es llamado “intérprete de comandos“, que nos permiten trabajar con nuestra consola/terminal y realizar acciones o ejecutar programas, así por ejemplo en sistemas basados en unix (Linux/Mac) para ver el contenido de un directorio usaríamos el comando

    ls -l

    En cambio en Windows para hacer lo mismo usaríamos el comando

    dir

    Aquí es donde entra ZSH, que es una shell (tal y como bash, o sh) que viene con algunas funciones interesantes.

    Instalando ZSH

    Antes de poder instalar Oh My ZSH, necesitamos tener instalada y funcionando la shell ZSH, por lo que vamos a proceder a su instalación:

    Debian/Ubuntu y derivados

    Es tan simple como poner en la consola:

    sudo apt-get install git zsh

    CentOS y derivados

    Igual de simple, copia y pega en tu consola:

    sudo yum install git zsh

    Mac OS

    ZSH ya viene instalado por defecto en Mac, pero a veces la versión es antigua, por lo que te recomendamos instalar la última versión.

    Si tenemos homebrew instalado (si no lo tienes, deberías) es tan simple como poner:

    brew install git zsh

    Windows

    Y aquí es donde la cosa se complica, pero no mucho, para poder usar ZSH en Windows primero debes instalar la consola Bash, aunque su instalación apenas lleva unos minutos en Windows 10 se escapa de la finalidad de este tutorial, por lo que te recomendamos que busques en nuestro querido Google donde habrá mil y un tutoriales de cómo hacerlo.

    Una vez tengas la consola instalada, tan sólo sigue los pasos para instalarla en Ubuntu y la tendrás lista.

    Configurando ZSH como consola por defecto

    Una vez que tenemos nuestra nueva y flamante shell vamos a decirle a nuestra consola que siempre que se abra use esta shell por defecto, para ello introducimos el siguiente comando:

    chsh -s $(which zsh)

    En algunas versiones de CentOS tendremos que usar el siguiente comando:

    usermod -s $(which zsh) $(whoami)

    Si te aparece un mensaje similar a:

    non-standard shell

    Tendrás que añadir la nueva shell a la lista de shells permitidas por el sistema, para ello copia la ruta completa a la shell (que puedes averiguar con el comando which zsh) y pégala en el archivo /etc/shells. Una vez lo hagas, vuelve a ejecutar el comando anterior.

    Instalando Oh My ZSH

    Y ¡por fin! llegamos a la instalación de Oh My ZSH. ahora que tenemos nuestra shell con ZSH, te habrás dado cuenta que sigue siendo una shell aburrida como contábamos al principio, pero una vez terminemos este paso, tu shell brillará y lucirá de una manera que será la envídia de tus demás colegas.

    Como estos tutoriales suelen quedar obsoletos con el tiempo, os dejo las instrucciones de instalación originales aquí. Pero a día de hoy tan sólo necesitamos pegar en la consola el siguiente comando:

    Instalar usando curl

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

    Instalar usando wget

    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

    Y con esto quedaría instalado

    [/et_pb_text][et_pb_image src=»https://busirocket.com/wp-content/uploads/2020/12/ohmyzsh_instalacion.jpeg» title_text=»ohmyzsh_instalacion» _builder_version=»4.7.6″ _module_preset=»default»][/et_pb_image][et_pb_text _builder_version=»4.7.6″ _module_preset=»default» hover_enabled=»0″ sticky_enabled=»0″]

    Tuneando nuestro Oh My ZSH

    Una vez que está instalado os voy a poner una serie de configuraciones, temas y plugin que harán que nuestra shell
    luzca y funcione mucho mejor.

    Template/Plantilla/Tema

    Podéis ver una lista de temas con los que viene Oh My ZSH aquí, yo he escogido el tema agnoster que me gusta bastante.

    Para configurarlo hay que editar el archivo ~/.zshrc con nuestro editor de texto favorito y cambiar la variable
    ZSH_THEME con nuestro tema elegido.

    # If you come from bash you might have to change your $PATH.
    # export PATH=$HOME/bin:/usr/local/bin:$PATH
    
    # Path to your oh-my-zsh installation.
    export ZSH=/root/.oh-my-zsh
    
    # Set name of the theme to load. Optionally, if you set this to "random"
    # it'll load a random theme each time that oh-my-zsh is loaded.
    # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
    ZSH_THEME="agnoster"
    
    # Set list of themes to load
    # Setting this variable when ZSH_THEME=random
    # cause zsh load theme from this variable instead of
    # looking in ~/.oh-my-zsh/themes/
    # An empty array have no effect
    # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
    

    Plugin Manager Antigen

    Este controlador de plugins te permite instalar fácilmente otros plugins, ahorra tiempo de no tener que hacerlo a
    mano

    Debian/Ubuntu y derivados

    apt-get install zsh-antigen
    

    CentOS y otros sistemas Linux

    git clone https://github.com/zsh-users/antigen.git $ZSH_CUSTOM/plugins/antigen
    

    Mac OS

    brew install antigen
    

    Al finalizar la instalación deberás añadir lo siguiente a tu archivo ~/.zshrc

    # Antigen Plugin
    source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/antigen/antigen.zsh
    

    Plugin zsh-syntax-highlighting

    Este plugin colorea los comandos de diferentes programas para ayudarte a la hora de lanzarlos

    Debian/Ubuntu y derivados

    apt-get install zsh-syntax-highlighting
    

    CentOS y otros sistemas Linux

    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
    

    Mac OS

    brew install zsh-syntax-highlighting
    

    Una vez instalado tenemos que editar nuestro archivo e incluir este plugin en la lista de plugins:

    # Which plugins would you like to load?
    # Standard plugins can be found in ~/.oh-my-zsh/plugins/*
    # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    # Add wisely, as too many plugins slow down shell startup.
    plugins=(
        git
        zsh-syntax-highlighting
    )
    
    source $ZSH/oh-my-zsh.sh
    
    # User configuration
    

    Y reiniciar nuestro terminal (o cerrar sesión y volver a iniciar)

     

    Plugin zsh-autosuggestions

    Este plugin busca en el historial tus últimos comandos y te va autocompletando los mismos, ahorra muchísimo tiempo.

    Instalar de manera manual

    Clona el repositorio en $ZSH_CUSTOM/plugins (por defecto ~/.oh-my-zsh/custom/plugins)

    git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
    

    Añade el plugin a la lista de plugins (tal y como hicimos en el paso anterior), este plugin debería ir después del
    que instalamos anteriormente

    plugins=(
        ...
        ...
        zsh-syntax-highlighting
        zsh-autosuggestions)
    

    Reinicia el terminal (o cierra sesión y vuelve a iniciar)

    Mac OS

    brew install zsh-autosuggestions
    

    Añade lo siguiente a tu archivo .zshrc:

    source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
    

    Otros ajustes

    Algunas cosas más que te pueden resultar útiles

    Borrar nombre de usuario

    Quita el nombre de usuario del principio de la línea de comandos

    # Remove user
    prompt_context() {
        if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
            prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
        fi
    }
    

    [/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]