Веб-сервер для Android

Можно ли разместить веб-сервер внутри самого телефона Android? Похоже на Apache. Я хочу получить доступ к веб-серверу из самого мобильного браузера.

Не удалось найти ссылку в Интернете. Это возможно?

заранее спасибо

7 ответов

Решение

Коротко: да. Если вы смотрите на код, проверьте org.apache.http пакет. Если вы смотрите на готовое приложение, проверьте iJetty и kWS.

KSWEB - пакет для веб-разработки на платформе Android. Он состоит из: веб-сервера, языка программирования PHP и базы данных MySQL. KSWEB позволяет вам организовать платформу для запуска и отладки веб-приложений (сайтов) на вашем Android-устройстве. Работать с приложением очень просто. Для запуска сервера достаточно запустить наше приложение, выберите, если необходимо, порт и корневой каталог.

По умолчанию KSWEB содержит полнофункциональный файл конфигурации сервера PHP и MySQL. Однако, если вы хотите что-то изменить, перейдите в настройки сервера и нажмите на пункт "INI Files". Файлы конфигурации будут перенесены на SD-карту вашего устройства по адресу "/mnt/sdcard/ksweb/ini/", если она доступна. При повторном нажатии на пункт настроек "INI Files" KSWEB будет использовать внутренние файлы конфигурации.

Что в планах?

  1. Ознакомьтесь с требованиями к операционной системе Android, в частности снизьте требования к версии Android для запуска приложения до 2.0;
  2. Добавлена ​​возможность отслеживать поток ошибок, возникающих при работе с php и mysql;
  3. Переместите файлы журнала на сервер и mysql на sdcard;
  4. Расширьте дополнительные библиотеки PHP. Например, pdo_mysql;
  5. Переместите файлы базы данных в MySQL на SDCard.

https://play.google.com/store/apps/details?id=ru.kslabs.ksweb http://www.kswebserver.ru/

Сервер приложений для Android от Atjeews, небольшой размер, самым большим преимуществом для меня была поддержка jsp.

Я недавно установил BitWeb, который я очень рекомендую. У меня есть рутированный телефон с несколькими дополнительными опциями (и я также рекомендую рутирование, если у вас его нет, и вы планируете делать какие-либо операции с сервером вообще)

BitWeb хорош тем, что включает в себя сервер lighttpd, урезанный PHP-движок и урезанный MySQL-движок, дающий вам быструю и грязную систему LAMP с одним приложением. Я использую мой вместе с приложением sshd для получения оболочки busybox, я установил nano и использую соединение ssh, чтобы сделать общий ресурс sshfs для редактирования контента с моего компьютера. Bitweb включает в себя возможность настройки параметров конфигурации для всех трех сервисов, и мне даже удалось настроить несколько серверов Zend, работающих только на одном маленьком сервере, с небольшой настройкой правил перезаписи и настроек application.ini.

https://play.google.com/store/apps/details?id=com.andi.serverweb&hl=en

Если вы хотите увидеть некоторые параметры конфигурации, которые мне пришлось настроить, я могу либо опубликовать их, либо ответить по электронной почте с тем, что я настроил, а также с некоторыми комментариями по поводу подводных камней, с которыми я столкнулся на этом пути. (Кстати, я недавно разместил эту ветку как тему с автоответчиком, хотя она оказалась не специфичной для платформы Android, а для lighttpd/Zend)

Я просто обескуражен тем, что t-mobile/HTC, похоже, не планирует обновлять свой телефон за пределами Gingerbread, так как я понимаю, что в некоторых новых ОС Android есть способы доступа к некоторым аппаратным средствам (таким как камеры) из сценариев или скомпилированных код без суеты. Если я хочу сделать это сейчас, мне нужно либо жестко запрограммировать свой собственный интерфейс к ним, либо получить приложение, способное выполнить предварительную проверку, которое действительно выполняет задачи на моем телефоне при одновременной работе со службами web / mysql / php,

Я мог бы быть последним, кто ответит на этот вопрос, но поверьте мне, это самый простой и последний ответ в 2020 году для тех, кому нужно запустить веб-сервер на Android и обслуживать несколько клиентов без реализации каких-либо сторонних библиотек.

Скопируйте свой HTML-файл в папку с ресурсами Android как server.html и объявить serverSocket как глобальный в вашем классе.

Запустите приведенный ниже код в новом потоке.

try {
    serverSocket = new ServerSocket(8080);
    while (true) {
        final Socket socket = serverSocket.accept();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    PrintWriter os = new PrintWriter(socket.getOutputStream(), true);
                    String request = is.readLine();
                    Scanner scanner = new Scanner(getAssets().open("server.html"));
                    String response = scanner.useDelimiter("\\Z").next();
                    os.print("HTTP/1.0 200" + "\r\n");
                    os.print("Content type: text/html" + "\r\n");
                    os.print("Content length: " + response.length() + "\r\n");
                    os.print("\r\n");
                    os.print(response + "\r\n");
                    os.flush();
                    socket.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }).start();
    }
} catch (Exception ex) {
    ex.printStackTrace();
}

Это все, что ваш собственный Java-сервер Android (без сторонних библиотек) работает на порту 8080.

Если вы хотите использовать запросы DB и POST, попробуйте реализовать соединения SQLite и WebSocket для двусторонней связи.

https://developer.android.com/reference/java/net/ServerSocket

Проверьте KSWEB и Bit Web Server, оба с использованием Lighttpd als server, php и поддержкой mysql.

Я попробовал KSWEB, он работает замечательно, но я пока не знаю, как использовать modrewrite. но это должно быть работа. Вы можете попробовать пробную версию KSWEB перед покупкой.

KSWEB стоит чуть больше, чем Bit Web Server, всего 0,XX $. если вы решили купить его, опубликуйте свой опыт здесь... я тоже хочу знать...:)

Бит веб-сервер

KSWEB

До сих пор я видел все эти заявки платными. А у других нет phpmyadmin. И я нашел, наконец, один. Вы можете взглянуть на сервер kickweb.

Веб-сервер Android PHP/MySQL/PHPMyAdmin

Требования

  • Внутренняя память должна быть не менее 50 МБ!
  • Минимальный Android API 9 (GINGERBREAD)!

Характеристики

  • Lighttpd 1.4.34
  • PHP 5.5.9
  • MySQL 5.1.62
  • MSMTP 1.4.31
  • phpMyAdmin 4.1.10
  • Nginx 1.5.11

Корень документа по умолчанию (htdocs)

  • Путь: / sdcard / htdocs /

URL по умолчанию

  • Адрес: localhost:8080

Информация phpMyAdmin

  • Адрес: localhost: 10000
  • Имя пользователя: root
  • Пароль:

Информация MySQL

  • Host: localhost
  • Порт: 3306
  • Имя пользователя: root
  • Пароль:

Если вам не удается заставить его работать, вы можете посмотреть это видео: https://youtu.be/3_m3vNGTp74

Да, это возможно. Может быть не так сложно, как Apache, но возможно.

Взгляните на Moto Phone Portal, например, в его базе есть веб-сервер. И было несколько приложений для этого в Маркете.

Серверы Ultimate Pro, всего 8 фунтов. Включите PHPAdmin, MySQL и множество других серверов. В настоящее время я использую его как прокси.

Другие вопросы по тегам