xcode developer tools and php - php

Can someone please explain what is the role of xcode developer tools in developing php applications and installing extensions?
Between Mamp Pro, xcode developer tools and extensions which doesn't seem to install and configure amongst the million available php.ini files, I am losing my mind.
Two days and I don't seem any step closer to running and debugging a simple app which only requires http.so.
It's insane.

Ok this is the response from MAMP PRO support.
At this point you cannot install extensions. From what I understand is header files get created when the separate versions of php are compiled. These header files are needed to compile additional extensions for that particular version/setup of php.
We had these files available in the past for some versions of MAMP PRO 2.x . We have not made them available for any versions of MAMP 3.x . We may come out with a developer edition, which will include these. I don't know when or if this is. I would open another ticket in January and see if there is any progress on this.

Related

What is the easiest way to distribute a PHP extension written in C

I created an extension for djondb, it's a wrapper of the library which is a C++ Library, I compiled it and it's available to be downloaded from djondb site, I'm not an expert on PHP and I've been having some problems with the distribution, mainly I realize that I need to do each compilation for each platform and create an installer for each one, which is time consuming, what I want it's a to ditribute the source code and allow the user to install it in the easiest way,
What I already tried:
Using phpize, configure, make, sudo make install the user can install the library very easy on Linux and Mac, the problem with this is that users need to have g++, make, etc installed on their computers, and this process of installation does not work on Windows.
Compile for each platform (Linux x86, x64, Mac, Windows, etc), and upload each tar.gz to the site, the user download it and place each file in the correct folder. the problem here is that the configuration is too manual and the users tend to miss some step, and it's not user friendly. The other problem is that I need to compile each version using a virtual machine and that's time consuming. (Now I'd to include versions for PHP 5.3 and 5.4, this means 8 virtual machines to create all the binaries)
I tried to create an account on PEAR but the registration screen always said that I dont need an account for the purpose I'm creating... (seems that it's a common problem in PEAR system but didnt find how to create the account to propose the package).
Did a proposal on PECL but nobody answered to the mailing list, seems that it's very common too.
So I'm stuck at this moment with the 1 and 2 ways to distribute, what is the best way to distribute a PHP extension that is created using C++ in a user friendly manner and easy to install?
Thanks in advance, you can see the code of the project at https://github.com/djondb/djondb_phpext if you have more questions about how the project is structured or the full explanation of the phpize/configure/make process.
Take the middle road: Distribute the source for Linux / OS X users, who can build it themselves, and offer compiled DLLs for Windows users. That will at least limit the number of versions you need to compile.
As a PHP developer who maintains the extensions we use in our company, it is PERFECTLY fine to give only the source code and expect the users to compile it on their machines.
If you want to be nice, compiling a version for each machine you support yourself, is also an accepted way (See Zend for example) and leave it somewhere easy to download (like sourceforge/github etc).
Then, just listen to the users and improve your (release) system as you go.

Changing PHP version on Wamp? Trying to load Zendguard or Ioncube

I have been trying for hours to fix this issue, I recently purchased IP.Nexus, an add-on to the Invision Power Board forum software(it is a shop front for the forum). There are two versions I may download, Zendguard locked, and Ioncube locked. I tried both, and I tried download the proper versions of both loaders. Little did I know that ioncube did not work on 64-bit computers, and soon after figured out that Zendguard does not work on PHP server with thread safety enabled!
Question is, how do I change the PHP version on wamp? I understand that they have add ons to downgrade or upgrade but I believe that all of them are thread-safety enabled. I want to continue using wamp since I don't know how to use a different webserver. Thanks a bunch!!

Ubuntu server 11.10 and PHP 5.2 for use with Drupal 6

