За последние 24 часа нас посетили 17500 программистов и 1725 роботов. Сейчас ищут 1555 программистов ...

Как передать данные в PHP через консоль Debian 12

Тема в разделе "PHP для новичков", создана пользователем KNS, 21 дек 2024 в 22:46.

Метки:
  1. KNS

    KNS Новичок

    С нами с:
    12 авг 2024
    Сообщения:
    24
    Симпатии:
    0
    Подготовка сервера к переносу сайта, остановилась на одной функции, а именно передача данных из ПХП в ПХП через консоль (командную строку)

    На рабочей системе (Centos7), уже всё старенькое стало, и развивать без современных инструментов просто бесполезная трата времени.
    Новый сервер ОС Debian12.

    Комментарий почившего программиста следующий:

    Код (Text):
    1. #!/usr/bin/env php
    2. <?php
    3. error_reporting(E_ALL);
    4. ini_set('display_errors', 1);
    5.  
    6. //error_reporting(E_ALL);
    7. //ini_set('display_errors', TRUE);
    8. ini_set('display_startup_errors', TRUE);
    9.  
    10. // Импорт данных в "Личный кабинет".
    11. // Пакетный режим. Задание и ход выполнения в таблице calc.
    12. //
    13. // Каждый импортируемый файл сначала конвертируется к одному или нескольким "стандартным" .csv файлам,
    14. // а затем "стандартные" файлы импортируются в ЛК согласно схеме загрузки.
    15. //
    16. // В командной строке передаётся путь к файлам конфигурации, номер очереди, имя модуля и имена загруженных файлов
    17. if ($argc < 5) exit; // upload.php conf job module file1 [file2 ...]
    18. //
    19. .......

    В общем, не подключается похоже в 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?
    Просветления пока не случилось,... решил вам написать.
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.858
    Симпатии:
    748
    Адрес:
    Татарстан
    что к чему не подключается? все сумбурно
    строка 17
    PHP:
    1. if ($argc < 5) exit;
    вообще должна ошибку выдать, что $argc не определена

    ну и похоже у вас php не настроен или настроен но не так как на предыдущем сервере...
    первую строку поменяйте на
    !/usr/bin/php8.2 php
     
  3. KNS

    KNS Новичок

    С нами с:
    12 авг 2024
    Сообщения:
    24
    Симпатии:
    0
    $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 нужно перевезти на новый сервер. :(
     
  4. KNS

    KNS Новичок

    С нами с:
    12 авг 2024
    Сообщения:
    24
    Симпатии:
    0
    Ещё один вопрос по теме:
    Влияет ли версия ПХП?
    нативная 8.2 у сайта 7.0.33
    ?
     
  5. KNS

    KNS Новичок

    С нами с:
    12 авг 2024
    Сообщения:
    24
    Симпатии:
    0
    Сейчас начитал, чтобы найти вызываемый шебанг для PHP в Linux, команда в консоли
    Код (Text):
    1. which php
    Накопал тут: https://stackoverflow.com/questions/21731745/how-to-add-shebang-with-php-script-on-linux
    Что нужно не запоминать его, научиться его использовать
    Мне показал в на одном сервере /usr/local/bin/php
    На другом /usr/bin/php
    Хз, что так... вроде серверы одинаковые...
    И поменяв в файлах, результата не получил...
    Единственное что, в логах ошибок ПХП , ошибки перестали появляться...
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.858
    Симпатии:
    748
    Адрес:
    Татарстан
    Правильно заданный вопрос - 50% ответа (с)

    Попробуйте описать вопрос более просто, без примеров своего кода...
    например...
    - хочу запускать php код из командной строки с передачей N аргументов, как это сделать ...
    разобрались - дальше задаете вопросы

    или - как запустить php скрипт из командной строки
    - ответ php script.php
    ну конечно при условии что в системе прописан php и все настроено
    шебанг - чтоб запускать без указания в командной строке php, но там надо права еще файлу выставить что исполняемый
     
  7. KNS

    KNS Новичок

    С нами с:
    12 авг 2024
    Сообщения:
    24
    Симпатии:
    0
    Наверно нужно тему сменить, с вами согласен.
    Выяснил сейчас что вообще не работает shebang
    Окно терминала повисает если попробовать запустить файл через терминал.

    Права первым делом все проверил.