There is no existing directory at /storage/logs and its not buildable: Permission denied
Stefan Izdrail
Founder & Senior Architect · 2026-06-29
Title: Debugging Laravel Deployment Issues: Solving "There is no existing directory at /storage/logs and its not buildable: Permission denied"
Introduction:
Ensuring your Laravel web application runs smoothly on a production environment can sometimes be a challenging task due to various factors that might affect your code, database, configuration files, or even server settings. This article discusses a common issue encountered while deploying Laravel apps to OVH web servers: "There is no existing directory at /storage/logs and its not buildable: Permission denied". By following the troubleshooting steps outlined below, you can easily resolve this issue and keep your deployment process smooth.
1. Understanding the Issue:
In this case, the Laravel application's logs directory located in `/storage/logs` is either missing or not properly configured for OVH web servers. This error message occurs as a result of the user attempting to run the necessary command line tools (Artisan) in their Laravel installation but being denied permission to execute them on the current server.
2. Checking File Permissions:
The first step towards solving this issue is ensuring that all relevant files and directories have appropriate permissions set. To achieve this, you can use the command line utility 'sudo' to gain root access on your webserver. Run `sudo chmod -R 775 storage` within the Laravel project directory to give read/write/execute permissions for the group and deny all other users access. Note that if you have a different file structure or custom folder names, modify this command accordingly.
3. Recreating the Log Directory:
If the logs directory still does not exist after giving the correct permissions, you can try creating it manually through your preferred text editor (e.g., `nano`, `vim`, or `atom`). Create a new file named `storage/logs/laravel.log` with the UNIX 'touch' command: `touch storage/logs/laravel.log`. Then, set appropriate permissions on this newly created log file and directory as well.
4. Configuring Logging System:
Upon creating the logs directory, ensure that you have configured your Laravel application to use this path for storing log files. Open `config/logs.php` in your preferred text editor and update the `'path' => env('LOG_PATH', storage_path('/logs'))` parameter as follows:
return [
'single' => true,
'daily' => false,
'log_path' => storage_path('logs'), // Update this path if necessary for your project
];
5. Testing Logs:
With the correct configuration and permissions set up, you can now test your application to ensure that log files are being created correctly within the `/storage/logs` directory. Run the following command in your Laravel app's root directory: `php artisan tinker` to enter the Artisan console. Then, execute the given statement:
Artisan::call('cache:clear')
If you encounter an error due to insufficient permissions, repeat steps 2 and 3 above as necessary, then try running the command again. Once successfully executed, check your logs directory for a new log file named `laravel.log`. This would confirm that your Laravel deployment is now working effectively on OVH web servers.
6. Conclusion:
By following these troubleshooting steps, you can efficiently address the issue of missing or permission-denied log directories in Laravel deployments to OVH web servers. If this solution doesn't work for your specific case, consider reaching out to Laravel Community experts at https://laravelcompany.com/ for additional assistance. With proper configuration and setup, you can ensure a smooth and hassle-free deployment process for your Laravel application.