Configure PHP Server in PHPStorm with Vagrant on Windows 7 - xdebug

On my local dev machine, I have a Vagrant box with this IP 172.22.22.22. On the box I have installed PHP and Xdebug.
php --version
PHP 5.4.24-1~dotdeb.0 (cli) (built: Jan 12 2014 19:26:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
I used the following config for Xdebug:
zend_extension="/usr/lib/php5/20100525+lfs/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_connect_back = 1
But when I configure File --> Settings --> PHP --> Server and put in the values for everything.
I check "Use path mappings ..." and add an "Absolute path on the server" for my project "File/Directory".
When I click "Validate remote environment" I choose the deployment server and leave local path for the validation script for the local path to the project. Then I click "Validate". However, I get the error message "Please, configure path mapping for the validation directory".
But I thought that was what I did in the step above, when I checked the "Use path mappings". But do I misunderstand what the validation directory and validation script is?

I just ran in to the same issue.
Project Settings -> PHP -> Servers. Add your server here. I called mine Test. In my hosts file I've called it test.vagrant, so the host is also called that (not sure if that's right).
Next, I had to add on path mappings, which is the error we were both having. This is not the best way, but it worked.
Click validate remote environment
Add your local server. I created a new server, of type "In Place"
Set up your mappings. In my test project, I have two folders, vagrant and www. Under www I have test. So I mapped the local folder test to an absolute web path of / .
Click ok, and get back to the PHP Servers screen.
Click the checkbox, Use path mappings
Map the local folder to the remote absolute path, in my case it is /var/www/test
And that should remove the error message.
Actually getting xdebug to work is something I haven't managed to do yet. So this information may not help with that, but it will definitely remove the error message.

Just create one more directory "validation" on your local computer and create additional mapping in Deployment->Mappings. Example of my Deployment->Mappings settings:
Local Path | Deployment path | Web path
------------------|-----------------------|-------------
c:\src\validation | /var/www/validation | /validation
After this validation should start.

Related

deploying gae to development server stopped working

I'm working through a test GAE Java project which was working fine but I decided to look at adding GWT to the same project. I then decided to stick with the GAE stuff I was learning and decided to remove GWT. The problem is I can't now deploy to the development server as it gives the following in the Eclipse console pane. Anyone know please how I can reset appropriate settings to how my project had them originally?
terminated test [Web Application] C:\Program
Files\Java\jdk1.6.0_37\bin\javaw.exe Usage:
[options]
Options: --help, -h Show this help message and exit.
--server=SERVER The server to use to determine the latest -s SERVER SDK version. --address=ADDRESS The address of the interface on the local machine -a ADDRESS
to bind to (or 0.0.0.0 for all interfaces). --port=PORT
The port number to bind to on the local machine. -p PORT
--sdk_root=DIR Overrides where the SDK is located. --disable_update_check Disable the check for newer SDK versions. --generated_dir=DIR Set the directory where generated files are created. --jvm_flag=FLAG Pass FLAG as a JVM argument. May
be repeated to
supply multiple flags.
I seem to have found my own answer through setting up a new dummy gae project and having a poke around, found that the 'Run As' > 'Run Configurations...' > '(x)= Arguments' > 'Program arguments' had an additional port defined prior to the rest of the argument beginning '--port=8888'. I removed the mention of '-codeServerPort 9997 ' and it now deploys to dev server and appears to be working as before.
eg
new dummy project: --port=8888 "C:\Users\tech1\SSD Storage\Eclipse Projects\workspace\dummy\war"
project that wouldn't deploy to dev server: -codeServerPort 9997 --port=8888 "C:\Users\tech1\SSD Storage\Eclipse Projects\workspace\test\war"
I faced the same issue and you know what, Workaround is just pretty simple.
I created one new appengine project with only one jsp in WAR and 'Run As' > 'Run Configurations...' >Server Tab -> Unchecked then checked Run Built-In server and then checked Automatically select any port.
Server started ..on some fishy 25334 port..i stopped that using red button on Console Terminal.
then i changed it back to 8888 and WHOA project Ran.... :)
Then i did the same with old project. deleted this new one and all is working as expected.

Google App Engine: local testing a simple hello world

