Skip to content

Commit a46fdfd

Browse files
committedMar 1, 2025
Add documentation for error:dump command
1 parent 8404c9b commit a46fdfd

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
 

‎controller/error_pages.rst

+45
Original file line numberDiff line numberDiff line change
@@ -336,3 +336,48 @@ time and again, you can have just one (or several) listeners deal with them.
336336
your application (like :class:`Symfony\\Component\\Security\\Core\\Exception\\AccessDeniedException`)
337337
and takes measures like redirecting the user to the login page, logging them
338338
out and other things.
339+
340+
Dumping error pages in static HTML files
341+
-------------------------------------------
342+
343+
When a web server cannot handle a request or when it triggers an error without
344+
calling the PHP application, it will return its default error pages, instead of
345+
rendering the errors as defined in your application (whether it's Symfony's
346+
default "Oops" error page or the pages you customized in your application).
347+
348+
To avoid that and always have your web server rendering your application's error
349+
pages, you can dump each HTTP status error in a their own static HTML files:
350+
351+
.. code-block:: terminal
352+
353+
$ bin/console error:dump [--force] var/cache/prod/error_pages
354+
355+
.. note::
356+
357+
By default, it will dump HTML files for each HTTP status error.
358+
You can restrict that to dump only some HTTP status code by passing them as
359+
in the second argument of the command.
360+
361+
Once the static pages are generated, you can now configure your web server to use
362+
them instead of their default error page. Here is an example configuration with
363+
nginx:
364+
365+
.. code-block:: nginx
366+
# /etc/nginx/conf.d/example.com.conf
367+
server {
368+
# Your existing serverconfiguration
369+
# ...
370+
371+
372+
# Configure nginx to serve your application's error pages
373+
error_page 400 /error_pages/400.html;
374+
error_page 401 /error_pages/401.html;
375+
# ...
376+
error_page 510 /error_pages/510.html;
377+
error_page 511 /error_pages/511.html;
378+
379+
location ^~ /error_pages/ {
380+
root /path/to/your/symfony/var/cache/error_pages;
381+
internal; # allows this location block to not be triggered when a user manually call these /error_pages/.* urls
382+
}
383+
}

0 commit comments

Comments
 (0)