109

I have a development environment based in docker.

Everytime that I open VSCode I get this message:

Cannot validate since no PHP executable is set. Use the setting 'php.validate.executablePath' to configure the PHP executable.

Somebody know how to set php.validate.executablePath in this case?

I have no idea how to do it.

Gugu72
  • 2,052
  • 13
  • 35
Nicolas Takashi
  • 1,550
  • 2
  • 10
  • 11

28 Answers28

62

Here is a screenshot.

  • Don't forget to escape \
  • You don't have to add it to the Path

set php.validate.executablePath snapshot

Cave Johnson
  • 6,499
  • 5
  • 38
  • 57
Mohamed Elrashid
  • 8,125
  • 6
  • 31
  • 46
  • @NgatiaFrankline can i help you friend ? ,can you clarify your question – Mohamed Elrashid Jan 08 '20 at 17:32
  • 4
    @Elrashid sorry am late. Question is `How to set php executable path php.validate.executablePath in vscode when php is set inside docker container? ` My understanding is that docker runs containerized applications (like guest/virtual machine but with less resources. Readmore https://hub.docker.com/ ). Therefore it means you docker php environment (this can be Ubuntu) is different from your local desktop where vscode is installed (this can be windows). How to you get path to php.validate.executablePath of a guest/containerized OS from your local/development machine where vscode is installed??? – Ngatia Frankline Jan 15 '20 at 23:14
  • @NgatiaFrankline the original question is "How to setting php.validate.executablePath?" on **2017** but It was changed **Sep 2019** [Click here to check the Revisions ](https://stackoverflow.com/posts/43768614/revisions) – Mohamed Elrashid Jan 15 '20 at 23:24
  • @Elrashid sure, my bad. – Ngatia Frankline Jan 17 '20 at 13:51
  • @NgatiaFrankline thank you for understanding ❤ , please feel free to tag me ,if you need help in any other question, thanks again for your attention and time ❤ – Mohamed Elrashid Jan 17 '20 at 13:55
  • 5
    Why is this being upvoted? It doesn't even attempt to answer the original question. – Crasher Mar 11 '22 at 17:48
  • 1
    @Crasher the original question is "How to setting php.validate.executablePath?" on 2017 but It was changed Sep 2019 [Click here to check the Revisions ](stackoverflow.com/posts/43768614/revisions) – Mohamed Elrashid Mar 13 '22 at 10:47
33

In my case using XAMPP is like this

"php.validate.executablePath": "C:/xampp/php/php.exe"

hope that answer your question

SETIA1
  • 347
  • 3
  • 3
32

For linux users: if you don't have PHP installed then first download,
then in terminal type

$ whereis php

and it will show path for php executable (It will be either in /usr/bin/php or usr/local/bin/php) which you can copy from terminal.

In VScode goto settings.json file and paste

php.validate.executablePath: /usr/bin/php

blackbrandt
  • 2,010
  • 1
  • 15
  • 32
Yugandhar
  • 541
  • 4
  • 6
12

Sure, easy. Just follow what it's says.

Go to File > Preferences > Settings ... it will open the settings.json file.

add the following code:

{"php.validate.executablePath": "Here you put your PHP.exe path"}

You have to know where te php.exe file is in your computer, search in the php/bin folder.

Hope it works for you

zkanoca
  • 9,664
  • 9
  • 50
  • 94
Julian
  • 161
  • 2
9

I had the same problem but found the fix here.

In Windows:

  1. Go To System Properties
  2. Go To Advanced Tab
  3. Click "Environment Variables"
  4. Select Path
  5. Add a new path that points to your php 7 executable:

enter image description here

ray
  • 8,521
  • 7
  • 44
  • 58
7

My case, I'm using Laragon, so you should search where is your php.exe.

By VSCode just add.

"php.executablePath": "C:\\laragon\\bin\\php\\php-7.2.19-Win32-VC15-x64\\php.exe"

on settings.json.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Caique Andrade
  • 1,025
  • 7
  • 9
2

"php.validate.executablePath": "C:/php/php.exe" wont work due to incorect escaping

try this;

"php.validate.executablePath": "C:\\php\\php.exe"
2

I simply used double forward slashes and it worked, like so:

"php.validate.executablePath": "C:\\xampp\\php\\php.exe",
linktoahref
  • 7,812
  • 3
  • 29
  • 51
2

VSCode Linux Users:

Step 1: In your terminal type

whereis php

In my case "php: /opt/lampp/bin/php"

Step 2:

{
  "php.validate.executablePath": "/opt/lampp/bin/php"
}
2

If you're using VScode and have installed Php through MAMP, the default path should be:

C:/MAMP/bin/php/php7.4.1/php.exe

/ not \

Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
1

Download PHP, in my case, I downloaded from here: http://windows.php.net/download/

Copy and paste the files to a location on your computer, and set the path:

"php.validate.executablePath": "C:/php/php.exe"

Nuuu
  • 1,848
  • 2
  • 12
  • 12
  • 7
    op specifically asked when the php runtime is inside a docker container, not how to install php in host machine and use it in vscode. – Nehal Hasnayeen Sep 21 '19 at 15:03
1

If you get this on windows in VS code click on the blue 'open settings' button. Near the bottom of the screen this opens there's a link to enter the settings, click this to open the settings.json file. Edit the file to look like this:

{
    "php.executablePath" : "C:/php-7.4.2-nts-Win32-vc15-x64/php.exe",
    "php.validate.executablePath" : "C:/php-7.4.2-nts-Win32-vc15-x64/php.exe"
}

where C:/php-7.4.2-nts-Win32-vc15-x64 is the path to your PHP dir

R Mac
  • 13
  • 4
1

I don't know if this helps but I ran into the same problem with the extension PHP Intelephense in Visual Studio Code. What I did is read the instructions so the extension could work properly. So I disabled PHP Language Features by searching "@builtin PHP" in the extensions. Also, other (3rd party) PHP extensions that provide similar functionality should also be disabled for best results. Finally, I added glob patterns for non-standard PHP file extensions to the files.associations setting. For example: "files.associations": { "*.module": "PHP" }

Doing this made the error go away. I'm new to PHP too, let me know if this is the correct way of solving this problem with PHP Intelephense.

1

Regarding the docker-specific revision of the question, I found this thread in the VS Code PHP Intellisense git repo issue that explains how to create a wrapper script. It will involve mapping volumes, though, so take that into account.

https://github.com/felixfbecker/vscode-php-intellisense/issues/150#issuecomment-330374124

haliphax
  • 393
  • 1
  • 9
1

I have ubuntu and XAMPP. The following worked for me.

Press CTRL + P Type settings.json and hit ENTER.

Add the following line in settings.json

{
...
"php.validate.executablePath": "/opt/lampp/bin/php",
...
}

Make sure to proper syntax.

webfatic
  • 84
  • 1
  • 4
1

Unix / Linux / Mac / WSL ,


Step 1 : Find PHP path

whereis php

Response will show you where your php directories are.

user@User:~$ whereis php

php: /usr/bin/php /usr/bin/php8.0 /usr/bin/php8.1 /usr/lib/php /etc/php /usr/share/php8.0-opcache 
/usr/share/php8.0-xml /usr/share/php8.1-curl /usr/share/php8.1-opcache /usr/share/php8.0-gd 
/usr/share/php7.0-gd /usr/share/php7.0-common /usr/share/php8.0-readline /usr/share/php8.0-mysql 
/usr/share/php8.0-zip /usr/share/php8.1-mbstring /usr/share/php8.1-xml /usr/share/php8.0-mbstring 
/usr/share/php8.0-common /usr/share/php8.0-curl /usr/share/php8.1-readline /usr/share/php8.1-common 
/usr/share/man/man1/php.1.gz

Step 2 : Configure VS-Code

Go to -> "Preference -> Settings"
Search for -> "php path"
Then click -> "Edit in settings.json"


In my case I had multiple.
So I chose the one I wanted from the available versions and my VS-Code looked like this


"php.validate.executablePath": "/usr/bin/php8.1",
13garth
  • 655
  • 1
  • 8
  • 22
1

I've used such solution:

First, create a php file inside /usr/local/bin/ and make it executable:

sudo touch /usr/local/bin/php
sudo chmod +x /usr/local/bin/php

Update content of it with:

docker exec $(docker ps --filter name=-app --format '{{.ID}}') php "$@"

So this will find a container with the name -app at the end. I'm using it along with the docker compose where I have php inside some container which has -app at the end of the name. You can check more about filter here.

And then update php.validate.executablePath with /usr/local/bin/php:

{
    "php.validate.executablePath": "/usr/local/bin/php"
}
Scofield
  • 4,195
  • 2
  • 27
  • 31
0

IF using Laragon...Dont forget to change \ to /

  "php.executablePath": "C:/laragon/bin/php/php-7.4.5-Win32-vc15-x64/php.exe",
samjco-com
  • 365
  • 5
  • 14
0
  • Go to 'Preference' -> 'Settings'
  • Search for> php path
  • Then click Edit in settings.json
  • Then just put your directory with (DOUBLE Backslash).

Here is an example of mine:

C:\\php\\php.exe

Here is the format:

drive:\\folder_name\\php.exe

This should fix the problem.

Zeus G.
  • 41
  • 6
0

php.validate.executablePath in laragon

In my case using laragon is like this

  "php.validate.executablePath": "C:\\laragon\\bin\\php\\php-7.4.19-Win32-vc15-x64\\php.exe"
  • php-7.4.19-Win32-vc15-x64 : Note that this part of your file name may be different
0

I also had this error. I have installed Laragon and this addition in setting.json worked for me.

"php.executablePath":"C:/laragon/bin/php/php-7.2.19-Win32-VC15-x64/php.exe"

0

"php.validate.executablePath": "C:\xamp\php\php.exe" this is working for this case

Endale
  • 9
  • 1
  • 1
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jul 25 '22 at 01:45
0

For Wampserver:

Inside settings.json

"php.validate.executablePath": "C:/wamp64/bin/php/php7.4.26/php.exe"
0

If php is inside a docker container and you don't need it or don't want to install it on you local system, you can create a php wrapper script like it is suggested here: https://github.com/felixfbecker/vscode-php-intellisense/issues/471

I prefer to use the remote container Microsoft extension on vscode and work inside the container itself.

Atheror
  • 191
  • 5
0

I am using Laragon and have 2 PHP versions PHP 7.4 and 8.1, so I configured my visual studio settings.json like this:

"php.validate.executablePath": [
    "D:/laragon/bin/php/php-7.4.33-Win32-vc15-x64/php.exe",
    "D:/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe"
],
WeDevelop
  • 79
  • 2
  • 13
0

I have tried all the suggestions, but for me, I needed to add the path of the php.exe and php.ini file to the settings of fiveserver: see attached

Basically, open settings in vs code, then go to extensions > Five Server and then look for PHP:Executable and PHP:Ini Add the path of your php.exe and php.ini (they are in the same folder), and it should be good to go.

0
  1. Go to settings.json file in Visual Studio Code.
  2. Copy this code into your json file:
"php.executables": {
    "v8.1": "C:\\xampp\\php"
 }
  1. Now save it...

Please remember that, the "v8.1" is the version of the php compiler.

-3

I also got this error message. The path to php.exe was already set in my System Environment Variables.

The error went away when I commented out "php.validate.executablePath": "c:/path/to/php7.2.10/php.exe", in the settings.json file in VSCode.

Nik
  • 2,885
  • 2
  • 25
  • 25