在 docker 容器中设置 php 时,如何在 vscode 中设置 php 可执行路径 php.validate.ExecutablePath?

我有一个基于 Docker 的开发环境。

每次我打开 VSCode,我都会收到这样的信息:

无法验证,因为没有设置 PHP 可执行文件。请使用该设置 ‘ PHP.validate.ExecutablePath’来配置 PHP 可执行文件。

有人知道在这种情况下如何设置 php.validate.ExecutablePath 吗?

我不知道该怎么做。

221096 次浏览

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

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"

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

Here is a screenshot.

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

set php.validate.executablePath snapshot

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

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.

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

try this;

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

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

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.

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

"php.validate.executablePath": "C:\\xampp\\php\\php.exe",

In my case using XAMPP is like this

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

hope that answer your question

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

  "php.executablePath": "C:/laragon/bin/php/php-7.4.5-Win32-vc15-x64/php.exe",

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.

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"
}

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 \

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

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.

  • 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.

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

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"

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",

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

For Wampserver:

Inside settings.json

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

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.