PHP Pear -- 'MDB2\Driver\mysql.php' missing - php

I've inherited a huge project, and I'm having a real time just trying to get the damned thing on its legs. Every time I run the project, amongst all the Strict Standards and Depreciated notices is one error:
Failed opening 'MDB2\Driver\mysql.php' for inclusion
From what I've read, DBMS drivers stopped being included in default Pear installations over five years ago... So how I can fix this so that either it doesn't use mysql.php anymore, or that my Pear installation DOES have it?
According to the Pear website, I just need to type: pear install MDB2_Driver_mysql but I'm wondering if it wouldn't just be better to change the code?
Thanks!

You say the project is huge, so I would suggest you don't rewrite it to use a different DB access library as that could push out your release date quite a bit and instead just install the required MDB2 driver.
To install the mysql driver, just do:
# pear install --alldeps MDB2_Driver_mysql
(and maybe consider using the mysqli driver instead)
If you do decide to migrate the project to use a different library, I'd suggest Doctrine as it is one of the mature DB libraries out there.

It sounds like you are trying to run PHP code written for an older version on a version of PHP that does not like some of the code.
Also see this for some insight on what you actually have to have installed on the PC running wamp in order to actually access a DB2 database. Are you sure you have all of this installed before you try to install via PECL?

Related

Trying to get icu4c version 64 working with PHP 5.6 on Mac Catalina

I just got handed a big project running Symfony 3.4, and PHP 5.6, that I'm trying to get working on my "new" Mac Catalina (just purchased and installed, not upgraded from a previous macOS version), and I've gotten things working up to a certain point:
our-symfony-3-project $ bin/console server:start
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/php#5.6/bin/php
Reason: image not found
zsh: abort bin/console server:start
I was able to fix a previous similar error with needing openssl 1.0.0 (I had to compile it from source using Homebrew then link it), and I think the solution is the same here, but it appears that I need to find the library or repo or download for icu4c version 64 (not sure I'm reading this right) to get brew extract to install it (it won't any other way), or figure out how to compile it and manually get it working for PHP 5.6, and I'm not finding the library I need apparently.
I've gone through pages and pages and probably a hundred command attempts trying to fix this error... and so far the recommendations have either been outdated (due to macOS/brew changes), or just didn't work.
I'd like to know where I can find the appropriate file/download/repo to just be able to install or compile this through brew or otherwise. PS: I know we shouldn't be using old versions but I just got this job and the company will not upgrade for a while.
I'm answering this by saying that I got the repo to work on a PHP 5.6 host using MAMP Pro (and Apache, not that that's relevant)... which already had the required libraries in question.
I went through the docs on the trial version (version 6.3.2):
https://documentation.mamp.info/en/MAMP-PRO-Mac/Settings/Hosts/General/
However, unlike Homebrew, switching PHP versions across hosts in MAMP Pro doesn't overwrite PHP symlinks like brew unlink and brew link does, I have to still edit my .zshrc file aliases and my PATH to have things like php (or pecl or pear etc) point to the MAMP Pro PHP version folders to get them to work correctly with the repos, as well as with composer (which runs the php command). Even MAMP's documentation says to modify the files yourself...
I can't tell yet if this difficulty is just natural to having multiple hosts with different PHP versions configured, as I could see how multiple variations running at the same time could conflict if they're using the same system files (like /usr/local files)... which sound like system software dependencies, and I don't know that these dependencies could be relegated to their own host folders (like /Applications/MAMP/bin/php/php5.6.40 folders), or maybe I just missed something somewhere. I'll update this answer if I learn better what to do here, or will add another answer if I find a way to do them using Homebrew better.

Working with yaml

