Исправляем ошибку «Cannot Validate Since No PHP Executable Is Set»

Опубликовано 10 февраля 2023 в 16:32 (Обновлено 9 января 2024 в 14:11)

Время чтения: 5 мин

Расскажу как бороться с проблемой "Cannot Validate Since No PHP Executable Is Set" в Visual Studio Code IDE.

Ошибка "Cannot Validate Since No PHP Executable Is Set" в VS Code
Ошибка "Cannot Validate Since No PHP Executable Is Set" в VS Code

Суть ошибки "Cannot Validate Since No PHP Executable Is Set"

Обычно для работы с PHP, JS и WordPress хватает Sublime Text 3 или даже Brackets. Они не считаются полноценными IDE, но бесплатны и справляются с большинством задач. В последнее время я всё-таки медленно, но верно перебираюсь на Visual Studio Code, который также бесплатен, но немного тяжелее Sublime Text.

И, как это часто бывает после переезда в VS Code, у новичков при работе с PHP появляется ошибка "Cannot Validate Since No PHP Executable Is Set".

Ошибка полностью звучит так:

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

Ну и выглядит стандартно для VS Code:

Суть проблемы в том, что не указан путь к исполняемому файлу PHP.

Если вы не укажете путь к исполняемому файлу PHP, код Visual Studio все равно будет работать нормально, но он не будет валидировать (проверять) код PHP, а это значит, что вы не увидите классические волнистые красные линии, когда у вас будет ошибка в коде.

Немного покопавшись, я нашел довольно простое решение. VS Code не для новичков, поэтому некоторые рекомендации смотрите очень внимательно. Ниже мы исправим ошибку валидации PHP для Windows, macOS или Linux.

Обратите внимание, что я пользователь Windows, поэтому рекомендации по Linux или macOS могут быть не очень точными.

Шаг 1

При исправлении "Cannot Validate Since No PHP Executable Is Set" основная задача состоит в том, чтобы выяснить, где находится ваш исполняемый файл PHP (php.exe).

Это зависит от того, какую Операционную систему и среду разработки вы используете. Из возможного могут быть - OpenServer, XAMPP, WAMP и т.д.

В настоящее время я использую XAMPP и на другой машине OpenServer. Первый установлен на моем диске C: в Windows 10, поэтому файл php.exe находится в: C:/xampp/php/php.exe.

Для пользователей MacOS или Linux обычный путь - это /usr/bin/php.

Для OpenServer исполняемый php.exe находится по адресу:

 C:\OpenServer\modules\php\PHP_7.3\php.exe

Для OpenServer вы также можете выбрать папку с нужной версией PHP, я работаю с версией 7.3 и поэтому в адресе использовал именно папку с этой версией.

Шаг 2

Как только вы узнали, где находится ваш исполняемый файл PHP, откройте Visual Studio Code и перейдите в настройки, выбрав:

Файл -> Установки -> Настройки (File -> Preferences -> Settings)

Шаг 3

На панели настроек поиска (Search Settings) введите settings.json.

Затем нажмите на ссылку "Изменить в settings.json" (Edit in settings.json).

Добавьте запятую после последней строки кода, какой бы она ни была, затем добавьте:

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

Или так для пользователей MacOS и Linux:

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

Для наглядности выглядеть должно так:

Конечно, ваш путь к файлу php.exe может быть другим, как я упоминал на шаге 1, поэтому убедитесь, что вы заменили "C:/xampp/php/php.exe" на свой правильный путь.

Также обратите внимание на слеши, они должны быть именно такими, иначе вы получите ошибку.

Не добавляйте запятую после, если это будет последняя строка кода.

Шаг 4

Сохраните файл, выбрав Файл -> Сохранить (File > Save) или нажав CTRL+S (для Windows).

Я думаю, что это CMD+S для MacOS.

Шаг 5

Закройте Visual Studio Code и откройте его снова. Предупреждение "Cannot Validate Since No PHP Executable Is Set" должно исчезнуть.

Шаг 6 (для пользователей Windows)

Убедитесь, что PHP добавлен в PATH вашей среды. Я думаю, что XAMPP добавляет его автоматически, но все равно стоит проверить, т.к. при установке не все среды разработки делают это автоматически.

Ищем «среду» (environment) в Windows:

На вкладке «Дополнительно» (Advanced) нажмите «Переменные среды» (Environment Variables).

Нажмите на строку Path, чтобы выбрать ее, затем нажмите Edit.

Отредактируйте или добавьте новый путь PHP (например, C:\XAMPP\php).

Не добавляйте исполняемый файл (.exe), как в файле .json. Только добавьте папку.

Если вы используете виртуальную машину в Windows

Например, для разработки Laravel я использую среду Homestead в Windows 10, которая использует Ubuntu в качестве сервера. Он также поставляется с предварительно упакованным программным обеспечением, таким как PHP.

Если я хочу узнать, где находится PHP на сервере, я использую команду:

$ which php

Она покажет, что PHP находится в /usr/bin/php.

Теперь, если я использую этот путь в VS Code, он не будет работать, потому что его нет на моем диске. VS Code не может заглянуть на мой сервер.

Итак, если вы используете нечто подобное для вашей среды разработки, вам нужно установить PHP локально, на свой диск, а затем установить путь, как я показал вам выше.

Я не знаю, есть ли обходной путь. Если вы это сделаете, то дайте знать в комментариях.

Дополнительно попробовать, если что-то не работает

Некоторые говорят, что у них всё заработало только когда они добавили две косые черты для пути в файле settings.json, например так:

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

Для кого-то всё заработало с обратными слешами:

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

Добавление вот такой строки в дополнение к php.validate.executablePath может также исправить ситуацию

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

Надеюсь, вы нашли это руководство полезным и исправили ошибку валидации PHP в Visual Studio Code.

Если у вас есть вопросы или мысли, пожалуйста, оставьте комментарий. Не забудьте поделиться статьей, чтобы помочь другим.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.