ServBay PHP Troubleshooting: Fixing Common Issues with ImageMagick and Large File Uploads
ServBay provides developers with a convenient local web development environment supporting multiple PHP versions and a wide range of extensions. While ServBay is designed to offer stable and reliable services, users may occasionally encounter PHP service failures or issues related to specific extensions during real-world development.
This guide is intended to help you diagnose and resolve common PHP-related issues in ServBay, with a focus on the ImageMagick extension error and slow upload speeds when handling large files in PHP. Detailed troubleshooting steps and solutions are provided.
Common PHP Issues and Solutions
Below are some typical problems you might encounter with PHP or its extensions, along with suggested solutions.
ImageMagick "number of supported formats: 0" Error
Issue Description:
Some ServBay users may encounter the following error message when using the ImageMagick PHP extension:
ImageMagick number of supported formats: 01
This usually means that the ImageMagick library has failed to recognize or load the supported image formats properly.

Solution:
This issue is typically related to the libraries provided by ServBay Runtime. Follow these steps to resolve it:
- Open the ServBay app.
- In the left-hand sidebar, select
Packages. - In the list of packages on the right, find and select
ServBay Runtime. - Make sure that
ServBay Runtimeis installed and the version is at least1.0.20or1.1.20. If your version is lower, click the upgrade button to update it to the latest version. - Once
ServBay Runtimeis updated, restart your PHP service (e.g., PHP 8.1, PHP 8.2, etc.)
Technical Explanation: The ServBay Runtime package includes internal components and shared libraries required by certain PHP extensions. Upgrading Runtime ensures you get the latest library versions, which resolves issues with ImageMagick failing to load format support.
Slow Uploads When Uploading Large Files with PHP
Issue Description:
Some users may notice significantly reduced upload speeds when uploading large files (over 1GB) with PHP applications such as Tus-PHP services, NextCloud, etc.
This issue may be caused by interaction between php-fpm's process handling and chunked transfer encoding.
Solutions:
You can try the following methods to improve large file upload speeds:
Increase php-fpm’s
pm.max_childrenSettingBy default, ServBay sets
pm.max_children(the maximum number of child processes) to10in its php-fpm configuration. When handling many concurrent requests or long-running file uploads, a low number of child processes may become a bottleneck.Consider increasing this value. Also, review the
pmsetting (pm = dynamicorpm = ondemand) to ensure it’s appropriate for your workload.
Steps:
- In ServBay’s left sidebar, select the PHP version you’re using (e.g., PHP 8.2).
- Click the
Configurationbutton on the right. - Locate and open the
php-fpm.conffile. - Search for
pm.max_childrenand adjust its value. - Save the file and restart that PHP service.
Technical Explanation: Increasing the number of child processes allows php-fpm to handle more requests simultaneously. For long-running tasks like large file uploads (which may occupy a process for an extended period), having more available child processes reduces queue time and improves overall throughput.
Disable Chunked Uploads (in Application Code – Not Recommended via ServBay Settings)
This approach is generally not recommended, as it requires modifying your application code and may affect features dependent on chunked transfer. However, in specific cases, disabling or tweaking chunked upload (either client- or server-side) can help avoid issues stemming from interaction with php-fpm.
Check and Adjust the
fastcgi_request_bufferingParameter in Your Web Server (Nginx/Caddy)If you're using Nginx or Caddy as your web server and forwarding requests to php-fpm, the
fastcgi_request_bufferingparameter controls whether the server buffers the request body before sending it to FPM.Nginx: By default, Nginx uses
fastcgi_request_buffering on;, meaning Nginx fully receives the client upload before forwarding it to php-fpm. For large files, this can result in significant delays before FPM starts processing the data. Switching tofastcgi_request_buffering off;enables Nginx to stream data to FPM as it receives it from the client, which is more efficient for large file uploads.nginxlocation ~ \.php$ { # ... other fastcgi parameters ... fastcgi_request_buffering off; # Add or modify this line # ... }1
2
3
4
5Caddy: The
php_fastcgidirective in Caddy behaves similarly tofastcgi_request_buffering offby default, streaming request bodies. Typically, no modification to the Caddy config is needed unless a customreverse_proxysetup has introduced additional buffering.
Steps:
- In ServBay’s left sidebar, select your Web server (e.g., Nginx or Caddy).
- Click the
Configurationbutton on the right. - Locate and open the main configuration file (such as
nginx.conforCaddyfile). - In the PHP request handling block (
locationfor Nginx,php_fastcgiblock for Caddy), add or modifyfastcgi_request_buffering off;. - Save the file and restart the web server.
Additional Checks:
- Review PHP Settings (
php.ini): Ensureupload_max_filesize,post_max_size, andmemory_limitare set high enough to support your intended file size. Insufficient values will cause failed uploads (rather than just slowness), but they remain a common issue for file upload problems. - Check Log Files: Review the error and access logs for your web server (Nginx/Caddy) and the php-fpm error log. These logs usually provide more detailed errors or exceptions encountered during request handling, helping you pinpoint the cause. You can find the PHP error log path set by the
error_logdirective inphp.ini.
General PHP Troubleshooting Tips
When you encounter PHP-related issues in ServBay, you can follow these general troubleshooting steps:
- Check PHP Version and Extensions: Make sure the PHP version you’re using is compatible with your application and that all required PHP extensions (such as ImageMagick, GD, MySQLi, etc.) are installed and enabled in ServBay. You can create a PHP file containing the
phpinfo()function and view it in your browser for detailed configuration information. - Verify ServBay Service Status: Ensure your PHP service (e.g., PHP 8.2), web server service (Nginx or Caddy), and any relevant database services (MySQL, PostgreSQL, etc.) are all running properly in ServBay.
- Review Error Logs: This is the most important diagnostic step.
- PHP Error Log: Check the log file specified by the
error_logdirective in yourphp.ini. Make suredisplay_errorsis set toOnin development environments (usuallyOffin production), andlog_errorsis enabled. - Web Server Logs: Review the error logs for Nginx or Caddy. These are typically found in the
logsfolder under your ServBay installation directory or as specified in the server’s configuration files. - ServBay Application Logs: The ServBay app itself may have logs that record key events or startup issues.
- PHP Error Log: Check the log file specified by the
- Isolate the Test Environment: If possible, try to reproduce the issue in a minimal environment (such as a simple PHP file), to rule out complexity introduced by the application code itself.
- Consult ServBay Documentation and Community: The official ServBay documentation and user community are valuable resources for help and for finding solutions to known issues.
Conclusion
This article provided targeted solutions for common ImageMagick errors and slow large file uploads in ServBay, as well as general PHP troubleshooting strategies. By checking your ServBay Runtime version, tuning php-fpm settings, adjusting web server buffering configuration, and carefully reviewing logs, most PHP-related issues in ServBay can be resolved. If your problem persists, be sure to review the log files for further insight or seek help from the community.
