Как эффективно упаковать сервер apache в настольное приложение - PullRequest
1 голос
/ 10 октября 2010

Привет всем Мне нужен сервер Apache с интерпретатором php для распространения в моем настольном приложении Причина в том, что мое приложение создает отчеты, которые в основном являются PHP-кодом, который работает на веб-сервере Apache
Удобно ли для пользователя распространять сервер Apache с интерпретатором php вместе с настольным приложением?
Также мне нравится иметь возможность запускать / останавливать сервер из своего приложения, я знаю, что это не распространено, но как это сделать.
Так что ни один пользователь techi не попадет в беду

1 Ответ

3 голосов
/ 17 октября 2010

Я однажды делал такой проект, но решил использовать lighty вместо apache из-за того, насколько велик дистрибутив Apache.

Если вы хотите использовать Apache, взгляните на XAMPP . Он включает в себя не только Apache, но его очень легко запустить и запустить.

Поскольку моим целевым дистрибутивом была Windows, я использовал AutoIT , чтобы написать скрипт, который бы:

  1. запустить сервер
  2. запустить браузер
  3. выключить сервер, когда браузер был закрыт

Я скомпилировал скрипт AutoIT в исполняемый файл, и именно так мои пользователи будут запускать программу. Вы не указали свою целевую платформу. Если это mac или * nix, вы можете написать сценарий оболочки, чтобы сделать то же самое. Ключ в том, что он должен работать в фоновом режиме, ожидая закрытия браузера.

Я использовал NSIS для создания установщика, для настройки всего и создания значков в меню «Пуск».

Поскольку я пытался уменьшить размер файла и не полагаться на интернет-соединение, я использовал sqlite для своей базы данных вместо MySQL.

Я также решил распространять браузер K-Meleon с моим приложением, чтобы я всегда знал, какой браузер используют мои пользователи для взаимодействия с моим кодом.

Несколько вещей, которые вы хотите иметь в виду:

  • Lighty должен быть настроен на
    • используйте нестандартный порт на тот случай, если у ваших пользователей уже работает порт 80
    • разрешить соединения только с локального хоста
  • Возможно, вы захотите переименовать исполняемые файлы для lighty и k-meleon, чтобы вы знали, что они являются процессами, используемыми вашим приложением.

Несмотря на то, что я делал этот тип проекта раньше, я, вероятно, не буду строить что-то подобное в будущем, и я не рекомендую его в качестве метода для создания настольных приложений.

Я решил построить свое приложение таким образом, потому что скоро уйду с работы, и, поскольку я построил наш веб-сайт на PHP, я решил, что любой, кто займет мое место, будет знать PHP, а создание приложения таким образом будет убедитесь, что они могут оказать поддержку.

...