IntelliJ is working on probably the best PHP IDE out there. Since I am running Debian unstable at home, here’s how to install it. I think more or less the same routine would work for any other distribution, but others might elaborate on that.
I tend to install completely packaged software in /opt, so I know I can remove any directory there in its entirety to remove the application.
- Open a terminal and su to root.
Create the directory /opt/webide and cd to it
su if ! [ -d /opt/webide ]; then mkdir -p /opt/webide; fi cd /opt/webide
Download the latest “UNIX” version from the WebIDE EAP (Early Access Program) at http://www.jetbrains.net/confluence/display/WI/Web+IDE+EAP
Unpack the file in /opt/webide, so that the downloaded version will get it’s own subfolder (this way it’s easier for upgrading to later versions)
wget http://download.jetbrains.com/webide/WebIDE-PHP-94.48.tar.gz -O x.tar.gz \ && tar zxpf ./x.tar.gz && rm ./x.tar.gz
If you run a 64bit Linux (like me), and issue WI-301 has not been resolved yet, extract the latest libyjpagent.so from the zip available at http://www.yourkit.com/download/, and overwrite libyjpagent.so
wget http://www.yourkit.com/download/yjp-8.0.20.zip -O x.zip && \ unzip ./x.zip && \ cp ./yjp*/bin/linux-x86-64/libyjpagent.so ./WebIDE-PHP-*/bin && \ rm ./x.zip && rm -r ./yjp*
Of course, your version number may differ.
I prefer not to add separate bin folders to my PATH, as suggested in the WebIDE installation instructions, but rather put a custom script in /usr/local/bin. I did this for WebIDE as well. It sets the JDK_HOME directory to /usr (which the first error I got was about, when trying to run webide.sh directly), since my java is installed in /usr/bin/java, and it finds out what the latest installed webide version is (provided it is available in /opt/webide). Get the source code for this script at my github, put it in /usr/local/bin and chmod it +x.
Now you’re good to go 🙂 Happy coding.
PS: If you’re running Gnome, use Alacarte (menu editting tool) to add WebIDE to your application menu.