Команда Cakephp Cake не возвращает такой файл или каталог


Я использую команду cake на своем сервере Linux в течение 2 лет. но теперь я пытаюсь перейти на новый сервер, и вот как команда cake выдает ошибку: Нет такого файла или каталога

Даже если я дам полный путь к командному файлу cake chmod 777, он все равно не будет работать.

Author: jurrieb, 2013-11-06

5 answers

Я нашел решение: все, что мне нужно было сделать, это использовать программу dos2unix файл cake для CakePHP 2.4.2 имеет неправильные окончания, когда вы загружаете его с Ubuntu 13.10

Я использовал следующую команду:

sudo dos2unix /path/to/cake/lib/Cake/Console/cake
 9
Author: jurrieb, 2013-11-07 08:19:49

РЕАЛЬНЫМ решением этой проблемы является изменение символов конца строки (EOL) в формат Unix вместо MsDos. Поэтому я предполагаю, что эта ошибка возникнет только в том случае, если вы работали в Windows.

В любом случае, могучий РЕШЕНИЕ:

(1) Откройте файл приложения/консоли/торта с помощью любого текстового редактора, который позволяет изменять символы EOL, например Notepad++.

(2) В блокноте++ нажмите: Редактирование -> Преобразование EOL ->Преобразование в формат Unix

(3) Сохранить файл и загрузить его на сервер. Теперь, если вы перейдете в каталог приложений CakePHP, используя команду типа:

cd /usr/share/nginx/html/cakeproject/app

...вы должны иметь возможность запускать Console/cake без каких-либо проблем и видеть стандартный вывод (в основном команды справки).

Надеюсь, это помогло вам!

 4
Author: Rav, 2015-08-18 16:32:22

У меня также есть эта проблема на некоторых серверах, и я так и не понял, почему это произошло. Я подозреваю, что так называемый "shebang" может быть установлен неправильно для каждого дистрибутива Linux (например, если сценарий cake начинается с #!/usr/bin/env bash, но вы не используете bash на своем сервере или в вашем дистрибутиве нет двоичного файла env в этом пути, это может привести к сбою. Это всего лишь теория, хотя, как я уже сказал, я никогда по-настоящему не понимал этого, и я не тратил много времени на расследование.

Хотя, что я всегда используйте в качестве запасного варианта просто вызов cake.php скрипт (из папки приложения) вместо этого, например:

php Console/cake.php -app `pwd` bake

Это никогда меня не подводит. Бит -app pwd должен сообщить оболочке, что ваш текущий каталог является каталогом вашего приложения, чтобы оболочка могла найти все ваши файлы.

 2
Author: Oldskool, 2013-11-06 23:17:54

Я тоже столкнулся с той же проблемой, но верхний ответ напомнил мне о аналогичной проблеме, с которой я сталкивался раньше: https://stackoverflow.com/a/5514351/1097483

В принципе, вместо того, чтобы использовать dos2unix или устанавливать его, вы можете открыть файл в vim, выполните

:set fileformat=unix

И сохраните его.

 1
Author: xiankai, 2017-05-23 12:16:47

В некоторых версиях можно установить торт с помощью sudo apt-get install cakephp-scripts.

После установки вы можете получить доступ к bake в любом месте, просто набрав bake

 -1
Author: Marcus Monteiro, 2015-08-13 13:36:13