Keywords: PHP Extensions | Ubuntu Linux | System Administration
Abstract: This article provides a comprehensive overview of methods to check the status of PHP extensions in Ubuntu Linux 12.04 LTS, including the use of the php -m command, dpkg package management tools, and php5enmod/php5dismod for module management. It also explores how to verify the loading status of specific extensions via custom PHP scripts and offers practical steps such as reloading the Apache server, helping developers fully master PHP extension management techniques.
Basic Methods for Checking PHP Extensions
In Ubuntu Linux 12.04 LTS, the most straightforward way to check enabled PHP extensions is by using command-line tools. Execute the following command to list all currently loaded PHP modules:
php -m
This command outputs a simple list showing the names of all enabled extensions. For instance, if zip, xml, and gd2 extensions are enabled on the system, the output will include corresponding entries. This method is quick and effective, but note that it only displays currently enabled modules and does not reflect extensions that are installed but not enabled on the system.
Checking Installed PHP Extensions via Package Manager
Since Ubuntu uses the Debian package management system, PHP extensions are typically provided as software packages. To view all PHP-related packages installed on the system (including both enabled and disabled extensions), use the following command:
sudo dpkg --get-selections | grep -v deinstall | grep php
This command filters out all installed PHP packages, helping you understand the available extension resources on the system. Compared to the php -m command, this approach provides a more comprehensive view of the installation status, including modules that are installed but not yet enabled.
Searching for Available PHP Extension Packages
If you need to install new extensions, you can first search for available PHP packages in the Ubuntu software repositories. For Ubuntu 12.04 LTS (which typically uses PHP 5.3), use the following command:
sudo apt-cache search php | grep "^php5-"
For newer systems like Ubuntu 16.04 and above (using PHP 7), use:
sudo apt-cache search php | grep "^php7"
These commands help you find installable extension packages to supplement missing functionalities in your system.
Enabling and Disabling PHP Extensions
In Ubuntu 12.04 LTS, PHP extension management is handled by the php5enmod and php5dismod tools, which are part of the php-common package. Enabled extensions create symbolic links in the /etc/php5/conf.d directory.
To enable an installed but disabled extension, use:
php5enmod <modulename>
To disable an enabled extension, use:
php5dismod <modulename>
For Ubuntu 16.04 and later versions, the corresponding tools are phpenmod and phpdismod.
Updating Web Server Configuration
After enabling or disabling PHP extensions, you must reload the Apache server for the changes to take effect:
service apache2 reload
This step ensures that the new configuration is loaded, and changes in extension status are immediately reflected in running web applications.
Verifying Extension Status via PHP Scripts
In addition to command-line tools, you can check if specific extensions are loaded by writing PHP scripts. Create a PHP file (e.g., info.php) and add the following code:
<?php
echo "GD: ", extension_loaded('gd') ? 'OK' : 'MISSING', '<br>';
echo "XML: ", extension_loaded('xml') ? 'OK' : 'MISSING', '<br>';
echo "zip: ", extension_loaded('zip') ? 'OK' : 'MISSING', '<br>';
?>
By accessing this script in a browser, you can visually see the loading status of each extension. This method is particularly useful for quick diagnostics in web environments.
Summary and Best Practices
By combining the methods described above, you can fully grasp the status of PHP extensions in Ubuntu Linux 12.04 LTS. It is recommended to first use php -m for a quick view of enabled extensions, then employ package management commands to check installation status, and finally verify specific needs via scripts. Regularly checking extension status helps maintain system stability and application compatibility.