Magento: cURL extension has to be loaded - zend-framework

I want to run a copy of one of our Magento installations on my local machine. I've copied the code, recreated the database on my local machine, configured apache, and now try to run it. I get the following message:
There has been an error processing your request
cURL extension has to be loaded to use this Zend_Http_Client adapter.
I've searched for solutions on the internet, but couldn't find a solution.
Curl was not installed, so I did this: apt-get install php5-curl
I opened /etc/php5/apache2/php.ini and looked for php_curl.dll, which was not mentioned in it. So I added the following line: extension=php_curl.dll. After restarting apache nothing changed. Shouldn't that DLL be in there? I've tried to search for the string inside /etc/php5 and /etc using grep, but no results.
Now I wonder what to do to get magento working. I don't care about Curl, this installation is meant to test, try out, and it doesn't need all options installed. Best would be if this worked, but it's not a necessity for now.

I've changed php_curl.dll to php_curl.so and that seems to solve the problem.

Related

Magento 2 can not log into Admin after fresh install

I have successfully installed a Centos Vagrant box with Magestead (http://www.magestead.com/). This worked and I was able to log into the Admin section without any issues.
However, I am more comfortable using Ubuntu, so I created a new vagrant box using Ubuntu. I set it up as per the documentation and installed Magento without any issues. I have set up the correct file permissions etc. However, when I try and access the admin section, I receive the following error. The front pages work fine btw.
Warning: file_get_contents(/var/www/html/magento2/var/cache//mage-tags/mage---ea6_BACKEND_MAINMENU): failed to open stream: No such file or directory in /var/www/html/magento2/lib/internal/Cm/Cache/Backend/File.php on line 614
I have tried clearing the pub/static folder, cleared the various var/ directories as suggested in other posts etc.
Thinking it might be an issues with the vagrant shared folders. I started again and this time installed Magento on a folder inside the vagrant box (not on the folder share). This was a lot quicker so I hoped that this might have been the reason. Alas, this did not solve my problem and I still receive the same error.
I have tried the composer install and the manual compressed download install but I have the same error on both.
Looking at the location of the missing file, I can confirm that the file is not there. When I look at the Centos box, this file is there. If I remove the folder on the Centos box (var/www/html/magento2/var/cache/), the file gets created as expected and works fine. This does not happen with the Ubuntu box, however some of the mage---ea6 files are created so it's doing it stuff.
Does anyone have any ideas?
So I figured it out after some testing.
It turned out to be xDebug (or the way I was installing it) that was causing the issue. I ran some tests and the admin areas worked fine with xDebug not installed.
I needed Xdebug for development reasons so I installed it using Pear and Magento installed fine with everything working correctly!

PHP5 - pgsql Module not loaded

I am trying to get work PostgresSQL with PHP, but i stuck on that apache error:
Call to undefined function pg_connect().
When i run phpinfo() i cannot see that my module is loaded, but i do not know why. The pgsql.ini files were loaded. And when i open them, i can see, that the extension is enabled extension=pgsql.so. Under /usr/lib64/php5/extensions there is the .so file. Even the permission are same like the other modules.
Any idea what am I doing wrong?
It would help if you could describe what operating system you are using. I'm assume Linux, but which distribution? One package that is often forgotten when installing postgresql and php is php5-pgsql. This is the connection between the two. For some reason I cannot explain, it is best if all three are installed together. So I suggest uninstalling postgresql and php and then installing postgresql, php5 and php5-pgsql. I hope this works for you!
I found it out. Some libraries where not found.
1.) First of all run php -version
2.) If there is an error where it described that some libraries are missing, you can solve it like me
3.) Search for the files on your system find / -name {LIBRARY NAME}
3a.) If you found them, just create a symlink to /usr/lib64
3b.) If not, find a way to get them and 3 3a

Error installing mail-stack-delivery

So, I'm trying to set up an E-Mail server on an Ubuntu 10.04 VPS and when I try to use the command sudo apt-get install mail-stack-delivery (the package that I usually would use to get postfix and dovecot) it throws an error saying
E: Couldn't find package mail-stack-delivery
I was wondering if anybody has had this issue before or sees something I'm doing blatantly wrong? I set up a test server earlier today using the exact same command and the package installed just fine.
EDIT: This is a fresh server, I have not done anything to it beyond whatever stock configuration is done by ChicagoVPS
Okay, the problem was that the file '/etc/apt/sources.list' didn't contain the universe repository. To fix this, just edit it with VIM and add the repository.