I'm trying to make a simple Hello World working in local via the Google App Engine plugin for Eclipse Helios.
The problem comes when want to launch the serveur with the eclipse tool (right-clic on my project -> Run As -> Web Application), the console always display these logs:
2012-04-17 19:01:09.126 java[4019:407] [Java CocoaComponent compatibility mode]: Enabled
2012-04-17 19:01:09.127 java[4019:407] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
Usage: <dev-appserver> [options] <war directory>
Options:
--help, -h Show this help message and exit.
--server=SERVER The server to use to determine the latest
-s SERVER SDK version.
--address=ADDRESS The address of the interface on the local machine
-a ADDRESS to bind to (or 0.0.0.0 for all interfaces).
--port=PORT The port number to bind to on the local machine.
-p PORT
--sdk_root=root Overrides where the SDK is located.
--disable_update_check Disable the check for newer SDK versions.
--generated_dir=dir Set the directory where generated files are created.
The local server works when I use command bellow:
./appengine-java-sdk/bin/dev_appserver.sh appengine-java-sdk/demos/guestbook/war
Does anyone has some idee for making it working ?
Thanks by advice and sorry for my bad English...
i also got into the same problem. But my solution was deleting the existing launch configuration (in Run > Run configurations), close the dialog, and then try right-clicking on your project > Run As > Web Application.
For me it was the space in the Project Name, which coincides with the folder name in the workspace. Whoever is calling the dev server launcher didn't use quotes around the war directory.

PHPStorm + XDebug Setup Walkthrough

Up until recently, I've been writing code in PHP (via Notepad++) and debugging by checking the logs in IIS (gotta love that web-platform installer); I've since decided to update to a more efficient code-writing / testing environment, and after playing around for several moments with PHPStorm, decided to purchase it and give it a try. Since then, I have realized that in so far as tutorials and walk-throughs are concerned, PHPStorm is coming up a little short. Having given the manual a glance (RTFM, I know), and come up wanting, I'd like to ask if anyone out there would like to hand hold me through setting up PHPStorm with XDebug so I can stop hating myself for not studying the underlying systems well enough, and get back to coding.
TLDR; Could someone post a detailed walk-through for setting up PHPStorm + XDebug? Assume maximum level of stupidity on my part (I"m usually more than capable in the ASP.NET world, but I am approaching the intelligence level usually associated with some forms of sea-faring sponge in the PHP world).
The environment is Windows 7 Ultimate (64-bit) with IIS & PHP installed.
I've found a more modern and easier solution partially based on CrasyCoder's post.
The steps you need to do are the following:
If your brand new php installation doesn't contain php.ini, rename the php.ini-development to php.ini
Install xdebug with help of the wizard: http://xdebug.org/wizard.php Follow its recommendations literally.
Put in your php.ini the string: xdebug.remote_enable=1
Go to PhpStorm's settings: settings->php. Select or reselect directory containing php. Make sure you see 'Debugger: Xdebug x.x.x' string (where x.x.x stands for installed version)
Install an extension for your favorite browser from here: http://xdebug.org/docs/remote
From the main menu (not the settings window) go to 'Run->Edit configurations' and add new 'PHP Built-in Web Server' configuration. Point the 'Document root' to your project's directory. Note the port number.
Chrome browser: enable the extension pressing on the little bug in the rightmost side of the omnibox and selecting the Debug option. Other browsers' extensions should work similarly.
In PhpStorm's menu enable the 'Run -> Start Listen for PHP Debug connections' option.
Set a breakpoint in your code in PhpStorm.
Run (not debug) the configuration you created in step 6.
In your browser go to localhost:port where 'port' is the port from step 6. Your PhpStorm should stop on the breakpoint and you can start squashing bugs in your code.
Considering that:
Steps 1-5 are made once per php installation.
Step 6 is made once per PhpStorm project.
Steps 7-8 are made once per debuggin session.
Steps 9-11 are made each program run.
It's really simple to get Xdebug working with PhpStorm, just follow this guide carefully. (NOTE: Updated version of the guide is here)
For more advanced topics read this.
1. install xdebug module (MAC installation steps)
1.1.1. check what PHP version u r using php --ini (see the loaded file)
1.1.2. brew search xdebug
1.1.3. brew install phpXX-xdebug
1.1.4. see details: php -i | grep xdebug
1.2. restart server
1.3. configuration
1.3.1. sudo find /usr -name 'xdebug.so'
1.3.2. copy the path of the exact one you need
example: /usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so
1.3.3. edit the extension related configuration file which should be injected to the main php.ini automatically:
subl /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini
1.3.4. add the zend_extension to be = the path copied above
[xdebug]
zend_extension="/usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so"
Normal file should have something like this:
[xdebug]
zend_extension="/usr/local/Cellar/php56/5.6.4/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp"
xdebug.idekey=PHPSTORM
2. check your PHP version
php --ini
3. setup the IDE settings
preference > languages and framework > PHP >
3.1. set the language level to the correct PHP version of this project
3.2. set an interpreter (set the parent directory of where the bin directory of PHP executable is loaded)
3.2.1. click the … button > click the + button > other local > set PHP Excitable path,
to find the path type in the terminal: $ which php
example: /usr/local/Cellar/php56/5.6.5/bin/php
4. restart phpstorm
5. now let’s make it work
5.1. run > edit configuration > click the green + button on the left > select b. php web application
5.2. name: anything example ur {application name - debugger}
5.3. server: localhost (browse > + > name: whatever | host: localhost or 127.0.0.1)
5.4. click ok
5.5. start url: the link of ur project homepage: http://127.0.0.1:80/SomethingNew/
5.6. click ok
6. now set the break point and click debug
I had quite some troubles when I touched XDebug remote debugging the first time yesterday.
A few general hints, you are overflown with various tutorials and guides anyway.
Your XDebug configuration on PHP/Aache side:
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
You need to either use remote_connect_back as given above (be careful, this means other people can debug your server too while it is enabled) or you specify your IP address (remote_host).
On Client Side you need to have your router forward the Port 9000 !
You need to allow PHPStorm for incoming connections in your Firewall (was not enabled by default on Windows 8 for me). Either open Port 9000 or the app itself.
On PHPStorm make sure to go into Debug configuration and not use the default debug (PHPUnit!) Use "PHP remote debug" (Run/Debug Configurations -> The PLUS sign on upper left)
You will need to tell PHPStorm the absolute path of your project on the webserver, if you make an error here (and forget that) you will get a prompt anyway.
Now Debug your project in PHPStorm while having "Listen for connections" enabled and put a breakpoint into your code.
With your webbrowser open your website/php file while having a cookie enabled that starts the debugger. (cookie is the best approach in most cases). You can use a bookmark (google for phpstorm debugging bookmark) or an extension.
Even following the guides, I missed several of the above points. I hope I could save some hours of struggling :)
If you don't need remote debug, you can easily debug your project.
First check your php.ini settings.
Be sure that your xdebug dll exists and the settings are on.
xdebug.remote_enable = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars=0
Then go to Run menu in top navbar. Then select edit configurations and add new configuration ( do not change your default settings for another project )
Click add new item button.
After adding new php web application
If you do not have any server ( generally points the localhost with 80 port on windows or linux ) click the button shown as below.
Add a new server with xdebug.
Then click ok and check your configuration
Finally, you will see the configuration at the right side of ide.
Click RUN or DEBUG button.
install xdebug on your local PHP - actually update your php v with xdebug included:
https://floyk.com/en/post/how-to-update-php-version-on-your-macbook-macos-sierra
setup your xdebug.ini
zend_extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
[xdebug]
xdebug.remote_enable=on
xdebug.default_enable=on
xdebug.remote_autostart=off
xdebug.remote_port=9000
xdebug.remote_host=localhost
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_name=xdebug-profile-cachegrind.out-%H-%R
xdebug.var_display_max_children = 128
xdebug.var_display_max_data = 512
xdebug.var_display_max_depth = 3
xdebug.remote_enable = 1
xdebug.idekey = PHPSTORM
xdebug.show_error_trace = 1
xdebug.file_link_format = phpstorm://open?%f:%l
Install Xdebug helper to your Chrome browser:
Install Xdebug helper
in your PhpStorm go to Settings/Preferences->Languages & Frameworks->PHP->Debug
Update your Automatically detect IDE IP if needed, and press OK
You are done.
More detailed "step by step" guide you can find here:
https://floyk.com/en/post/how-install-php-with-xdebug-on-mac-os

