Создание самораспаковывающегося исполняемого файла с использованием PHP - PullRequest
7 голосов
/ 12 февраля 2011

Самораспаковывающийся исполняемый файл, который я пытаюсь разработать, является установщиком. Конечный пользователь посетит сайт, затем ему будет предложено зарегистрироваться на сайте, и им будет предоставлена ​​загрузка. Эта загрузка - самораспаковывающийся исполняемый файл, который установит программное обеспечение на компьютер конечного пользователя вместе с файлом конфигурации, в котором будет уникальный идентификатор пользователя. Программное обеспечение является службой Windows, поэтому оно не сможет просто спросить пользователя его имя пользователя и пароль.

Чтобы иметь возможность вставить уникальный идентификатор зарегистрированного пользователя в программу установки, я должен сгенерировать программу установки на лету. После изучения и использования собственного опыта я решил, что самораспаковывающийся исполняемый файл будет лучшим вариантом. Вопрос, который у меня сейчас возникает, - как мне сгенерировать один, используя PHP? Изучив эту проблему, я обнаружил, что наиболее распространенным решением было установить исполняемый файл, который мог бы создавать самораспаковывающиеся исполняемые файлы на сервере, а затем вызывать его из PHP. Однако выполнение исполняемого файла на моем веб-хосте невозможно, поэтому это нереальное решение.

Ответы [ 3 ]

2 голосов
/ 12 февраля 2011

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

Я думаю, что в этом случае вам нужно будет переключиться на вебхост, который позволяет вам сделать это (или арендовать выделенный или виртуальный сервер).Вы можете создавать ZIP-файлы изнутри PHP, когда необходимые библиотеки установлены, но это все.Создание самораспаковывающихся исполняемых файлов отсутствует в меню.

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

0 голосов
/ 12 февраля 2011

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

В любом случае, возможно, ваше приложение может получить доступ к Интернету, чтобы получить нужные файлыпериодически?

Или вы можете ссылаться на внешний файл PHP в вашей программе, например /data.php?userid=1222&token=9999, который должен быть достаточно безопасным.

0 голосов
/ 12 февраля 2011

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

Вы можете легко добавлять файлы в PHP: и архив с вашей программой, и пользовательские данные.Но вам нужно написать собственный экстрактор, который будет знать об этом формате.

...