If you are using QGIS Server 2.18 you surely experienced QGIS Server crashed (HTTP Error 500 Internal Server Error) when using GetPrint request. This is quite serious issue and hard to examine because there aren’t any useful information about that in Apache or QGIS Server logs. Testing this showed that error only occurs when you are using print template with text elements, if you are using just map is working (also with scale and legend).
Solution
This is only for Linux based systems (no matter if you are using complete Dektop install with GUI or just bash version), there is no known solution for Windows so far.
- Open command line interface and enter sudo mode with
sudo -s
- Install Xvfb ( display server)
apt-get install xvfb
- Add display number to Apache configuration
FcgidInitialEnv DISPLAY ":99"
For users of Extended QGIS Web client: edit gisapp.conf
nano /etc/apache2/conf-enabled/gisapp.conf
Find part with FcgidInitialEnv variables and add display number there
- Add cron job to start display server with number 99 on every reboot
crontab -e
Add this two lines at the bottom of the file
#fake X server, needed for QGIS Server 2.18 printing to PDF
@reboot /usr/bin/Xvfb :99 -screen 0 1024x768x24 -ac +extension GLX +render -noresetSave
- Reboot server
reboot
Now you can try again and QGIS Server should return you valid PDF print.