Remote debugging with XDebug and PHPStorm

First things first:
Server is an Apache running on Debian in a VMPlayer
Host is Windows 7
Debugging-Server is XDebug
Files are directly accessible via a shared folder
Important: XDebug is properly configured on Apache and my Win7 firewall as well. I know that b/c I can debug using Eclipse.
So what I am failing at seems to be the basic configuration of PHPStorm.
Let me give you some more details:
IP of Server: 192.168.56.128
IP of my host: 192.168.56.1
the file that I want to debug is index.php:
location on my Win7 host: C:\dev\sf\Symfony\
location on Debian: \mnt\hgfs\sf\Symfony\
URL: 192.168.56.128/Symfony/index.php
No matter what I fiddle together ... I get weired error messages like "Waiting for connection from JetBrains PhpStorm..." or PHPStorm asks me for Mozillas profile.ini, even though I configured Chrome as Default in Web Browsers.
So I will just set up a new project and hopefully someone tells me what is wrong with my configuration.
Run / Edit configurations / Defaults / PHP Remote Debugging:
Server: "Debian"
IDE key: -
Break at first line: yes
Servers:
Name: "Debian"
Host: 192.168.56.128
Port: 80
Debugger: Xdebug
use path mappings: yes
one path mapping configured:
C:\dev\sf\Symfony => /mnt/hgfs/sf/Symfony (also tried /Symfony - b/c PHPStorm shouldn't care about anything above /Symfony !?)
Run / Edit configurations / Defaults / PHP Web Application:
Server: "Debian"
Start URL: /Symfony
Browser: Chrome
Break on first line: yes
Now I choose: Run / Debug ... / 1.index.php
And I get asked for: Mozilla's profile.ini ... but I can't find it
Where is it ... ?
I already got so far that PHPStorm started Chrome. But maybe I first sort this out. So how can I get Firefox up and running? I also use Firefox with Eclipse ... no questions asked for a profile.ini.
Okay, there are three things I'd like to share with you. It's not the full recipe but the key ingredients that were first confusing me are:
The important sections to configure are "Servers" and "PHP Remote Debugging".
To configure "PHP Remote Debugging" you have to first add a new dataset using the [+] in the top left corner. The panel you get from just clicking on the "PHP R D"-button just keeps the default settings!
Absolute path regarding the VM actually means the absolute path starting from root (\mnt\hgfs\sf\Symfony). This was confusing to me cause I am still not sure why PhpStorm cares about directory levels above the shared folder. but it does.
If you are still having problems, there are two blog posts by the makers on how to set things up correctly.
First should work in most cases and requires zero-configuration other than a working xdebug install
Second details all of the configuration settings in detail
To 'see' the profile.ini in the PHP Storm 'Select File' Dialog simply rightclick inside of it and choose 'Show hidden files' then (in WIn7) move to C:\Users\YOURUSERNAME\AppData\Roaming\Mozilla\Firefox or the equivalent in your OS
Ensure that remote debugging is enabled in php.ini
xdebug.remote_enable = 1
Your server "192.168.56.128" should be in PHP-> Servers
Add PHP Web Application Debug Configuration, and use added server
Set a breakpoint and start debugging using this configuration

Starting up tomcat-6.0.20 from eclipse-3.5.0 (galileo) leads to the 404 error

Console dogs me. Can anybody help?
The sad story starts like this. My OS is ubuntu-9.04. I installed tomcat-6.0.20 by extracting it from .tar.gz package and put it under the /usr/share/tomcat-6.020 directory.
Then I started tomcat from console, and everything seemed to be fine. localhost answered with the $CATALINA_HOME/webapps/ROOT/index.html page.
The next step was to put my tomcat in the eclipse's servers list. So, I went to Preferences > Server > Runtime Environment > Add > Apache Tomcat v6.0 (here I also browsed to my tomcat and changed JVM from JRE to JDK). Finally, I added my server to the Servers list.
So, having everything configured, I started my tomcat from the eclipse, opened a browser and asked for localhost. 404 all over sudden. Despite the fact that the eclipse's console has shown no errors.
Has anybody encountered the same problem?
I fixed the "Could not load server configuration" problem by deleting the current server configuration from the Servers View and adding it again.
Open your Tomcat settings (double click or F3 on your Tomcat instance in 'Servers' view in Eclipse):
Make sure configuration path is valid and configuration is valid
Click on modules tab and make sure your app is deployed.
I'm with Carlisg. I had this error in Eclipse 3.6 with Tomcat 5.5: "Could not load server configuration at /Servers/Tomcat v5.5 server. The configuration maybe corrupt or incomplete." After playing around with every setting for 20 minutes and getting the same error, I just deleted the server, re-added it and it worked in about 90 seconds with no changes.
yes emanemos is right, I tried it today and got it working instantly. Create a new project in eclipse, I created a Dynamic web project. Create a new server, choose your apache version as the server type. Then create your pages and resources in this project space. I created index.html in Webcontent and pointed to http://localhost:8080/trial/ and I can see my index.html. (trial is the name of my project).
In windows vista 32 I fixed like this, In 'serverlocation' selected Use Tomcat installation(takes control of tomcat installation) and for deploy path I added my tomcat webapp dir.'C:\apache-tocat-6.0.26-windows-x86\apache-tomcat-6.0.26\webapps'. With default configuration path /Servers/Tomcat v6.0 Server at localhost-config, it just works fine.
I had the same problem and solved it following these steps:
On the Server View, right click on the server (Tomcat 6.0 Server at Localhost)
in the menu options click "Open", this opens a menu with all the configurations for the server.
On tab "Server Locations" you must select the option "Use Tomcat Installation (takes control of tomcat installation)".
Do not forget to check the Deploy path.
I think there is a problem with eclipse configuration over Tomcat and it must use the tomcat installation configuration.

Resources