Can't get MAMP to load xdebug (phpinfo())

MAC OSX 10.7.5 -- MAMP 2.1.3 -- XDEBUG 2.2.3
I used the xdebug wizzard to download and install using the terminal. After following the steps
Rebooted MAMP but no xdebug in phpinfo();
I thought it was weird that the wizzard says all you have to do it paste zend_extension = /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so in the end of your php.ini file
I did add quotes around the pathname - the pathname from the wizzard came without them
Every other tutorial says there is more than just this one line that needs to be added
MAMP seems to have its own 'zend_extension = "/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"' that just needs to becommented out. Anyway I tried both the pasting from the wizzard as well as uncommenting.
Since I'm trying to use xdebug with my PHPstorm trial, I checked for the steps layed you at http://www.dotvoid.com/2012/09/using-xdebug-in-mamp/
Again it's weird: Here it says that all you need to do it add these 2 lines
xdebug.remote_host=127.0.0.1
xdebug.remote_enable = 1
It's weird because other tutorials make you add more lines (back when I tried to get xdebug on an older version of MAMP to go with netbeans without success) about the localhost.
Here's what's in my php.ini file now:
[xdebug]
zend_extension= "/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
I also checked if I'm configuring the right php.ini file, looking in phpinfo(); where it says which php.ini file is loaded. In this case /Applications/MAMP/bin/php/php5.4.10/conf/php.ini I verified if this is the correct php.ini file that I'm edititing and it is.
The last anwser in this SO question here speaks of two certain files that need to be the same binary maybe one file is 32bit binary and the other one is 64bit. When I tried to check this, the files mentioned in that question (/path/to/mamp/Library/modules/php5.3/libphp5.so) are not in my current installation of MAMP. In my current installation, I can go to Applications/MAMP/Library/modules, but there is no folder in that modules folder, leave alone one that says php of any sort.
In this tutorial, there is a mention of updating PEARL. This may not be relevant to my issue but I just followed it because I don't know really, I thought it wouldn't hurt. When I try to do that in my terminal the error message says
Xdebug requires Zend Engine API version 220090626.
The Zend Engine API version 220100525 which is installed, is newer.
Contact Derick Rethans at http://xdebug.org/docs/faq#api for a later version of Xdebug.
I found this issue in the xdebug FAQ. I quote
it is most likely because you compiled Xdebug against PHP headers that belong to a different PHP version that you're running
Further explanation confirms that the message about the zend api version points to the same issue and that two versions of PHP are colliding somehow.
The solution to this is explained on the same FAQ page where it says
Q: How do I find which phpize to use? [...]If it doesn't match up, and perhaps the wrong "phpize" binary is found on the path, you can
run configure as follows:
1. /full/path/to/php/bin/phpize
2. ./configure --with-php-config=/full/path/to/php/bin/php-config
I don't know how to interpret this in practice. But here's what I have tried
I was still in the /usr/bin and tried the first command usr/bin/phize. this returned Cannot find config.m4. Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
I don't know what they mean by the top level source directory of the module. Maybe 1. and 2. are 1 command? And the module means xdebug.so?
No matter what I try though, I keep getting the Cannot find config.m4 error whenever I just even try to run phpize. I tried running phpize from /usr/bin/phpize or from /Applications/MAMP/bin/php/php5.4.10/bin/phpize. Same error came

pecl not working on php CLI mode (involving mongoDB in Gearman)

For test purposes I have gearman running on localhost. So I run the gearman worker.php file from php command line. When I test this in normal apache mode, mongoDB works just fine, but when it runs from the gearman worker file I get the error "fatal error: class 'Mongo' not found". Now the Mongo class comes from pecl and the mongo.so extension in php.ini. SO yeah, trying to figure out why a php file run from CLI is different. Does it use a separate php.ini file?
You can check which .ini files are being loaded by the CLI version by doing php --ini. If your PHP was provided by a distro, it's very possible for it to have two seperate .ini sets, one for web-based and one for CLI. You can get the equivalent info from phpinfo() when it's running online as well.
To force it to load a particular .ini, you can use php -c /path/to/file.ini.
Well a simple find / -name php.ini answered that question for me. So yes, there is a separate php.ini file. Where I needed to add the line extension=mongo.so.
It sounds like either you're loading different ini files or you've got multiple instances of php installed on your machine and apache is using a different one. Make the script v.php:
<?php phpinfo();
then try running it from CLI and then viewing it via localhost. EG:
php v.php
and
http://localhost/v.php