I\'m using Ubuntu Linux 12.04 LTS on my local machine. I\'ve installed LAMP long ago on my machine. Now I want to enable following PHP extensions:
In addition to running
php -m
to get the list of installed php modules, you will probably find it helpful to get the list of the currently installed php packages in Ubuntu:
sudo dpkg --get-selections | grep -v deinstall | grep php
This is helpful since Ubuntu makes php modules available via packages.
You can then install the needed modules by selecting from the available Ubuntu php packages, which you can view by running:
sudo apt-cache search php | grep "^php5-"
Or, for Ubuntu 16.04 and higher:
sudo apt-cache search php | grep "^php7"
As you have mentioned, there is plenty of information available on the actual installation of the packages that you might require, so I won't go into detail about that here.
It is possible that an installed module has been disabled. In that case, it won't show up when running php -m
, but it will show up in the list of installed Ubuntu packages.
Modules can be enabled/disabled via the php5enmod
tool (phpenmod
on later distros) which is part of the php-common
package.
Ubuntu 12.04:
Enabled modules are symlinked in /etc/php5/conf.d
Ubuntu 12.04: (with PHP 5.4+)
To enable an installed module:
php5enmod <modulename>
To disable an installed module:
php5dismod <modulename>
Ubuntu 16.04 (php7) and higher:
To enable an installed module:
phpenmod <modulename>
To disable an installed module:
phpdismod <modulename>
Reload Apache
Remember to reload Apache2 after enabling/disabling:
service apache2 reload
For information on php extensions
etc, on site.
Create a new file and name it info.php
(or some other name.php
)
Write this code in it:
<?php
phpinfo ();
?>
Save the file in the root
(home)of the site
example.com/info.php
All the php
information on your site will be displayed.To check if this extensions are enabled or not, you can create a php file i.e. info.php
and write the following code there:
<?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>';
?>
That's it.
Search extension in
/etc/php5/apache2/php.ini
Perhaps the easiest way to see which extensions are (compiled and) loaded (not in cli) is to have a server run the following:
<?php
$ext = get_loaded_extensions();
asort($ext);
foreach ($ext as $ref) {
echo $ref . "\n";
}
PHP cli does not necessarily have the same extensions loaded.
You can view which modules (compiled in) are available via terminal through php -m