Recommended Free Tools
Configure Apache to run the threaded event MPM and send PHP requests to PHP-FPM through mod_proxy_fcgi. The reliable sequence is: identify the installed PHP version, install its FPM package, disable prefork and mod_php, enable event and FastCGI proxying, enable the matching FPM configuration, verify the Unix socket, run apachectl configtest, and only then reload Apache.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What this configuration does
Apache loads exactly one multiprocessing module (MPM) at a time. The event MPM uses a threaded worker model designed to handle keep-alive connections efficiently. PHP does not run inside Apache as mod_php; instead, Apache passes each PHP request to a separate PHP-FPM service through mod_proxy_fcgi.
As an Amazon Associate I earn from qualifying purchases.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePHP-FPM maintains pools of PHP worker processes. Apache remains responsible for HTTP connections and static files, while FPM executes PHP scripts. A Unix-domain socket, normally under /run/php/, carries the FastCGI request between the two services. Because FPM is independent, you can restart PHP workers without restarting the Apache daemon.
The PHP documentation recommends PHP-FPM rather than mod_php for new installations and identifies resource management, process isolation, independent PHP restarts, and compatibility with Apache’s event MPM as key advantages. The change is not a universal speed guarantee: concurrency, memory use, and response time depend on the application, PHP code, traffic pattern, and host capacity.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Before you change Apache
Confirm the Ubuntu and PHP versions
Ubuntu’s helper commands and service names are version-aware. Do not copy a socket path for one PHP release into a configuration for another. First inspect what is installed and what packages are available:
php -v
apt-cache policy php-fpm
systemctl list-unit-files 'php*-fpm.service'
The first command reports the PHP command-line version. The package-policy output shows the release’s selected FPM package, which may be an unversioned php-fpm metapackage. The systemd query lists versioned units such as php8.3-fpm.service or another release supplied by your Ubuntu repository. Let that installed version be represented as X.Y in the commands below.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Check the current Apache modules and snippets
Before disabling anything, inspect the active module and configuration links:
ls -l /etc/apache2/mods-enabled
ls -l /etc/apache2/conf-enabled
sudo apachectl -M | grep -E 'mpm|php|proxy_fcgi'
Look for an enabled mpm_prefork module, a versioned PHP module such as php8.3_module, and any existing phpX.Y-fpm configuration. The exact versioned names vary by Ubuntu release. This inspection prevents disabling the wrong module or leaving an older FPM snippet active.
Back up the configuration
Keep a copy of the files you are about to change and know how to access the machine if Apache will not reload:
sudo cp -a /etc/apache2 /etc/apache2.backup-$(date +%F)
sudo systemctl status apache2 --no-pager
Do not reload after an unverified edit. Apache’s configuration checker is the gate before every reload.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Install Apache and the matching PHP-FPM package
If Apache is not installed, install it with the FPM package selected for the target PHP release:
sudo apt update
sudo apt install apache2 phpX.Y-fpm
For example, if inspection shows the intended service is php8.3-fpm.service, install php8.3-fpm. On some Ubuntu releases, php-fpm is a metapackage that resolves to the distribution’s default PHP version; use the package your release actually provides. Avoid mixing a configuration generated for one release with a socket belonging to another.
Installing the package normally creates a systemd unit and a pool configuration. It may also place an Apache configuration fragment in /etc/apache2/conf-available/. You will enable the fragment after selecting the MPM.
Switch from prefork and mod_php to event and FPM
Run the following sequence, substituting the real PHP version. The first command is conditional: run it only if the corresponding mod_php module is enabled.
sudo a2dismod phpX.Y
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf phpX.Y-fpm
If a2dismod phpX.Y reports that the module is not enabled, that is not an error; continue with the MPM and proxy steps. If your enabled module has a different versioned name, use the name shown in /etc/apache2/mods-enabled. Likewise, enable the FPM configuration whose filename is present in /etc/apache2/conf-available.
Apache must have one and only one MPM. Disabling mpm_prefork before enabling mpm_event avoids the startup error that occurs when two MPMs are loaded. Do not enable mpm_worker or another MPM alongside mpm_event.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Verify the PHP-FPM handler and socket
Find the running service and its socket
Start the intended FPM unit and inspect its status:
sudo systemctl enable --now phpX.Y-fpm
sudo systemctl status phpX.Y-fpm --no-pager
ls -l /run/php/
The directory should contain a socket such as /run/php/phpX.Y-fpm.sock. Use the exact filename shown on your host. A service can be active while a different version’s socket is present, so check both the unit name and the directory listing.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Inspect the enabled Apache configuration
Open the enabled snippet, or search all enabled configuration for the handler:
grep -R "FilesMatch|SetHandler|phpX.Y-fpm.sock" /etc/apache2/conf-enabled /etc/apache2/sites-enabled
The PHP-FPM guidance uses a handler equivalent to:
<FilesMatch ".php$">
SetHandler "proxy:unix:/run/php/phpX.Y-fpm.sock|fcgi://localhost"
</FilesMatch>
In the actual file, the backslash before .php and the socket path must match the syntax shown by your generated snippet. The proxy:unix: portion tells Apache to use a Unix socket; the fcgi://localhost suffix supplies the FastCGI backend target. Do not point this rule at a socket from another PHP release.
Check module loading and syntax
Confirm the event MPM and FastCGI proxy are loaded, then validate the entire Apache configuration:
sudo apachectl -M | grep -E 'mpm|proxy_fcgi'
sudo apachectl configtest
You should see mpm_event_module and proxy_fcgi_module. The configuration test must return exactly Syntax OK before you reload. A successful module listing alone does not prove that virtual hosts, directives, or included snippets are valid.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Reload Apache and perform a real PHP request
Once the service, socket, modules, and syntax are correct, reload Apache without dropping existing connections:
sudo systemctl reload apache2
Create a temporary endpoint that prints the PHP version, request it locally, and remove it immediately:
printf '<?php echo PHP_VERSION, "n"; ?>' | sudo tee /var/www/html/health.php
curl -i http://127.0.0.1/health.php
sudo rm /var/www/html/health.php
The response should have an HTTP success status and contain the version served by FPM. The file executes PHP and must not remain in a public document root. If you need more diagnostics, a temporary phpinfo() endpoint exposes extensive environment data; use it only briefly, restrict access while testing, and remove it as soon as the version and handler are confirmed.
Event MPM and prefork/mod_php compared
| Aspect | prefork with mod_php | event with PHP-FPM |
|---|---|---|
| Apache concurrency model | Process-based prefork workers; each worker loads the PHP module. | Threaded event workers handle connections while PHP execution is delegated to FPM. |
| PHP process location | PHP runs inside Apache worker processes. | PHP runs in separate FPM worker processes reached through FastCGI. |
| Restarting PHP | Changing or restarting the embedded PHP module generally requires an Apache restart. | FPM can be restarted independently of Apache. |
| Isolation | PHP shares the Apache process space. | FPM provides a separate process boundary and configurable pools. |
| Memory and concurrency behavior | Each Apache process that loads PHP carries the module’s memory footprint. | Apache connection workers and PHP workers can be sized separately; actual savings depend on workload and pool settings. |
| Extension compatibility | Works with extensions compatible with the prefork process model. | Use extensions that are safe for the threaded Apache arrangement; PHP itself executes in FPM, but test every required extension and library. |
| Operational complexity | Fewer moving parts, but PHP and HTTP worker lifecycles are coupled. | More services and a socket to monitor, with independent PHP lifecycle control. |
There is no universal percentage improvement or fixed MaxRequestWorkers value that applies to every Ubuntu host. Select Apache and FPM limits from measured traffic, available memory, request duration, and the behavior of the application rather than copying a benchmark from another server.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Troubleshoot common failures
“More than one MPM loaded”
This means two MPM modules remain enabled. List the active links and disable the unwanted one:
ls -l /etc/apache2/mods-enabled | grep mpm
sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2enmod mpm_event
sudo apachectl configtest
Run only the disable command that corresponds to an actually enabled module. The final listing should contain one MPM, and the configuration test must report Syntax OK.
Best Value
PHP downloads or appears as source code
Apache is serving the file as static content instead of sending it to FPM. Confirm that proxy_fcgi is loaded and that an enabled FilesMatch/SetHandler rule covers the requested .php path:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf phpX.Y-fpm
grep -R "SetHandler" /etc/apache2/conf-enabled /etc/apache2/sites-enabled
sudo apachectl configtest
sudo systemctl reload apache2
Also check virtual-host overrides. A more specific directory or location rule can prevent the expected handler from applying.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsHTTP 503 Service Unavailable
A 503 after the switch usually means Apache cannot reach the configured FPM backend. Check the service, socket, path, and permissions in that order:
- Service: run
sudo systemctl status phpX.Y-fpm --no-pager. Start it withsudo systemctl enable --now phpX.Y-fpmif it is stopped. - Socket: run
ls -l /run/php/and confirm the configured filename exists. - Version match: compare the socket in
SetHandlerwith the running unit. A rule forphp8.2-fpm.sockcannot use a service that created onlyphp8.3-fpm.sock. - Access: inspect socket ownership and mode. Apache’s account must be allowed to connect according to the FPM pool’s listen settings.
- Logs: review
sudo journalctl -u phpX.Y-fpm -n 50 --no-pagerand the Apache error log for the precise connection or permission message.
After correcting the cause, run sudo apachectl configtest, reload Apache, and repeat the local request.
An older PHP version is served
More than one versioned FPM configuration may be enabled. List the snippets and disable stale ones, leaving only the intended release:
ls -l /etc/apache2/conf-enabled | grep php
ls -l /run/php/
sudo a2disconf phpOLD-fpm
sudo a2enconf phpX.Y-fpm
sudo apachectl configtest
sudo systemctl reload apache2
Replace phpOLD-fpm with the actual obsolete configuration name; do not disable a file that is not present. Verify the result with the temporary version endpoint, then remove that endpoint.
Apache will not start after an edit
Never repeatedly reload a broken configuration. Restore the last known-good file or symlink, then run:
sudo apachectl configtest
sudo systemctl status apache2 --no-pager
sudo journalctl -u apache2 -n 50 --no-pager
The syntax checker reports the file and line for many directive errors. Correct one issue at a time and rerun the checker before attempting another reload. If the daemon is already stopped, use sudo systemctl start apache2 only after the test returns Syntax OK.
Production checks after the migration
- Confirm every virtual host that serves PHP inherits or explicitly defines the intended FPM handler.
- Keep only one Apache MPM enabled and verify it with
apachectl -M. - Enable the correct FPM unit at boot with
systemctl enable, and monitor that unit separately from Apache. - Ensure the FPM socket directory and pool permissions allow Apache to connect without making the socket world-writable.
- Remove health-check, version, and
phpinfo()files from public directories after testing. - Test both static assets and representative dynamic URLs; a successful PHP version endpoint does not validate application-specific rewrites, uploads, or background requests.
- Watch Apache and FPM logs during normal traffic. Tune worker and pool limits only after observing memory pressure, queueing, request duration, and error rates on the target host.
- During PHP upgrades, install the new FPM package, verify its service and socket, switch the Apache snippet, run
apachectl configtest, and reload only after the new version is confirmed.
Repeatable migration checklist
- Run
php -v,apt-cache policy php-fpm, andsystemctl list-unit-files 'php*-fpm.service'; choose one PHP version. - Install
apache2and the matchingphpX.Y-fpmpackage. - Inspect
mods-enabledandconf-enabledfor existing MPM,mod_php, and FPM links. - Disable the enabled
mod_phpmodule andmpm_prefork; enablempm_event,proxy_fcgi, andsetenvif. - Enable only
phpX.Y-fpmand confirm its real socket under/run/php/. - Run
apachectl -Mandapachectl configtest; requirempm_event_module, proxy support, andSyntax OK. - Reload Apache, request a temporary local PHP endpoint, verify the reported version, and delete the endpoint.
- If anything fails, use the service status, socket listing, Apache error log, and FPM journal to identify whether the fault is version mismatch, permissions, handler selection, or syntax.
When these checks pass, Apache is using the event MPM for HTTP work and PHP-FPM for PHP execution, with each component independently restartable and version alignment explicitly verified.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




