Я новичок в Mikrotik, мне нужен подробный пошаговый урок, как создать страницу, где пользователи hotspot смогут изменить свой пароль с помощью USER SELF FORM MANAGEMENT. Это очень срочно. Я нашёл этот код в интернете и создал скрипт с именем changepass.php, нажимая на кнопку «плюс» в Winbox в разделе system, затем script. Пожалуйста, кто-нибудь помогите. Я только что установил Mikrotik cloud.
<?php use PEAR2\Net\RouterOS; require_once 'PEAR2/Autoload.php';
$errors = array();
try { // Укажите IP RouterOS, имя пользователя и пароль. $client = new RouterOS\Client('192.168.88.1', 'admin', 'password');
Пожалуйста, мне срочно нужна помощь. Я установил Ubuntu, Apache, PHP, MySQL, phpMyAdmin — всё протестировано и работает. Статический IP включён. У меня есть маршрутизатор Mikrotik Routerboard на архитектуре Tile. Я хочу обеспечить возможность самостоятельной смены пароля от хотспота пользователями, а также отправку syslog Mikrotik на внешний веб-сервер. Могу ли я использовать вышеуказанный PHP-скрипт, чтобы позволить пользователям самостоятельно менять пароль от хотспота? Нужно ли загружать учётные данные пользователей на веб-сервер перед тем, как это заработает, или мне использовать внешний PHP-скрипт для авторизации? Где будут храниться учетные данные пользователей?
Учётные данные пользователя hotspot остаются на роутере. Единственное, что нужно передать скрипту — это учётные данные пользователя RouterOS. Далее идея аналогична входу через терминал и выполнению команд на роутере… Только вместо того, чтобы вы вручную вводили команды, когда пользователи звонят или как-то иначе обращаются, PHP выполняет их автоматически при отправке формы.
Вся схема такая: пользователи заходят на веб-страницу, вводят новый пароль, который хотят установить, затем PHP подключается к указанному роутеру с переданными учётными данными RouterOS и выполняет команду «set» для пароля текущего активного пользователя hotspot.
Большое спасибо, я так и сделал. Я проверил phpinfo по URL, чтобы убедиться, что PHP работает правильно. Он показал установленную информацию PHP, то же самое с Apache. Однако когда я запускаю указанный скрипт в браузере через адресную строку, страница отображается пустой и белой. В чём может быть проблема или ошибка?
Есть несколько возможных причин. Чтобы сузить круг, нужно посмотреть сообщения об ошибках от PHP. Откройте php.ini и найдите строки «display_errors», «error_reporting», «error_log», и выставьте их так:
display_errors = Off log_errors = On error_reporting = E_ALL | E_STRICT error_log = "php_errors.log"
Затем можно снова открыть phpinfo(), чтобы убедиться, что настройки применились. После этого запустите файл заново и проверьте наличие файла php_errors.log в той же папке. Откройте его и посмотрите, что там написано. Чаще всего проблема в том, что нужно разрешить PHP и/или Apache делать исходящие соединения. Если PHP работает как модуль Apache, внесите Apache в белый список, а если PHP запускается как FCGI — добавьте в белый список «php-cgi».
В верхней части вывода phpinfo показано, что я запускаю PHP как модуль Apache. Как разрешить исходящие соединения, используя белый список Apache?
Система: Linux nuc-ubuntu 4.4.0-128-generic #154-Ubuntu SMP Fri May 25 14:14:58 UTC 2018 i686 Дата сборки: 2 мая 2018 12:43:14 Server API: Apache 2.0 Handler Поддержка виртуальных директорий: отключена Путь к файлу конфигурации (php.ini): /etc/php/7.0/apache2 Загруженный файл конфигурации: /etc/php/7.0/apache2/php.ini Папка для дополнительных .ini файлов: /etc/php/7.0/apache2/conf.d
Ниже вывод команды sudo tail -f /var/log/apache2/error.log:
[Mon Jun 18 14:32:57.619324 2018] [:error] [pid 17550] [client 192.168.8.118:52272] PHP Warning: require_once(PEAR2/Autoload.php): не удалось открыть поток: Нет такого файла или каталога в /var/www/html/changepass.php на строке 5 [Mon Jun 18 14:32:57.619413 2018] [:error] [pid 17550] [client 192.168.8.118:52272] PHP Fatal error: require_once(): Не удалось подключить обязательный файл ‘PEAR2/Autoload.php’ (include_path=‘.:/usr/share/php’) в /var/www/html/changepass.php на строке 5
Всем привет, нужна срочная помощь. Как установить Pyrus, Pear2 и PEAR2/Autoload.php? Пожалуйста, помогите с пошаговой инструкцией. У меня уже установлено и протестировано: Ubuntu16.04, Apache2, php7.0 и php7.2, Pear. Перепробовал много разных гайдов в интернете, но ни один не сработал — постоянно возникают проблемы или ошибки при установке Pyrus, Pear2 и PEAR2/Autoload.php.
Самым быстрым способом будет скачать файл .phar и подключить его, вместо того чтобы пытаться установить PEAR или Pyrus. Либо можно установить composer, выполнить команду «composer require pear2/net_routeros:@beta» и подключить «vendor/autoload.php». Последняя версия API клиента недоступна через PEAR и Pyrus, потому что репозиторий на GitHub не синхронизирован с живым сайтом pear2.php.net (и, к сожалению, я не могу инициировать такую синхронизацию).
Привет, boen_robot, вот лог ошибки после установки composer, что мне делать дальше. PHP Fatal error: require_once(): Не удалось открыть требуемый файл ‘vendor/autoload.php’ (include_path=‘.:/usr/share/php’) в /var/www/html/changepass.php на строке 5.
Во-вторых, когда я выполняю команду sudo composer require pear2/net_routeros:* @beta, получаю следующее: ./composer.json был создан Загрузка репозиториев composer с информацией о пакетах Обновление зависимостей (включая require-dev) Ваши требования не могут быть разрешены в установочный набор пакетов. Проблема 1 pear2/net_routeros 1.0.0b6 требует pear2/net_transmitter >=1.0.0b1 → доступно в версиях pear2/net_transmitter[1.0.0b1, 1.0.0b2, dev-master], но они конфликтуют с вашими требованиями или параметром minimum-stability. pear2/net_routeros 1.0.0b5 требует pear2/net_transmitter >=1.0.0a5 → доступно в версиях pear2/net_transmitter[1.0.0a5, 1.0.0b1, 1.0.0b2, dev-master], но они конфликтуют с вашими требованиями или minimum-stability. pear2/net_routeros 1.0.0b4 требует pear2/net_transmitter >=1.0.0a4 → доступно в версиях pear2/net_transmitter[1.0.0a4, 1.0.0a5, 1.0.0b1, 1.0.0b2, dev-master], но они конфликтуют с вашими требованиями или minimum-stability. Запрос на установку pear2/net_routeros * @beta → доступно в версиях pear2/net_routeros[1.0.0b4, 1.0.0b5, 1.0.0b6]. Установка не удалась, удаление ./composer.json.
Я в тупике, никак не продвигаюсь. Это надо срочно решить. Пожалуйста, нужна срочная помощь.
[Чт 21 июня 2018 15:03:45.435480] [:error] [pid 17527] [client 192.168.0.2:33912] Фатальная ошибка PHP: Необработанная ошибка: класс ‘PEAR2\Net\RouterOS\Client’ не найден в /var/www/html/changepass.php на строке 12 Трассировка стека: #0 {main} брошено в /var/www/html/changepass.php на строке 12
[Чт 21 июня 2018 15:03:48.983596] [:error] [pid 17528] [client 192.168.0.2:33914] Фатальная ошибка PHP: Необработанная ошибка: класс ‘PEAR2\Net\RouterOS\Client’ не найден в /var/www/html/changepass.php на строке 12 Трассировка стека: #0 {main} брошено в /var/www/html/changepass.php на строке 12
[Чт 21 июня 2018 15:04:03.567555] [:error] [pid 17524] [client 192.168.0.2:33916] Скрипт ‘/var/www/html/slugify/changepass.php’ не найден или недоступен для статуса
[Чт 21 июня 2018 15:04:15.048245] [:error] [pid 17525] [client 192.168.0.2:33918] Фатальная ошибка PHP: Необработанная ошибка: класс ‘PEAR2\Net\RouterOS\Client’ не найден в /var/www/html/changepass.php на строке 12 Трассировка стека: #0 {main} брошено в /var/www/html/changepass.php на строке 12
Ниже строка 12 из /var/www/html/changepass.php, на которую ссылаются ошибки: $client = new RouterOS\Client(‘192.168.8.118’, ‘admin’, ‘password’);