Me and a friend of mine are working with a project. She was responsible for a part of it, while I would add some functionalities to her code. So she send me her code and I should make it work in my machine and add my part.
However, I'm facing this problem. She has used yaml in the project (which I had no idea it existed before, I don't do web programming, only algorithm implementation). I tried to follow her instructions but got stuck at
Fatal error: Call to undefined function yaml_parse_file() in /var/www/html/cdn/map_of_site.php on line 8
So I thought that I should install the yaml library (which I think I did correctly).
I also added the yaml parser in the php.ini
But the error continues to appear.
The worst part is that I won't be able to get in touch with her for a couple of days (and I kind of dislike telling her that I don't know how to make her code work).
Could you please tell me in general what is required to make a project that uses yaml_parse_file() function work? Like what should I install or where to install it ...
PS: I work with linux mint and the project is php
Your frend used a php module that you don't have installed or enabled.
You can try to install it in the regular way (I don't know linux mint myself):
- apt-get install php5-yaml
- yum install php5-yaml
Or something like that.
If yaml is not available like that, you can try to use pecl.
You need this package: http://pecl.php.net/package/yaml
If you have pecl installed on your system (apt-get install pecl), you can just do pecl install yaml.
Usually when the extension is installed it is also directly enabled. You can test if it is enabled by creating a php file with <?php phpinfo(); ?> in it and running or visiting it (then search for yaml).
It turned out I hadn't installed yaml correctly. This article and the instructions that linux itself gives (<3) helped me solve it:
https://code.google.com/p/php-yaml/wiki/InstallingWithPecl

How to enable SSL extension for Composer?

I am trying to use the PayPal PHP SDK to make an online store, however the documentation tells me I need composer. When I try to install composer I get this error. I have no idea what this means, or how to fix it. What can I do to fix this? I
P.S. There are quite a few questions about this on SO, however, all of them that I have seen ask about using WAMP or something similar. I have no intention of using WAMP, or anything like that. The only thing I am trying to do is install composer properly.
EDIT: I am just using the Composer installer for Windows.
You need PHP installed whether you have a full test environment running or not. If you can't run PHP from the command line Composer stuff doesn't work. With a basic install of PHP the openssl extension is included so that error would go away.
You can install PHP manually on its own, or you could just install WAMP or any of the many others. I use Zend Server myself. It just installs everything for you so that it works without needing to mess with manual installation.
Once PHP in general is installed, though, that should get rid of this error.

cleaner way to install Apache, MySql and PHP on windows

I really say its a very hard time for me when started to install these 3 things on my windows 7 platform. I know there is WAMP available to install at one shot. But I for good understanding I want to install these 3 separately and want to integrate it. Why its so clumsy and difficult for integration? Can anybody please advise me how I can do the following?
Which latest versions of these 3 are best compatible?
After installing Apache what in which mode I should run it? Console application or Server Mode?
In apache whats the difference if I run with CGI or without CGI?
What the things or modules or any changes I have to ensure before going to install the MySql and PHP?
When I installed the MySql it tell me that MySql server is installed. Is the my MySql server is another HTTP server? Is it a replacement for Apache?
After I install the PHP what are the minimum things I should check so that I will be ensured that it will work with Apache after integration.
I found the logfile locations for Apache. But where can I find the logfile locations for PHP and MySql?
May be I am newbie in this domain so I am asking these questions. But it will help anyone who want to start newly. Please advise me...
Ok, I still dont see why you dont want to just install a package like WAMPP/XAMPP or Zend Server CE (personal favourite atm).
Put it this way:
Generally speaking, all latest versions are compatible, meaning,
latest PHP + latest MySQL + latest Apache
Typically server mode, but this really depends on what you want...
this is not something for noobs, again rather use a package
Do you want CGI? or not? Read the documentation on
http://httpd.apache.org/docs/2.1/howto/cgi.html
Dont bother, this usually isn't necessary - again use a package
Mysql is a Database Service
Browse to http://localhost/ if it works, then it works. Libraries depend on your personal needs, if you for example need php's
MCRYPT library installed, you'll know - install it... if it's
already installed, it will work anyway
Google it
I doubt this will help you much...

PEAR location on install?

I'm trying to install PEAR, but I'm confused by the locations suggested.
I'm using Wampserver to run my PHP scripts, and I wanted to do unit tests. So I found PEAR.
I tried installing via the go-pear.bat file, but that didn't work.
I found out more about this here: http://blog.pear.php.net/2009/07/01/php-53-windows-and-pear/
So I downloaded the php file. The comments in the file suggest I
Put go-pear.php on your webserver,
where you would put your website
I find this a little strange. Still, I put it in the folder along with the other php files. Here's what I was presented with:
Maybe it is because I'm not very experienced with this, but I would initially believe I should put PEAR in a central location, using 1 pear install for all possible future projects.
Or is this the prefered configuration? And why?
Using a central location is the standard approach - it sometimes makes sense to have individual installs though, particularly if a speficic project requires older versions of some pear packages and would break if newer versions were installed.
Here's a pretty straightforward tutorial on how to set up PEAR on Wamp.
http://trac.symfony-project.org/wiki/HowToInstallPearOnWindowsWithWamp
You may have missed a few steps like adding PEAR to the PATH for Windows.
Also if you have a lot of problems with WAMPServer (I used to) there are alternatives like Zend Server Community Edition. http://www.zend.com/en/products/server-ce/index

Categories