Cuando trabajamos con Laravel, php artisan tinker es una herramienta fundamental para interactuar rápidamente con nuestras aplicaciones desde la línea de comandos. Sin embargo, a veces al ejecutar este comando podemos encontrarnos con errores inesperados. Uno de ellos es el siguiente:
Psy\Exception\RuntimeException
Unable to create PsySH runtime directory. Make sure PHP is able to write to /run/user/1003 in order to continue.
at vendor/psy/psysh/src/Configuration.php:632
628▕ $runtimeDir = $this->configPaths->runtimeDir();
629▕
630▕ if (!\is_dir($runtimeDir)) {
631▕ if (!@\mkdir($runtimeDir, 0700, true)) {
➜ 632▕ throw new RuntimeException(\sprintf('Unable to create PsySH runtime directory. Make sure PHP is able to write to %s in order to continue.', \dirname($runtimeDir)));
633▕ }
634▕ }
635▕
636▕ return $runtimeDir;
+18 vendor frames
19 artisan:35
Illuminate\Foundation\Console\Kernel::handle()
Solución
Una solución simple es especificar un directorio alternativo para runtimeDir, donde tengamos permisos de escritura. Esto se puede hacer creando un archivo de configuración para PsySH en nuestra carpeta de usuario. Aquí te muestro cómo hacerlo:
1. Crea el archivo de configuración de PsySH. Abre un terminal y ejecuta el siguiente comando para crear y editar el archivo:
nano ~/.config/psysh/config.php
2. Agrega la configuración de runtimeDir. Copia y pega el siguiente código en el archivo que acabas de abrir:
<?php
return [
'runtimeDir' => './.psysh',
];