Pull to refresh

Ставим PHP на iPhone

Reading time 2 min
Views 5.2K
Сразу возникает вопрос, для чего это нужно. И сразу ответ: просто побаловаться. Но как 2 варианта использования:
1) Таскать сайт, который всегда с собой, чтобы кому-то показать.
2) Разработка ПО для самого iPhone в связке с PhoneGap. PhoneGap — это SDK для разработки приложений на JS с использованием акселерометра, GEO location и т.д. То есть вместо Objective C мы можем использовать JavaScript. И AJAX. И PHP/Python/Ruby.
Это будет необрезанный PHP, за единственным исключением: в виде СУБД тут может быть использован только sqlite(в том числе и через PDO).
Вот как это будет выглядеть в итоге:

И еще: вместе с PHP можно установить Python и Ruby. А тут уж и до Django недалеко(не знаю насчет ROR).
Приступим к установке.

Для начала потребуется iPhone с прошивкой 2.2.1(это последняя на данный момент) и Wi-Fi на компьютере/ноутбуке.
1. Сначала следует выполнить процедуру анлока телефона с установкой Cydia.
2. Установим OpenSSH через Cydia. Теперь мы сможем соединяться с телефоном по ssh и sftp. Я использую putty и FileZilla для этих целей.
3. Соединяемся с телефоном по ssh. Пароль «alpine»(лыжник по-немецки), устанавливаем PHP и lighttpd(apt-get install php lighttpd), но это можно сделать и через Cydia. Создаем каталоги /var/log/lighttpd и /var/www (mkdir /var/log/lighttpd && mkdir /var/www)
4. Нужно создать конфигурационный файл. Можно использовать vim/mcedit(думаю, понятно, как устанавливать) из консоли, а можно залить его по sftp.
Конфиг должен иметь имя /etc/lighttpd.conf, сам конфиг лежит здесь.
5. Запускаем lighttpd. Для этого выполним команду lighttpd-angel -f /etc/lighttpd.conf
6. Чтобы убить демон, надо выполнить killall lighttpd
7. Можно автоматизировать запуск/остановку сервера через BossPrefs, тогда не нужна будет консоль. А можно установить MobileTerminal и рулить консолью прямо с телефона.



На iPhone нормально прижилась WordPress с плагином для sqlite. Только придется небольшой патчик сделать: дописать в начало index.php строку «function mysql_connect() { return null; }»
Tags:
Hubs:
+85
Comments 82
Comments Comments 82

Articles