Веб-консоль на PHP


    Как-то я уже писал о веб-консоли через которую можно управлять Git-ом. Теперь же я решил развить её и сделать универсальную консоль.


    Консоль по прежнему представляет из себя всего один файл (console.php), который можно кинуть куда-угодно открыть его в браузере и пользоваться как обычным терминалом.

    Все настройки находятся вверху файла, либо вы можете создать отдельный файл с настройками console.config.php.

    В комментариях к предыдущей статье говорили о том что нужно добавить защиту от несанкцианированного доступа. Теперь консоль поддерживает Digest HTTP авторизацию.

    Так же были улучшены автодополнение, история и мобильная версия консоли.

    И появились новых 6 тем оформления из которых каждый найдёт подходящую для себя.
    Посмотреть можно тут: default, white, green, grey, far, ubuntu.

    Форкайте и качайте на гитхабе: github.com/elfet/console.
    Поделиться публикацией

    Похожие публикации

    Комментарии 43

      +2
      А для чего это? Примеры применения?
        0
        Ну, вот я сталкивался с такой проблемой, что проект развернут на удаленном сервере, а рабочая среда на локальной машине через ssh/sftp. И нужно что-то выполнить в консоли на сервере (в симфони контроллер создать и т.п.).
          +6
          И что же мешало залогиниться на сервер через тот же ssh и выполнить что-то в консоли?
            –6
            Лень. Ведь проще запустить что-то в соседней вкладке, чем открывать putty.
              +2
              Уже давно не надо открывать никакие путти, для основных браузеров есть ssh клиенты в виде плагинов. Например, secure shell для хрома.
                +2
                Доверять браузеру в общем и гуглохрому в частности пароли к серверам…
                Рискованное это дело.
                  0
                  А доверять путти, который делает один человек, давно уже на него забивший — не рискованное? :)
                    0
                    В нашем мире все рискованное дело, что не имеет открытого исходника.
                      0
                      SSH плагины для браузеров open source.
                    +1
                    А собственно веб-консоль не через браузер работает?)
                      0
                      Конечно. Для этого уже давно придумали доступ по ключам.
                      Да и Вы знаете, SSH — это все-таки Secure SHell. А вот такой консоли я бы меньше стал доверять.
                      Такую поделку можно использовать разве что в виде backdoor, если соберетесь производить темные злодеяния (но таких бэкдоров и так в сети предостаточно).
                      А для работы проще в терминале набить $ ssh myserver ;)
                    +8
                    Вероятно вам задали этот вопрос, потому что для не Windows пользователей, ssh — это такой же стандарт из коробки как web browser…
                    0
                    Хотя-бы самое тупое и банальное отсутствие ssh.
                    Да, я даже могу понять пользователей винды, которым лень запустить putty, могу понять плагин для браузера.
                    Но когда долбоклюй заказчик говорит — а вот у нас тут сервер без ssh — мы за год уже заплатили. Или если сервер уже брался давно, и там сидели чудики, которые все по ftp кидали.
                  –1
                  Кончно же можно подключиться и по ssh, но удобнее пользоваться с телефона для того, что бы что-нибудь быстро поправить.
                    +13
                    удобнее и безопаснее поставить ssh-клиент на телефон имхо
                      +4
                      помоему если мы говорим про телефон, то какое к черту удобство?
                    +1
                    Очень часто бывает что есть доступ только FTP и очень удобно использовать подобное решение.
                    Примеры применения консоли могут быть разнообразны.
                    +1
                    Не совсем понимаю, для чего оно надо. Почему нельзя по ssh на сервер зайти и выполнить там что нужно?
                      +2
                      Можно по ssh, а теперь ещё можно и через браузер :)
                        +2
                        Бывает, что нужно ВНЕЗАПНО зайти с чужого компьютера или политика не позволяет что-то ставить.
                          +2
                          Если у Вас есть необходимость что-то такое сделать ВНЕЗАПНО, раскрывать root доступ по php — не самое практичное и хорошее решение для этого. Намного дешевле и проще купить смартфон и поставить на него Connect Bot
                            0
                            Не обязательно под root, можно под любым пользователем. По умолчанию по www-data.
                            0
                            Есть web-based ssh-клиенты, работающие через вебсокеты или поллинг.

                            Даже в википедии есть статья со ссылками на таковые клиенты.
                            +1
                            Самое очевидное, если надо подключится к серверу из-за прокси.
                            Понадобилось однажды подключиться к рабочей машинке из локальной сети банка — доступ в онлайн только через прокси и никак иначе.
                              +1
                              А ещё бывает, что доступ по ftp есть, а ssh отвалился или вообще не доступен. Вот тогда-то и выручит эта замечательная штука!
                                0
                                Ага, особенно такое часто бывает когда твой ботнет кейлогеров присылает очередное письмо.
                              +1
                              Спасибо, штука очень нужная. Даёте добро на включение вашей консольки в админку контроллера virt2real? Сейчас у меня там совсем уж простенькая консолька, ваша мне больше нравится.
                                +2
                                Да, конечно же. Буду рад если пригодится.
                                  +4
                                  Вроде норм вписалось :-)



                                  За girl отдельное спасибо.
                                0
                                Спасибо!

                                Пригодится =)

                                Форкнул, пока на локалхосте поиграю.
                                  0
                                  Жаль, что mc и lynx не работают, было бы круто!
                                  0
                                  Есть программа ajaxterm, которая создает http-сервер, отображающий терминал, реализованный средствами JavaScript, соединенный с ssh-сервером. Преимущество с точки зрения безопасности в том, что точка входа на сервер всё равно одна (ssh-сервер), а программа ajaxterm является ssh-клиентом и может быть запущена без прав root. Программа может оказаться полезной, когда нет ssh-клиента, но есть браузер, либо когда порт ssh-сервера заблокирован умными людьми. Бонус: ajaxterm есть в репозиториях Debian и Ubuntu.
                                    0
                                    Ещё есть tty.js и куча других. Мой отличается там что это всего-лишь один php файл. Который даже на shared хостинге работает (см. примеры — они на shared хостинге от masterhost).
                                      0
                                      tty.js, кстати, выглядит весьма многообещающе. Исходя из описания, он довольно близок к полной поддержке xterm, что весьма круто.
                                    0
                                    А чем моя простенькая консолька не понравилась ( habrahabr.ru/post/139878/ )? Она поддерживает настоящую эмуляцию терминала, включая vim…

                                    Ну и более продвинутая версия, которая уже требует компиляции демона на Go: habrahabr.ru/post/141068/. Но зато вторая версия позволяет делать более полноценную эмуляцию терминала и много других вкусностей.
                                      0
                                      У меня Ваш терминал не работает на OS X 10.8.3 с дефолтным апачем и пхп. Висит в FF/Chrome/Safari.
                                      Не подскажете, в чём может быть проблема?
                                        0
                                        Реализация на «чистом PHP» полагается на то, что flush() работает. Я тестировал на MAMP, на дефолтном апаче тоже должно работать, но таких гарантий я дать не могу. Вы можете почитать комментарии к первому треду, там много различных советов по тому, как заставить это работать.
                                      +1
                                      Кстати говоря, по поводу следующего вашего кода рекомендую почитать мой коммент: habrahabr.ru/post/139878/#comment_4673544

                                       $output = stream_get_contents($pipes[1]);
                                          fclose($pipes[1]);
                                      
                                          $error = stream_get_contents($pipes[2]);
                                          fclose($pipes[2]);
                                      
                                      +2
                                      Напоминает о руководствах для скрипт киддсов по заливке на ломаный сервер php шеллов.
                                        +1
                                        А зачем Вы делаете urldecode переменных из $_GET? Они же автоматически декодятся.
                                          +1
                                          Да, действительно незачем. :)

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое