Подготовка сервера к переносу сайта, остановилась на одной функции, а именно передача данных из ПХП в ПХП через консоль (командную строку) На рабочей системе (Centos7), уже всё старенькое стало, и развивать без современных инструментов просто бесполезная трата времени. Новый сервер ОС Debian12. Комментарий почившего программиста следующий: Код (Text): #!/usr/bin/env php <?php error_reporting(E_ALL); ini_set('display_errors', 1); //error_reporting(E_ALL); //ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Импорт данных в "Личный кабинет". // Пакетный режим. Задание и ход выполнения в таблице calc. // // Каждый импортируемый файл сначала конвертируется к одному или нескольким "стандартным" .csv файлам, // а затем "стандартные" файлы импортируются в ЛК согласно схеме загрузки. // // В командной строке передаётся путь к файлам конфигурации, номер очереди, имя модуля и имена загруженных файлов if ($argc < 5) exit; // upload.php conf job module file1 [file2 ...] // ....... В общем, не подключается похоже в Debian12, Строку #!/usr/bin/env php менял по разному, пытаясь подключить ПХП У нового сервера в этом куча мест с симлинками, которые приводят все к #!/usr/bin/php8.2 Прочитал https://qna.habr.com/q/205194?ysclid=m4yim9osxv2455225 Парни пишут что нужно права давать на файл, который запускает, Но пока не получилось, даже не пробовал права давать... Подключаемые файлы 7 штук, из них 2 имеют разные адреса, Например: #!/usr/bin/env php или #!/usr/local/bin/php Чем эти записи отличаются по функциям? /usr/bin/env php здесь есть файл env, и симлинк на /usr/local/bin/php Что делает env? Просветления пока не случилось,... решил вам написать.
что к чему не подключается? все сумбурно строка 17 PHP: if ($argc < 5) exit; вообще должна ошибку выдать, что $argc не определена ну и похоже у вас php не настроен или настроен но не так как на предыдущем сервере... первую строку поменяйте на !/usr/bin/php8.2 php
$argc не системная, в ПХП выключено расширение сознательно... update-alternatives --config php показал что там: * 0 /usr/bin/php.default 100 auto mode 1 /usr/bin/php.default 100 manual mode 2 /usr/bin/php8.2 82 manual mode по этому пробовал по всякому, .... Стоит панель IspManager, в поддержке хостинга сказали что не поддерживается установка для альтернативных пакетов ПХП. А проект сначала на ПХП 7.0 нужно перевезти на новый сервер.
Сейчас начитал, чтобы найти вызываемый шебанг для PHP в Linux, команда в консоли Код (Text): which php Накопал тут: https://stackoverflow.com/questions/21731745/how-to-add-shebang-with-php-script-on-linux Что нужно не запоминать его, научиться его использовать Мне показал в на одном сервере /usr/local/bin/php На другом /usr/bin/php Хз, что так... вроде серверы одинаковые... И поменяв в файлах, результата не получил... Единственное что, в логах ошибок ПХП , ошибки перестали появляться...
Правильно заданный вопрос - 50% ответа (с) Попробуйте описать вопрос более просто, без примеров своего кода... например... - хочу запускать php код из командной строки с передачей N аргументов, как это сделать ... разобрались - дальше задаете вопросы или - как запустить php скрипт из командной строки - ответ php script.php ну конечно при условии что в системе прописан php и все настроено шебанг - чтоб запускать без указания в командной строке php, но там надо права еще файлу выставить что исполняемый
Наверно нужно тему сменить, с вами согласен. Выяснил сейчас что вообще не работает shebang Окно терминала повисает если попробовать запустить файл через терминал. Права первым делом все проверил.