Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The reliable way to identify a website’s PHP handler is to inspect the PHP runtime reached over HTTP, then verify Apache’s active modules and virtual-host rules. Create a temporary phpinfo() page in the site’s document root, request it through the exact hostname and HTTPS path, and read the Server API value. Confirm the result with Apache’s module list and, when applicable, the PHP-FPM service and pool socket. Do not use php -v alone: it reports the command-line SAPI, which can be a different PHP installation from the one serving the site.
The quickest reliable test
For the virtual host you want to examine, place a temporary file named something like handler-check.php in that site’s actual document root. Put this in the file:
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows 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 reinstall<?php
phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES);
?>
Open the file through the same hostname, scheme, listener and URL path used by the application—for example, the production HTTPS hostname rather than an IP address or a different test host. In the output, record Server API, PHP Version, Loaded Configuration File, Scan this dir for additional .ini files, Additional .ini files parsed, and the web-server information.
- Apache 2.0 Handler normally means PHP is embedded in Apache through mod_php.
- FPM/FastCGI means the request reached PHP-FPM through a FastCGI connection.
- CGI/FastCGI identifies a CGI/FastCGI path, but does not by itself prove that PHP-FPM is the process manager.
After recording the result, verify Apache’s loaded modules and dispatch rules, check any FPM pool’s listen endpoint, and delete the diagnostic file immediately.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Why php -v can show the wrong version for the website
PHP has separate server application programming interfaces (SAPIs). The php executable in a shell uses the CLI SAPI; a browser request may use an Apache module, PHP-FPM, CGI, or another FastCGI implementation. Those SAPIs can come from different packages, use different php.ini files, load different extensions, and even run different PHP versions.
Consequently, a shell showing PHP 8.3 does not establish that an HTTPS request is executing PHP 8.3. The HTTP response is authoritative for that website. Treat the CLI output as a separate runtime that is useful for comparison, not as proof of the web configuration.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsPrepare a safe, temporary diagnostic
Choose the correct document root
Find the document root for the virtual host you are testing. A file placed in a neighboring site, a deployment directory, or a default Apache directory can produce a valid result for the wrong site. If the application has several hostnames, test each one whose PHP configuration matters.
Create the file with the site’s normal ownership
Use the account and permissions normally used to deploy files. For example, from the document root:
umask 077
cat > handler-check.php <<'PHP'
<?php
phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES);
?>
PHP
The restrictive umask is a precaution while the file exists; it does not replace the web server’s need to read the file. On a production system, perform the check during a controlled maintenance window and avoid sharing the output.
Use the same request route as the application
Request the diagnostic page in a browser, or with a client that sends the production hostname:
Recommended Free Tools
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
curl -sS -D headers.txt https://www.example.com/handler-check.php -o handler-check.html
Use the real hostname, including the correct subdomain, because Apache selects a virtual host from the hostname and TLS connection. If a reverse proxy or load balancer is in front of Apache, make sure the request reaches the intended backend. A request to an IP address, a different port, or an HTTP listener can select different rules.
A successful response should be an HTML page containing a PHP information table. A redirect is not necessarily a problem, but follow it only if the final URL still belongs to the virtual host being tested. A 404 usually means the file is not in the document root selected for that request; a 403 usually indicates permissions or access-control rules.
Read the PHP runtime fields
Server API: the first handler classification
| Server API value | What it usually indicates | What to verify next |
|---|---|---|
| Apache 2.0 Handler | PHP is embedded in Apache, normally through mod_php. | Apache’s module list should contain a PHP module, and the virtual-host or global configuration should assign PHP files to that module. |
| FPM/FastCGI | The request is running through PHP-FPM over FastCGI. | proxy_fcgi_module, a proxy target, and a running FPM pool whose listen endpoint matches that target. |
| CGI/FastCGI | The request uses a CGI or FastCGI path; it may be traditional CGI, mod_fcgid, or another FastCGI arrangement. | CGI/fcgid modules and the applicable AddHandler, SetHandler, or related rules. Do not label it FPM without finding an FPM pool. |
PHP Version and configuration paths
PHP Version is the version actually handling this HTTP request. Loaded Configuration File identifies the main php.ini used by that SAPI. Scan this dir for additional .ini files shows the directory scanned for drop-in configuration, while Additional .ini files parsed lists the files that were actually loaded. These paths explain why an extension or setting can appear in the web runtime but not in the shell, or vice versa.
Web-server information
The page also reports server information and environment data. Look for Apache-related server details and confirm that the response came from the expected host. If the server information identifies a different front end, proxy, or hostname than expected, resolve that routing issue before interpreting the PHP handler.
Confirm the result in Apache
List loaded modules
Run the command that exists on your distribution:
apachectl -M
apache2ctl -M
httpd -M
Only one of these may be available. Filter the output when the module list is long:
apachectl -M 2>/dev/null | egrep 'php|proxy_fcgi|cgi|fcgid'
For an embedded deployment, look for a loaded PHP DSO or module (the exact name varies by package and PHP version). For PHP-FPM, look for proxy_fcgi_module. For other CGI arrangements, look for cgi_module, cgid_module, or an fcgid module. A module being installed on disk is not evidence that Apache loaded it; the module-list command shows the active process.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Identify the selected virtual host
apachectl -S
This displays Apache’s parsed virtual-host map, including the address, port, hostname and configuration file associated with each vhost. Confirm that the hostname and HTTPS port used for the test select the file you intend to inspect.
Find the dispatch rules
Search the active Apache configuration directories for directives that send PHP files to a handler. The paths differ between distributions, so adjust them to your installation:
grep -RInE 'LoadModule[[:space:]].*php|AddHandler|SetHandler|FilesMatch|ProxyPassMatch' /etc/apache2 /etc/httpd 2>/dev/null
Important patterns include:
LoadModuleentries for a PHP module, together with anAddHandleror equivalent PHP file association, indicate an embedded mod_php arrangement.ProxyPassMatchrules that send requests ending in.phpto a Unix socket or TCP address indicate FastCGI proxying. Apache’smod_proxy_fcgiis the component that carries the request to PHP-FPM.- A
<FilesMatch>block containing aSetHandlersuch as aproxy:unix:target is another common PHP-FPM configuration. AddHandlerrules that map PHP files to CGI scripts, along withmod_cgi,mod_cgid, or fcgid configuration, point to a CGI/FastCGI path that needs further identification.
Apache can have several rules in included files. Inspect the rule that applies to the tested virtual host and path, not merely a similarly named rule in a disabled site or an unrelated configuration file. Validate syntax before any reload with:
apachectl configtest
Prove that PHP-FPM is the handler
Check the service
Service names depend on the distribution and installed PHP version. List likely units:
systemctl list-unit-files | grep -E 'php.*-fpm|php-fpm'
systemctl list-units --type=service | grep -E 'php.*-fpm|php-fpm'
Then inspect the unit that corresponds to the PHP version reported by the web page, for example:
systemctl status php8.2-fpm
systemctl status php-fpm
A running service is necessary but not sufficient: Apache might proxy to a different version, socket, or host. The runtime’s FPM/FastCGI Server API and the matching Apache target are what connect the service to this particular virtual host.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Match the pool’s listen endpoint
FPM pools define a Unix socket or TCP address in a listen setting. Search the pool files:
grep -RIn '^[[:space:]]*listen[[:space:]]*=' /etc/php /etc/php-fpm.d 2>/dev/null
Compare the value with the endpoint in Apache’s ProxyPassMatch or SetHandler rule. A Unix socket must match the exact path; a TCP configuration must match the address and port. Socket ownership and mode also matter: Apache’s proxy process must be allowed to connect. If Apache returns 502 Bad Gateway or logs a connection failure, check that the FPM service is running, the socket exists, permissions permit access, and the proxy target has not been left pointing at an old PHP version.
Understand the process boundary
With FPM, Apache remains the HTTP server while PHP runs in a separate pool of worker processes. That separation allows different sites to use different pools, users, limits, and PHP versions when the operating system and configuration support it. It also means PHP and Apache have separate service lifecycles: changing PHP-FPM configuration normally requires restarting or reloading the relevant FPM unit, while changing Apache modules or vhost rules requires an Apache reload or restart.
Distinguish CGI and fcgid from PHP-FPM
CGI/FastCGI in phpinfo() is a family label, not a product name. Traditional CGI can start a PHP process per request; FastCGI keeps processes available; mod_fcgid is an Apache module that manages FastCGI applications. PHP-FPM is one particular FastCGI process manager.
If no matching FPM service or pool exists, inspect Apache for mod_cgi, mod_cgid, or fcgid modules and for handler mappings such as AddHandler cgi-script .php. Check the configured executable or wrapper and its permissions. Do not infer FPM merely because the word “FastCGI” appears in the Server API field.
Compare the web runtime with the CLI runtime
Print the web values explicitly
A smaller diagnostic can make comparisons easier, although it still must be removed after use:
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
<?php
printf("PHP_VERSION=%sn", PHP_VERSION);
printf("PHP_SAPI=%sn", PHP_SAPI);
printf("Loaded ini=%sn", php_ini_loaded_file() ?: "none");
printf("Scanned ini=%sn", php_ini_scanned_files() ?: "none");
?>
PHP_SAPI should agree with the Server API classification. The two php_ini_* functions expose the configuration paths used by the web request.
Capture the CLI values
php -v
php --ini
php -r 'printf("PHP_VERSION=%snPHP_SAPI=%snINI=%sn", PHP_VERSION, PHP_SAPI, php_ini_loaded_file() ?: "none");'
Compare the two sets line by line. Differences are expected when CLI and web PHP are separate installations or SAPIs. For application behavior, extensions, limits, and version checks, use the HTTP values for the web application and the CLI values only for command-line scripts.
What each handler means operationally
| Characteristic | Embedded mod_php | PHP-FPM through mod_proxy_fcgi | CGI or other FastCGI |
|---|---|---|---|
| Where PHP runs | Inside Apache worker processes. | In separate PHP-FPM worker processes reached over FastCGI. | In a CGI executable or another FastCGI process manager; the exact model depends on the configuration. |
| Typical Server API | Apache 2.0 Handler. | FPM/FastCGI. | CGI/FastCGI. |
| Apache evidence | Loaded PHP module and PHP handler mapping. | proxy_fcgi_module plus a socket or TCP proxy rule. |
CGI/fcgid module and corresponding handler or wrapper. |
| Apache MPM considerations | Non-thread-safe PHP builds generally require Apache’s prefork MPM. | Works with Apache’s event MPM and other MPM choices supported by the deployment. | Depends on the CGI/FastCGI implementation and its process model. |
| Site isolation | PHP executes in Apache’s process context, so isolation is comparatively limited. | Separate pools can provide per-site users, limits, and versions when configured. | Varies by wrapper and process manager. |
| What usually needs restarting after a PHP change | Apache, because PHP is loaded into Apache. | The relevant FPM service; Apache only when its proxy or vhost configuration changes. | The CGI/FastCGI service or wrapper, and possibly Apache, depending on the setup. |
PHP’s Apache documentation recommends PHP-FPM with mod_proxy_fcgi for modern deployments. It describes mod_php as embedded in Apache workers and notes that non-thread-safe PHP generally requires prefork, while FPM provides separate process management and is compatible with Apache’s event MPM.
Troubleshoot an unexpected result
The page shows a different PHP version than expected
- Confirm the hostname and HTTPS port; a different virtual host can use another PHP version.
- Check
apachectl -Sand the matching vhost file. - Inspect every included
FilesMatch,SetHandler, andProxyPassMatchrule for an older socket or TCP port. - Compare the socket target with the active FPM pool’s
listenvalue. - Check whether a reverse proxy, cache, or separate backend is serving the response you inspected.
phpinfo() is unavailable
An administrator may disable the phpinfo function or block the file by policy. Use the smaller script that prints PHP_VERSION, PHP_SAPI, php_ini_loaded_file(), and php_ini_scanned_files(). If those functions are also restricted, rely on the permitted runtime information and Apache/FPM configuration rather than enabling diagnostic functions permanently.
The file downloads instead of executing
Apache is serving .php as a static file because no PHP handler is associated with that path, or the request is reaching a server other than the one you configured. Check the selected vhost, PHP handler mapping, and loaded modules. Never open a downloaded diagnostic file as evidence of the runtime; it was not executed.
The output is from the wrong directory
A 404 or a page that belongs to another application usually means the URL did not map to the document root you edited. Verify the vhost mapping, aliases, rewrites, container mounts, and deployment symlink used by the request. Place the file only after confirming the path selected by Apache.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
FPM appears configured but requests fail
For a 502 or gateway error, check the FPM unit status, the existence and permissions of the Unix socket (or reachability of the TCP endpoint), Apache’s error log, and the exact proxy target. A healthy FPM service can still be irrelevant if the vhost points to another socket.
Remove the diagnostic and close the exposure
Delete the file as soon as the checks are complete:
rm -- handler-check.php
Request the URL once more and confirm it now returns the site’s normal 404 or equivalent response. phpinfo() exposes PHP configuration, loaded extensions, filesystem paths, environment values, HTTP headers, and server details. It is useful for a controlled diagnostic, but it should never remain publicly reachable or be pasted into a public issue without removing sensitive values.
Quick Recap
Handler-identification checklist
- Create a temporary diagnostic in the tested virtual host’s document root.
- Request it over the exact hostname, HTTPS listener, virtual host and path used by the application.
- Record Server API, PHP Version, configuration-file paths, parsed additional INI files and server information.
- Classify the first result as Apache 2.0 Handler, FPM/FastCGI, or CGI/FastCGI.
- Run
apachectl -M,apachectl -S, and a configuration search for PHP dispatch directives. - If FPM is indicated, match the Apache proxy endpoint to a running pool’s
listenvalue. - Compare the web values with
php -vandphp --ini; treat the HTTP result as authoritative for the website. - Delete the diagnostic file and verify that it is no longer accessible.
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.
Free tools Windows power users keep installed
One-click scans. No signup required.

