I have centos 6.5 server and when I try to install php extension using pecl I get the following error:
XML Extension not found
All the documentations say that this extension is included by default... Why this error still exists?
According to a comment on php.net
Certain Linux distributions do not have this extension included in the minimum PHP package. It can usually be found in one of the "optional" php-* packages.
For CentOS, you will need to run yum install php-xml, which provides this extension.
So please try to install it using:
yum install php-xml
Also check your php.ini and make sure that the extension is not commented out with a ; it should be listed as:
extension=dom.so
In order to be absolutely sure whether or not a module is enabled you should use phpinfo()
Ubuntu 20.04 and phpV7.4 perfectly work. Try this one
sudo apt-get install php-xml
Related
I have an Ubuntu 16.04.6 machine and need the SOAP extension enabled for PHP 7.4, but right now it's only installed for 7.0 The extension itself is present in path /usr/lib/php/20151012/soap.so
I've used apt-get remove php-soap and the apt-get install php-soap but it does not get installed anywhere except the 7.0 folder. I have noticed in the 7.0 folder there are certain files and symlinks, which I have duplicated into the 7.4 folder structure. /etc/php/7.4/mods-available now contains soap.ini and a symlink to it named 20-soap.ini was placed in folder /etc/php/7.4/fpm/conf.d This is in keeping with all the other extensions, which were all installed almost exactly a year ago when I upgraded PHP.
In the php.ini file I have uncommented extension=soap.so and I have tried changing that line to extension=/usr/lib/php/20151012/soap.so
service php7.4-fpm restart
service nginx restart
All this to no avail. Can someone slap me upside the head and tell me what I'm missing? Should I try deleting previous PHP versions, then reinstalling the soap extension? I've seen threads mentioning specific packages for 7.4 such as php7.4-soap but this is not found in my repositories.
Any help is appreciated!
Try this command apt install php7.4-soap
sudo add-apt-repository ppa:jczaplicki/xenial-php74-temp
sudo apt-get update
sudo apt install php7.4-soap
This is adding an external PPA repository to your system. If you do not trust the maintainer you should not do this, since it possibly exposes your system. Also note that this might work for installing php, but there will not be a guarantee that you recvive updates through it (The word "temp" in the repository name indicates that this is only temporary). I would rather recommend compiling it yourself if you really need to have it installed on 16.04.
Also this will install you php version 7.4.13 , you may have to remove the already installed php 7.4 , and reinstall after you add this ppa
When I try to install a module through PHP PECL through cpanel or whm (CENTOS 6.3 x86_64 / WHM 11.34.0 (build 7) ) I always get this result:
ERROR: `/root/tmp/pear/imagick/configure --with-imagick' failed The
Imagick.so object is not in
/usr/local/lib/php/extensions/no-debug-non-zts-20090626
Here in another example with html_parse:
ERROR: `/root/tmp/pear/html_parse/configure --with-ekhtml' failed The
html_parse.so object is not in
/usr/local/lib/php/extensions/no-debug-non-zts-20090626
I have googled it, done the suggestions and always the same result.
What library are you trying to install?
I've found mixed results using pecl on Redhat, centos, or fedora machinces if I've ever used yum to install their versions of PHP libs. The easiest way around your issue would be to look to see if it's in the Yum repo and install it that way:
yum search 'modulename'
yum install 'packagename'
I usually just do a yum search php and scan down the list of modules.
If you want to use pecl or can't because the libraries aren't part of yum, I'd remove the natively included version and build your PHP from scratch. You can remove PHP and related libraries installed with the distro via yum as well.
I have a similar server setup and I needed pecl_http. Instead of using WHM (Home »
Software » Module Installers) I used command line. Simply typed: pecl install pecl_http
It should be the same for other modules like the html_parse, just change the module name, like: pecl install html_parse
Figured I'd add this for anyone else looking for this info.
I'm currently experiencing error on my application using php. here is the error message
Error - mPDF requires mb_string functions. Ensure that PHP is compiled with php_mbstring.dll enabled.
I'm using third party library to generate pdf file (MPDF). It works fine on my loaclhost (windows) but when we deploy it on the linux server, it throws the above error.
Can anyone help me on what's going on and how could I fix it. It seems that the php_mbstring.dll is missing on our linux server configuration.
if (!function_exists("mb_check_encoding")) {
die('mbstring extension is not enabled');
}
And if you get that error, then rebuild PHP from source with mbstring enabled, or apt-get to include it in the build
I was having the same problem on CentOS Linux. "yum install php-mbstring.x86_64" fixed it for me
On Debian or Ubuntu, the mbstring package is not pulled in by default when you install php. You can fix this mPDF error with:
apt install php-mbstring
Edit php.ini and extension=php_mbstring.dll remove the ;after which run the following commands
For php7.0
sudo apt-get install php7.0-mbstring
For php5.6
sudo apt-get install php5.6-mbstring
worked for me :)
Find your php.ini, uncomment the line with the extension, and restart the server
I had PHP 5.2 with MongoDB installed on Debian Lenny x64 and everything was fine.
After updating PHP to 5.3 (dotdeb) I can't get MongoDB to work, I always get an error
Fatal error: Class 'Mongo' not found (...)
Everything else works fine, all default modules are working.
My php.ini:
extension_dir = "/usr/lib/php5/20090626"
extension=mongo.so
Mongo.so is in same location as written above.
But when I run php -m in console to check loaded modules, "mongo" isn't listed there.
I can't use dl('mongo.so') to load module at runtime, because this function was deprecated in PHP 5.3.
May be I should recompile mongo somehow, I just don't know how to do that because I'm not very good in *nix commands.
Thanks for your help!
UPDATE
Also may be it's worth saying that before my mongo.so was in /usr/lib/php5/20060613 and I manually copied it to "/usr/lib/php5/20090626" because it seems that after updating my PHP all modules are located there.
The extension module api has changed between php5.2 and php5.3. When php tries to load an extension module both sides have to "present" an api magic key that identifies the api version. If those numbers don't match the module is not loaded/activated.
Try sudo pecl install mongo again to get an extension module that fits your new php version.
Try re installing mongo & restart service
sudo pecl uninstall mongo
sudo pecl install mongo
sudo service apache2 restart
This will install mongo in to newer version
I spent a little time trying to fix this, I am guessing you had a previous mongo install. The way I fixed it was by:
I installed php5-dev:
sudo apt-get install php5-dev
cd /etc/php5/apache2/conf.d/
sudo rm -rf mongo.ini
I then viewed my php.ini and removed extension=mongo.so
Then:
sudo pecl uninstall mongo
sudo pecl install mongo
sudo service apache2 restart
I'm trying to install pear on my centos.
I've used "*yum install php-pear**" to install pear and it seemed to install with success. No errors. I restart my server.
However when I check out phpinfo(). I see that my php is still built using "--without-pear".
Isn't yum supposed to rebuild my php with pear? What would be possibly going wrong?
Thanks!
Try something like
$ pear list
and
$ pear info PEAR
- now if you get a listing of installed packages in the first case and information on what version of pear is installed in the second you're ready to use it.
The output of phpinfo() is correct; the binary was built without PEAR. Fortunately what it says there doesn't matter. Look into the sections below to see what is currently available.
yum does not rebuild anything. It downloads the necessary software modules and installs it on your machine. Your stock centos php does not have pear pre-compiled, but it will still be able to use pear once you've downloaded your modules.
If you cannot run pear, make sure you have the executable included in your path, or use "locate" to find it.
You might still need to configure PEAR, did you check the PEAR site?
Resolved, I have installed the given packages and restarted the server.
Try this
yum install php-pear php-gd php-pear-DB -y
service httpd restart.
it works