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
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
Install a PHP module with your VPS distribution’s package manager, then restart the PHP runtime that serves your application and verify the module in that same SAPI. On Debian or Ubuntu this normally means apt; on Fedora, RHEL-compatible, and other DNF systems it means dnf. The most common failure is checking the command-line PHP configuration while the website is running a different Apache, CGI, or PHP-FPM configuration.
What a PHP module is and why the installation can appear not to work
A PHP module (also called an extension) adds functions, classes, drivers, or runtime features to PHP. Database connectivity, image processing, URL transfers, and other capabilities are commonly supplied this way. A package manager installs the compiled module and its dependencies, but PHP must also load the module through the configuration tree used by the process running your application.
Recommended Free Tools
That last detail matters on a VPS because one server can have several PHP Server APIs (SAPIs):
- CLI: the interpreter launched by a shell, cron job, deployment script, or command such as
php -m. - Apache: PHP loaded directly by Apache through its PHP module.
- CGI: PHP invoked by a web server through the CGI interface.
- FPM: PHP-FPM processes contacted by Nginx or Apache through FastCGI.
Each SAPI can have a different php.ini, different conf.d directory, and different process lifetime. Installing a package and checking only CLI output therefore does not prove that the web application can use it.
#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.
Before you install: identify the operating system, PHP version, and SAPI
Identify the distribution and package manager
Run these commands as a user with sudo access:
cat /etc/os-release
php -v
command -v php
Use apt on Debian and Ubuntu. Use dnf on Fedora and systems in the Red Hat family that provide DNF. A VPS image may include a vendor repository or more than one PHP stream, so do not assume that a package name or version from another distribution applies to yours.
Determine which SAPI serves the site
Check your web-server configuration or hosting control panel. Apache may use its PHP module or proxy requests to PHP-FPM. Nginx normally passes PHP requests to PHP-FPM. A command-line framework task and the website can use different PHP binaries or versions.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
For the CLI interpreter, display the active configuration files with:
php --ini
This identifies the loaded php.ini and the additional scanned configuration directory for that binary. It does not identify the configuration used by a separate FPM pool or Apache process.
Record the PHP version before choosing a package
Use php -v for the CLI version, but verify the web version independently when multiple versions are installed. A module compiled for one major or minor PHP version may not load into another. If your distribution offers version-specific package names, select the package that matches the PHP runtime used by the application rather than blindly installing the distribution’s default.
Install modules on Debian or Ubuntu with apt
Refresh package metadata
Start by refreshing the local package index:
sudo apt update
This downloads current metadata from the repositories configured on the VPS. It does not upgrade every package. If the command reports an unavailable repository, a release mismatch, or a held package, resolve that repository problem before attempting to install an extension.
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 →Search for the package name
Package names are distribution conventions, not PHP function names. Search the repository instead of guessing:
apt search php-
apt-cache search php
Common examples include:
| Capability | Typical Debian/Ubuntu package | What to check |
|---|---|---|
| MySQL and compatible database drivers | php-mysql |
Confirm that it matches the PHP version and repository you selected. |
| cURL transfers | php-curl |
Install the package for the runtime serving the application. |
| PostgreSQL access | php-pgsql |
Check both the PHP version and the PostgreSQL client dependencies. |
| Command-line interpreter | php-cli |
Needed when the VPS has PHP libraries but no CLI binary. |
| CGI interface | php-cgi |
Use only when your web stack actually invokes CGI. |
| Apache PHP integration | libapache2-mod-php |
Relevant to Apache’s embedded PHP SAPI, not an Nginx-FPM deployment. |
The exact package set can differ between releases and enabled repositories. Search results are the authority for your VPS; do not substitute a package from a different distribution family.
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
Install one or more extensions
Install all required modules in one transaction when practical. For example:
sudo apt install php-mysql php-curl
Ubuntu’s standard Apache setup can be installed with:
Free tools Windows power users keep installed
One-click scans. No signup required.
sudo apt install php libapache2-mod-php
The package manager resolves dependencies and shows the proposed changes before proceeding. Read that summary. If it wants to remove the PHP version used by your application, stop and investigate the repository or version selection rather than accepting the transaction.
Enable an installed module when Debian’s helper requires it
Most packaged extensions are enabled by a configuration file automatically. If an installed extension is present but disabled, Debian-family systems provide:
sudo phpenmod extension_name
sudo phpdismod extension_name
Replace extension_name with the module’s configuration name, not necessarily the package name. These commands can be scoped to a PHP version or SAPI on systems that support those options; consult the command’s local help before changing a production configuration. Enabling a module still requires restarting the SAPI that loads it.
Install modules on DNF-based systems
Search the enabled repositories
Refresh metadata if your system requires it, then search for PHP packages:
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 →sudo dnf search php
Repository naming differs from Debian. For example, a MySQL native driver may be packaged as php-mysqlnd, while the GD image extension may be php-gd. Search results and the installed PHP stream determine the correct name.
Install the required packages
For the examples above:
sudo dnf install php-mysqlnd php-gd
DNF resolves dependencies and places PHP configuration in locations such as /etc/php.ini and the additional-module directory /etc/php.d/*.ini. If the transaction selects a PHP stream different from the one your application uses, choose the correct stream or repository before continuing. Mixing packages built for incompatible streams can produce load errors or a service that will not start.
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.
Check the transaction and package ownership
Use DNF’s transaction summary to confirm that the intended PHP packages are being installed. Afterward, you can inspect an installed package with commands such as:
rpm -q php-mysqlnd
rpm -ql php-mysqlnd
The file list helps you see where the module and its configuration fragment were installed. It does not replace checking the active SAPI configuration.
Restart the runtime that actually serves the application
PHP reads extensions when a process starts. A long-running web process will not notice a newly installed module until it is restarted.
| Deployment | Typical restart command | Important qualification |
|---|---|---|
| Apache on Debian/Ubuntu | sudo systemctl restart apache2 |
Use this when Apache embeds PHP or proxies requests through a service that is also managed there. |
| Apache on DNF systems | sudo systemctl restart httpd |
The service name is commonly httpd rather than apache2. |
| PHP-FPM with Nginx or Apache | sudo systemctl restart php8.3-fpm |
Replace 8.3 with the installed PHP version and use the service name present on your VPS. |
| Other FPM installations | sudo systemctl restart php-fpm |
Some DNF-based systems use the unversioned service name. |
Find the exact service name with systemctl list-units --type=service | grep -E 'php|fpm|httpd|apache' if you are unsure. Restarting the wrong service leaves the website on the old configuration. After a restart, check its status and recent logs if the site returns an error:
sudo systemctl status php8.3-fpm
sudo journalctl -u php8.3-fpm -n 50 --no-pager
Use the matching service name in both commands. A failed restart is safer than silently running without the required module, but it must be corrected before serving traffic.
Verify the module in the correct SAPI
Verify CLI PHP
List modules loaded by the command-line interpreter:
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 reinstallphp -m
To find one module without scanning the full list:
php -m | grep -i mysql
php -m | grep -i curl
Also inspect the CLI configuration:
php --ini
If the module appears here, that proves only that CLI PHP loaded it.
Verify Apache, CGI, or FPM PHP
Create a temporary, access-controlled diagnostic script in the site’s document root:
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.
<?php
phpinfo();
Open that page through the same hostname and web path that serves the application. Check:
- The PHP version shown by the web request.
- Loaded Configuration File, which identifies the active
php.ini. - Scan this dir for additional .ini files and the list of parsed files.
- The extension’s section or function list.
Delete the diagnostic file immediately after checking it. A public phpinfo() page reveals paths, versions, environment variables, and module details that should not remain exposed.
For a safer application-level check, test the specific capability and remove the test afterward:
<?php
var_dump(extension_loaded('curl'));
var_dump(function_exists('curl_init'));
Use the extension’s actual name in extension_loaded(). A package can be installed while the function remains unavailable if the web SAPI uses a different PHP version, has not been restarted, or is not reading the configuration file you inspected.
Find the right php.ini and configuration tree
Debian and Ubuntu paths
Debian-family systems commonly separate settings by PHP version and SAPI. Typical paths include:
/etc/php/M.N/cli/php.ini
/etc/php/M.N/apache2/php.ini
/etc/php/M.N/cgi/php.ini
/etc/php/M.N/fpm/php.ini
/etc/php/M.N/$SAPI/conf.d/
Here M.N is the installed major and minor version, and $SAPI is the relevant interface such as cli, apache2, or fpm. Additional files under the SAPI’s conf.d directory often contain the extension directives.
DNF paths
DNF-based systems commonly use:
/etc/php.ini
/etc/php.d/*.ini
Do not copy a Debian path into a DNF configuration or vice versa. The authoritative path is the one reported by the SAPI itself: php --ini for CLI and the phpinfo() output for a web request.
Read, do not overwrite, distribution-managed files
Package updates may replace or add files under the managed configuration directories. Prefer a small, clearly named configuration fragment in the appropriate conf.d or php.d directory when a manual directive is necessary. Keep a backup before editing production settings, and validate syntax or restart status immediately afterward.
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.
Diagnose “undefined function” and missing-module errors
Follow these checks in order; each eliminates a different cause.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minute- Confirm the function belongs to the expected extension. Check the application’s documentation and the PHP version’s extension name. Similar package names can provide different APIs.
- Check the PHP version running the application. Compare the web SAPI version from
phpinfo()with the version for which you installed the package. Compare CLI output separately if a scheduled task also fails. - Inspect the SAPI’s loaded files. Use
php --inifor CLI or the web SAPI’sphpinfo()page. Confirm that the extension’s.inifile appears in the parsed list. - Look for a load warning. A missing shared library, incompatible binary, permission problem, or duplicate directive may be reported in the PHP or web-server error log.
- Restart the correct service. Restart Apache,
httpd, or the matching PHP-FPM unit after installing or enabling the module. - Test the module directly. Use
php -mfor CLI and an application-level check or temporaryphpinfo()page for the web SAPI. - Check repository and package compatibility. If no suitable package exists for the running PHP version, do not force an unrelated binary. Use a supported repository stream or the fallback build methods described below.
If the module appears in CLI but not in the website, the most likely explanation is separate SAPI configuration or an un-restarted web process. If it appears in the website but not CLI, install or enable the module for the CLI PHP version only if command-line jobs need it.
When to use PECL or build an extension with phpize
Distribution packages are the default because the repository maintains the binary, dependencies, upgrade path, and security updates. Use PECL or a source build only when no suitable repository package exists or the packaged version is unsuitable for the application’s PHP version and operating system.
PECL considerations
PECL can build and install extensions from the PHP extension ecosystem, but it still requires development tools and headers that match the active PHP version. Treat the resulting binary as part of your server’s maintenance responsibility: record its version, build options, source, and upgrade procedure.
The phpize workflow
The documented generic workflow is:
phpize
./configure
make
sudo make install
Run these commands from the extension source directory. The exact prerequisites and configuration flags vary by extension; a failed ./configure usually indicates a missing development library or an incompatible PHP API. Do not run an untrusted build script as root.
After installation, add the module directive to the configuration file used by the target SAPI:
extension=extname.so
Use the actual filename installed by the build. Place the directive in the correct version-and-SAPI configuration tree, restart the relevant service, and verify with that SAPI. A source-built extension can be overwritten or become incompatible when PHP is upgraded, so reassess it after every PHP version change.
Choose the installation approach deliberately
| Approach | Distribution support | Version compatibility | SAPI affected | Updates and dependencies | Restart needed |
|---|---|---|---|---|---|
| APT package | Debian and Ubuntu | Repository resolves a package for the selected PHP stream; verify the running version. | Whichever SAPI’s configuration and service you restart. | Managed by APT with dependency resolution and distribution security updates. | Yes, for the serving runtime. |
| DNF package | Fedora and DNF-based systems | Depends on the enabled repository and PHP stream. | Whichever SAPI loads the DNF-installed configuration. | Managed by DNF and RPM package metadata. | Yes, for the serving runtime. |
| PECL | Not tied to one distribution package name | Must match PHP’s API, compiler, and development headers. | Only the SAPI configured to load the resulting module. | You must track builds, dependencies, and future upgrades. | Yes. |
| phpize/source build | Fallback when a suitable package is unavailable | Controlled by source, compiler, PHP headers, and build flags. | Only the SAPI whose extension= directive is added. |
Manual maintenance, testing, and security review. | Yes. |
For a normal application, select the maintained distribution package whenever it provides the required extension. A fallback build is justified by a concrete packaging gap, not merely because compiling seems faster than identifying the correct package.
Production checklist
- Identify whether the VPS uses Debian/Ubuntu with APT or a DNF-based distribution.
- Record the PHP version and the SAPI that serves the application.
- Search the distribution repositories for the extension instead of guessing its package name.
- Install the package with the appropriate manager and review dependency changes.
- Confirm the extension’s configuration file is present in the target SAPI’s tree.
- Enable it with Debian’s
phpenmodonly when it is installed but disabled. - Restart Apache,
httpd, PHP-FPM, or the relevant runtime. - Verify with
php -mfor CLI and an application-level test or temporaryphpinfo()page for web requests. - Remove diagnostic scripts after use.
- Use PECL or
phpizeonly when a maintained repository package is unavailable or unsuitable, and document the manual build for future PHP upgrades.
Key points to retain
Install PHP extensions through the Linux distribution package manager whenever a suitable package exists. Names differ—examples include php-mysql, php-curl, php-pgsql, php-mysqlnd, and php-gd—so search the repositories for your distribution and PHP stream. CLI and web processes can load different ini trees, which is why verification must target the SAPI running the application. Finally, restart the serving process after every module or configuration change; otherwise the old PHP process continues running without the extension.
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.

