Is anyone using couchbase 2.0 with PHP 5.4? I ask because the PECL libraries for PHP appear to not support PHP5.4's new interfaces. This is a real bummer as I'd really like to start taking advantage of 5.4's support for JsonSerializable which would appear to be a nice compliment to folks living in the JSON world of Couchbase.
I've used PHP 5.4.x, specifically I used the Bitnami MAPP stack, which comes with the couchbase.so already built for 5.4 (although you can do that yourself easily from the source). Then connected it to my local Couchbase instance (in my case I used the Laravel framework).
My Blog: http://blog.couchbase.com/easy-php-couchbase-setup-mac-bitnami
But now the couchbase.so is already in the Bitnami stack... so you can skip that part.
Bitnami MAPP: http://bitnami.com/stack/mapp
Bitnami MAMP: http://bitnami.com/stack/mamp (also can be installed via Mac App Store)
Related
I'm dealing with a legacy firebird database and can't seem to get it to work with PHP7.4.
The interbase extension isn't available anymore in PHP7.4, I can only install PDO_FIREBIRD.
There are also no releases on PECL.
https://pecl.php.net/package/interbase
Any hints how to make it work with 7.4?
Recent versions of PHP indeed no longer ship with the interbase package. Instead you can use the Firebird PHP driver, which is a fork and continued development of the interbase package.
Well, I faced some caveats while dealing with legacy Firebird data structures.
To put it simply, I had to address two broad issues:
1 - Match client libraries with dataset On-disk Structure (ODS)
Each Firebird version supports a limited range of On-Disk Structures (ODSs). The following link has a pretty nice reference on this topic:
https://ib-aid.com/en/articles/all-firebird-and-interbase-on-disk-structure-ods-versions
ADODB and PHP PDO are abstraction layers to client libraries in the host system. And PHP 7.4 supports only FB 3.0 and later clients. So, it is necessary to match the abstraction layer with the client library available.
For datasets up to FB 2.5:
disk structure should be up to ODS 11;
client version should be up to FB 2.5.9 (recommended);
PHP engine should be up to 7.3 (7.1 already has issues);
legacy functions ibase_ and fbird_ should work fine;
ADODB, PHP PDO, etc. should not work.
For datasets starting from FB 3.0:
disk structure should be ODS 12 or higher;
client version should be FB 3.0 or higher;
PHP engine should be 7.4 or higher;
legacy functions ibase_ and fbird_ should not work;
ADODB, PDO etc. should work fine.
2 - Match client and server platforms and params
For any client and server combination:
the client and the server should share the same platform, 32 or 64 bits;
the connection should use SQL dialect 1 or 3, depending on legacy dataset usage;
the character encoding should be WIN-1251 (legacy) or UTF-8 (new default).
Opinion
In my experience, it is difficult to "force" legacy FB connections into an up-to-date PHP engine. I suppose it is more challenging with Linux systems because libgcc has different entry points from versions 5 to 6 (I guess...), and musl just ain't supported.
Things are more flexible in Windows since fbclient.dll is the only client library needed for the connection, and it depends on Win32 libraries that have maintained the same entry points over the years.
I'd recommend upgrading the dataset to Firebird 4 and using updated extensions and clients. However, if this is not an option, downgrading should be streamlined from the host OS, through the PHP engine, until the FB client.
Unfortunately, I believe "this is the way."
All the best.
Recently I have problems connecting firebird with php. I went through many questions until I discovered that there has to be 3 dll's inside the apache bin folder. gds32.dll
msvcr71.dll
fbclient.dll.
Without these dll's it doesn't work, for some unknown reason the new version of xampp came missing.
I have recently installed Windows Server 2016 and I'm trying to get my IIS 10 set-up to create a site.
The PHP 5.6.30 installed just fine, but the PHP Manager 1.2, WinCache 1.3 for PHP 5.6 and CGI didn't install!
The dialog image:
The PHP Manager log: http://pastebin.com/Y9Ud1XUU
The WebPI log: http://pastebin.com/H13fJU0Z
I've tried setting the MajorVersion to 7 (and other values), but the installer still fails. I have .NET 4.5> installed.
as far as i know this addon/tool has not been working since the release of Windows Server 2012 R2.
i have still to find Another tool like it, but so far nothing has come up
though i have found this solution:
https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/php-manager-for-iis-on-windows-10/33ef32f0-6a86-4803-abc1-6de81110f9a8
(confirmed to work, just remember to restart the IIS manager)
PHP Manager requires .NET Framework 3.5 installed and may require a small hack in the registry as outlined here:
I was able to find a workaround at the PHP manager's site.
Just make sure you have .NET 3.5 installed and modify the following registry:
HKLM/System/CCS/Services/W3SVC/Parameters/MajorVersion
The value is 10 (Ax0). Just change the value to 9 (or 8), then try to install it again.
To avoid future issues with other IIS stuff, change back to 10 (Ax0). It seems that PHP Manager validates the value converting it into string or something related.
On my Windows Server 2016 machine for some reason the Web Platform Installer (downloaded from https://php.iis.net/) gave me a less recent PHP version (5.3.28) than yours, but all components were correctly installed, with the exception of PHP Manager (which I was expecting given it has been discontinued, and I didn't really care anyway...):
Also, if you want, you can install the components manually, by following this detailed post:
Steps to Install PHP manually on Windows 2016 server
It's really not complicated and it will give you a better understanding of what is not working, should that be the case.
With the help of above article I could also verify that the Web Platform Installer did not miss any important parts (modifying php.ini as required by extensions, setting environment variables, and so on).
Hope it helps.
We have several Windows Server 2012 R2 servers with PHP Manager running without problems (sorry Robert). I have just setup a new one and added PHP Manager and others by installing PHP 5.6 with Web Platform installer. The only thing needed extra was .NET 3.5. Have you tried to setup with .NET 3.5 installed?
When you try to install PHP Manager using the direct download link, the setup will ask you to install .NET 2.0. That isn't necessary :).
I understand LAMP, MAMP and XAMP are solution stack. I also understand there are frameworks like Laravel and Symfony.
If I have to start PHP development in a proper manner, Is it required to have a solution stack installed first and then the framework to have a professional set up?
If the answer is yes, then I am assuming the versions of the software inside the package is quite important for compatibility with the framework. Is there a popular combination out there?
And In Live, I suppose, I just to need to have the solution stack installed for the package to run.
My dev machine is a MAC with OSX 10.9.5 and my Live is going to be in Linux. I need to make sure these fundamental knowledge is concrete before I start the work. Any help is much appreciated.
Laravel has a all-in one virtual box solution. It's called as Homestead. Homestead works on many platforms such as Linux, MAC, Windows and contains everything you needed:
Ubuntu 14.04
PHP 5.6
HHVM
Nginx
MySQL
Postgres
Node (With Bower, Grunt, and Gulp)
Redis
Memcached
Beanstalkd
Laravel Envoy
Blackfire Profiler
If you decide to go with other solutions you will probably face with many problems like enabling essential extensions and with changing some system settings.
Besides you can use this solution for pretty much every kind of php framework or code.
Just follow the steps in the guide and almost everything will be ready to use just in few minutes after download finishes.
Laravel is good choice as there is big community and Google trends show it is growing very fast.
As it is PHP then you need to have server which processes the PHP. Usually it is Apache2.
Many people like to use MAMP, XAMP to simplify their development. I prefer to use standard Apache2 myself and you can even just rely on Laravel/PHP builtin server that you can start with php artisan serve, It will be enough for defelopment purposes.
I just fail to understand why couchbase does not provide a php extension for use on "windows" & IIS 7. Is there some efficient other ways of connecting & working with couchbase using php on windows?
I just set up the Couchbase client library today (PHP 5.4 NTS under IIS7). The directions posted at Couchbase's page for the PHP Client Library are accurate for the most part but I wanted to clarify where the dlls go.
Download the zip containing php_couchbase.dll and libcouchbase.dll. Generally you will want the NTS (non-thread safe) version under IIS.
Put php_couchbase.dll in the extensions directory.
Put libcouchbase.dll in the php directory (same directory as php.exe/php-cgi.exe).
If necessary, install the Visual C 9 runtime from Microsoft.
Enable the extension in php.ini
I initially put libcouchbase.dll in the extensions folder per the directions on the Couchbase site. That will not work. (Generates the PHP "the specified module could not be found" dll load error.)
The above only gives you the Couchbase client. You also need a server; that can be locally on the Windows machine or somewhere else.
The Couchbase client SDKs are quite important because they are "cluster aware".
The SDKs, including the PHP one will automatically use all the nodes of the cluster using vBuckets and they will be notified when the topology changes (add new nodes, failover, ...)
Also if you are using Couchbase 2.0 the SDK provides you API to call the views and do more advanced queries on documents.
So the best practice is to use the PHP SDK, that use internally the memcached protocol.
I am inviting you to read:
- http://www.couchbase.com/docs/couchbase-devguide-2.0/couchbase-clients.html
- http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-introduction-architecture-vbuckets.html vBuckets used to manage the auto-sharding.
- http://www.couchbase.com/develop/php/next the PHP SDK main page
A more advanced topic that explains how to developer a client SDK:
- http://www.couchbase.com/docs/couchbase-devguide-2.0/creating-client-library.html
I suppose you are referring to Couchbase 1 (and not the 2.0 version which is currently in Beta).
Couchbase is compatible with memcached. That means you can use any memcached-compatible client to access it, e.g. PHP's memcache or memcached functions.
Update:
If you want to get your hands dirty and compile the PHP extention for the Couchbase SDK yourself, here is a tutorial that guides you through the process.
I have developed a PHP site with PHP 5.3, and would like to deploy it to a server running PHP 5.1.1. My site depends heavily on the PHP SOAP library, since pretty much everything that isn't a presentation task is done by a Web Service. Does PHP 5.1.1 support the SOAP library? Apparently, it doesn't come with the default PHP installation, so, where could I download it?
Before answering your question, I want to mention that you really should upgrade (or convince whoever is in charge) to 5.3.
That said, soap is available, but you must compile with --enable-soap. If you're on a system that uses a package manager, you may try apt-get install php-soap, yum install php-soap, etc. If you're on windows, you may have to download php_soap.dll.
SOAP should be able to run on any version of PHP 5. However, it's important to note that prior to PHP 5.2.9 the SOAP extension is only capable of understanding WSDL 1.0 and 1.1 formats.
To enable SOAP support, configure PHP with --enable-soap.