Pull to refresh

Устанавливаем lighttpd на iPhone 2G или Web-сервер в кармане

Сегодня утром помогал парню сделать jailbreak для его iPod'a и мне в голову пришла мысль, ведь на айфоне стоит почти полноценная UNIX система, что нам мешает использовать её в полной мере своих возможностей? Для начала я решил установить на iPhone веб сервер lighttpd, как это сделать я опишу в текущей статье.

Все действия я производил на iPhone 2G, вот его характеристики:
  • ОС: iOS 3.1.3 Jailbreak (redsn0w)
  • ОЗУ: 128 MB DRAM
  • HDD: 8 GB
  • Связь: Wi-Fi
  • Installer: Cydia
  • Процессор: 667 МГц


В принципе подойдёт любой iPhone/iPod Touch с джейлбрейкнутой прошивкой.Достаточно теории — переходим к практике.


Запускаем Cydia (у вас может быть Installer или Rock) на вашем iдевайсе и устанавливаем следующие программы:
MobileTerminal (У кого через поиск не находит ищите вручную.В принципе подойдёт любой другой терминал для iPhone или ssh клиент)
Aptitude

Все эти программы можно найти в этом репозитории apt.saurik.com
После установки перезагружаем iдевайс, заходим в программу MobileTerminal и выполняем следующие действия:

Установка требуемых пакетов

#Авторизируемся
su root (стандартный пароль alpine)

#Обновляем список пакетов
aptitude update

#Устанавливаем текстовый редактор nano
aptitude install nano

#Устанавливаем мониторинг процессов (демонов)
aptitude install top

#Устанавливаем Web-сервер
aptitude install lighttpd

Тепеь приступаем к настройке lighttpd:

#Создаём папки необходимые для работы lighttpd
mkdir /etc/lighttpd
mkdir /usr/local/ && mkdir /usr/local/www/


#Создаём файлы отчётов
touch /var/log/lighttpd.access.log
touch /var/log/lighttpd.error.log


#Выставляем права для лог-файлов на чтение и запись
chmod 766 /var/log/lighttpd.access.log
chmod 766 /var/log/lighttpd.error.log


#Настраиваем конфиг сервера
nano /etc/lighttpd/lighttpd.conf

Настройка конфига сервера

В открывшийся редактор вставляем этот текст:
## список всех модулей
server.modules = (
"mod_rewrite",
"mod_redirect",
"mod_alias",
"mod_access",
# "mod_cml",
# "mod_trigger_b4_dl",
# "mod_auth",
# "mod_status",
# "mod_setenv",
"mod_fastcgi",
# "mod_proxy",
# "mod_simple_vhost",
# "mod_evhost",
# "mod_userdir",
# "mod_cgi",
# "mod_compress",
# "mod_ssi",
# "mod_usertrack",
# "mod_expire",
# "mod_secdownload",
# "mod_rrdtool",
"mod_accesslog" )

## Корневая папка сервера
server.document-root = "/usr/local/www/"

## Лог ошибок. Автоматически не создается
server.errorlog = "/var/log/lighttpd.error.log"

# Пример http://www.mysite.ru/index.php
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )

## Где то читал что это важная опция =)
server.event-handler = "freebsd-kqueue"

# Расширения
mimetype.assign = (
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "application/ogg",
".wav" => "audio/x-wav",
".gif" => "image/gif",
".jar" => "application/x-java-archive",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar",
# default mime type
"" => "application/octet-stream",
)

## Лог доступа. Тоже не создается автоматически, следовательно создаем вручную
accesslog.filename = "/var/log/lighttpd.access.log"

## Пид-файл сервера
server.pid-file = "/var/run/lighttpd.pid"

## Просмотр пустых директорий
dir-listing.activate = "enable"

## Пользователь, от которого работает сервер
server.username = "nobody"

## Группа, от которой работает сервер
server.groupname = "nobody"


Включаем сервера

#Заводим lighttpd
lighttpd -f /etc/lighttpd/lighttpd.conf

#Проверяем запустился ли lighttpd
top

Среди всех процессов выведенных top'ом вы увидите примерно следующие:
289 lighttpd 0.0% 0:00.25 1 10 63 496K 6488K 764K 17M

Если lighttpd там не отображается перезагрузите iдевайс и попробуйте вывести top снова.Если вывода нет вам придётся проделать все действия заново — вы что-то упустили…

Вот собственно и всё, Web сервер готов к использованию.Создав файл index.html в папке /usr/local/www/ и зайдя через браузер на localhost мы увидим следующее:

image
Как и для чего это юзать решать вам :3
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.