Поэтому я перепробовал все, что мог придумать, чтобы это заработало. Прежде всего, это НЕ просто проблема с 1 скриптом, я пробовал 3 или 4 скрипта, которые я обычно использую, и я не могу заставить их работать на этом сервере. Я считаю, что PHP CLI работает, потому что я могу запускать команды, но также и потому, что я вижу аргументы, необходимые для файлов php, без ключевого слова. PHP -v вывод
PHP 5.6.25 (cli) (built: Oct 21 2016 18:00:07)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Как вы можете видеть, он выплевывает версию php и cli.
На моем сценарии я добавил следующий shebang в разное время
#!/opt/rh/rh-php56/root/usr/bin/php
#!/usr/local/bin/php
#!/usr/bin/php
#!/usr/bin/env php
Наконец, если я попытаюсь запустить свой скрипт, вот что произойдет.
[root@VM_0_5_centos misc]# ./english_to_chinese_dictionary.php
Usage:
english_to_chinese_dictionary.php server user password customer mappingFileLocation
Из-за того, что он выводит мою строку «Использование», я почти уверен, что она читает файл. Однако, если я действительно ввожу все необходимые аргументы, то получаю «Нет такой файловой директории [root @ VM_0_5_centos]» Каждый раз, один раз.
Дополнительная информация, я также запустил chmod 0777 для файла, и я попытался установить права доступа для правильного пользователя и запустить от имени пользователя root.
Есть идеи?
Спецификация переводчика и работа напрямую всегда доставляли мне проблемы. Чтобы проверить, является ли проблема скриптом, а не интерпретатором, попробуйте удалить всю информацию интерпретатора, оставьте просто <?php //code....
в этом. Затем запустите скрипт с php -f filename.php
вам не понадобятся какие-либо права на выполнение или запись в файл.
Я добавляю, что я обычно предпочитаю этот способ, потому что он отлично работает на всех платформах, включая Windows PHP cli (очевидно, если скрипт совместим)
Других решений пока нет …