I'm trying to figure something out:
I am using Ubuntu server 11.10 virtualized on Win7 (I don't think that matters but more info is better than less) to work on a Drupal 6 website I inherited and need to make significant changes to.
I want to set up a development copy of this Drupal website on my Ubuntu server so I can work without worrying about torching the production website.
I successfully got the production files downloaded and onto my machine, I got the production MySQL database exported and imported into the dev MySQL server, and I set up a symbolic link from the directory /home/myname/thewebsite.com to /var/www/thewebsite.com so I can easily access it.
When I got the website they didn't know the admin password so I dug around online and reset it in the dev db using phpmyadmin and finally log in.
When logging in and poking around the site there are lots of errors, which when googled lead me to believe that PHP 5.3 is causing them and that there are some modules in use that only work with PHP 5.2
After looking around a lot online and on stackoverflow there seems to be no easy way to install PHP 5.2 on Ubuntu Server 11.10. With no packages for 5.2 available through apt-get or aptitude what should/can I do?
1) Install 5.2 from source - how do I get it to interface with MySQL and Apache2? Also, I've never installed anything significant from source. Is there a walkthrough?
2) Replace the repositories with old ones? Will this work on 11.10? The newest instructions I found were for 10.04
3) Use already built PHP 5.2 packages for Ubuntu? Couldn't find these
4) Pay someone who knows more to do it for me? (Just kidding, this isn't really an option...)
Cheers and thanks for your help!
PHP dropped support for 5.2 in August 2011; operating system providers such as Ubuntu will not supply a version that is out of support, so you absolutely won't get an official copy of PHP 5.2 on the current version of Ubuntu (or any other OS).
If you're running an older version of Ubuntu (eg 10.04), you might be able to do it; it would still be a downgrade, because PHP 5.3 has been the default version for quite a long time now.
If you're on a newer version of Ubuntu, ie 11.10 as you state, it is going to be a problem for you.
The Drupal developers dropped the ball badly on this one. I guess it was because Drupal 7 tool so long to finish; they were expecting D7 to be out much sooner, and so they never bothered fixing up D6 to work with PHP5.3. As it turned out, this was a big mistake, because in fact D7 still wasn't officially released when PHP dropped support for 5.2.
But even so, they should have fixed it, because they're still officially supporting Drupal 6, so they need it to work with the current version of PHP. This is definitely Drupal's problem, not PHP's, Ubuntu's or yours.
But you still need to deal with it.
I found this question over on AskUbuntu.com, which gives an answer applicable to 11.04. It isn't quite 11.10 you were asking for, but it it a lot more recent than the best you'd found, so it might be helpful.
Alternatively, you could research exactly what it is about Drupal6 and your specific modules that doesn't work in PHP5.3. The language differences between 5.2 and 5.3 that can break things are not big, so I would expect any code changes required to be fairly small. You might find you can fix the code yourself. And maybe even submit the changes to the community -- Drupal is open source, after all.
Another tack you could take is to consider whether this saga represents an opportunity for you to move the site to Drupal 7?
This may or may not be feasible, depending on the modules you're using, etc, but if it is possible, it will solve the problem, because D7 is of course fully compatible with PHP5.3.
And just to cheer you up, I'll close by mentioning that PHP are on the verge of releasing PHP 5.4. Hopefully the Drupal devs will be more on the ball this time.

Optimal setup for OSX PHP development environment: MAMP + Eclipse + Subclipse + XDebug? Other?

I'm in the process of switching over to developing on a Mac (woohoo, new Macbook Air) after years of Windows. My previous PHP development setup was:
WAMP
NotePad++
XDebug
TortoiseSVN and WinMerge (linked to an Unfuddle svn account)
I've just installed MAMP Pro (evaluation copy of Pro), Eclipse for PHP Developers (Version: Helios Service Release 2, Build id: 20110218-0911), and Subclipse. I'm trying to get over the "new to Mac" hump at the same time as switching dev tools. Which is making me question my setup eleventy billion times more than usual. I've read lots of StackOverflow questions and answers, googled the heck out of dev environment tutorials. What I really want to ask is "PLZ tell me what to do to get a good dev setup on my pretty new Mac!" but since that's probably not a very well-formed question, I'll try to narrow it down some. (But if you get bored reading this question, and just want to point me to a good book or tutorial, FEEL FREE!)
MAMP: OK, I think I'm fine on this one, right? It's pretty much the defacto standard, if I don't want to hammer everything together myself from what came pre-installed on my mac. I'm probably fine with dropping $60 to get MAMP Pro, as developers I know have told me the long-term convenience is worth it.
IDE: I used Eclipse for several years... but for Java development in a Windows environment. Part of me is happy to get back to a full IDE after a few years of PHP in Notepad++. But do I want Eclipse for PHP? EclipsePDT? Something else? I picked the version I have based on several StackOverflow answers mentioning that EclipsePDT didn't necessarily play well with Mac.
SVN: I took the StackOverflow hive mind advice to install Sublipse for the eclipse integrated SVN plugin. Yay, it looks like it's working, or at least I can browse my repository.
Debugging: Zend Debug comes with MAMP, right? I've never used it, but I was only semi-happy with XDebug + Notepad++ on my Windows box, as it kept locking up and requiring a Notepad++ restart multiple times a day. Will I love Zend more? Should I stick to XDebug? (Or, wait, does Zend only work with Eclipse PDT?)
Now for the actual setup questions. Given that I've got existing Unfuddle SVN repositories, what's the best way to set up my dev environment? Put the source code into the MAMP htdocs directory, and point the eclipse workspace there? (recommended by many SO answers, IIUC) Vice versa, with code into the default eclipse workspace, and point MAMP to it? A separate Projects/myProject1 directory, pointing both MAMP and Eclipse there? I'm concerned that any of these options will work for the initial setup, but that I'll get deep into the work and discover that my debugger won't work for one configuration or another, or... I dunno, something I haven't thought of yet will cause a problem I could have avoided, if only I'd known.
OSX (also the client version) already includes everything you need to develop with PHP! Oh, and it's all 64 bit :) (on Snow Leopard and Lion)
Apache 2 is included by default and can be enabled from System Preferences -> Sharing (its name is "Web Sharing", or something similar: I'm sorry but I use OSX in another language!).
PHP is installed by default too. You just need to enable it in /etc/apache2/httpd.conf: uncomment this line:
LoadModule php5_module libexec/apache2/libphp5.so
MySQL can be installed from binary packages, downloaded from: http://www.mysql.com/downloads/
The only things you need to change in the php.ini file (/etc/php.ini) are:
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
You need to manually set the socket location for MySQL or it won't work with PHP.
Also, remember to set a value in date.timezone.
SVN and Git are installed automatically when you install the developer tools for Lion, which can be downloaded freely from http://developer.apple.com/mac (a free registration is required).
If you need Mercurial or if you aren't on Lion (so you don't have XCode 4), download the developer tools, then an application named macports, which provides ports for thousands common UNIX tools: http://www.macports.org/ . Once MacPorts is installed, you can install the required packages with a simple command:
sudo port install subversion
sudo port install git
sudo port install mercurial
I don't use any graphical tool for these SCM, so I can't really suggest you. I prefer the old, plain command line!
Developer Tools (the package with XCode) is required also if you want to use pecl to install custom extensions (the default distribution of PHP Apple ships doesn't contain some extensions like mcrypt, gettext and intl, just to name the three most important).
Speaking about editors... The one I really prefer and love is Coda. It's not free, but it's perfect if you want to develop in PHP: http://panic.com/coda/ .
It's also integrated with SVN (but we use Mercurial so I never used that option!).
For (S)FTP, I recommend you Cyberduck, which is free (open source): http://cyberduck.ch/ . Another really good client should be Transmit, but it's not fee (it's from Panic, the same company that produces Coda): I've never tried it (I'm really happy with Cyberduck!), but I heard thousands of good opinions about it.

Installing PHP in IIS 5.1

I know there have been some similar questions to this, but they haven't helped me.
I'm trying to install Wordpress 2.8.4 on my XP box, with IIS 5.1. I installed MySQL, and found that it was possible to install Wordpress through the Microsoft Web Platform Installer. After installing Wordpress (the install worked fine), I proceeded to the next step in the Wordpress installation documentation, which is to open wp-admin/install.php in your browser. IIS seemed to not be interpreting PHP, and when searching for the best way to install it, I saw that it is also available with Microsoft Web Platform Installer, so I installed it that way. However, my IIS isn't interpreting PHP still. I do not know what the problem is, but I'm going to reboot right now and see if that helps, as I didn't reboot after the install (even though it didn't say I have to). Any help would be greatly appreciated. Thanks!
Application mapping for .php extension to x:\php5\php-cgi.exe is needed.
Open properties dialog box of IIS's Default Website, and perform extension mapping.

Categories