- 13, May 2024
- #1
Привет. Мне удалось создать автоматизированный способ компиляции простого PHP-приложения в кучу статических файлов, и я делюсь этим, надеюсь, что некоторые из вас найдут это полезным. Это имеет некоторые преимущества:
Я пробовал несколько статических генераторов, но в конце концов они выстрелили мне в ногу. Поэтому для меня лучше всего запустить PHP локально, скомпилировать и загрузить на сервер.
Скомпилировать скрипт Я предполагаю, что у PHP-приложения красивые URL-адреса, все они заканчиваются символом «/». Прежде всего, установите две записи в /etc/hosts, указывающие на 127.0.0.1 (example.home и example.sandbox). Как только приложение PHP запускается на http://example.home
, я выполняю рекурсивную загрузку с помощью wget с -р и --adjust-расширение параметры. Это загрузка полных сайтов и вложений index.html завершение каждой страницы. Следующее, что нужно сделать, это заменить доменное имя в случае, если вы используете базовый href HTML-тег. Следующее, что нужно сделать, это заменить доменное имя в случае, если вы используете базовый href HTML-тег.
Упаковка всего этого в небольшой скрипт:
- Безопасность: отсутствие кода — лучший код.
- Скорость: более быстрое время отклика и лучшая масштабируемость.
- Цена: хостинг сайта обойдется дешевле.
- Стабильность: чем меньше вещей работает, тем меньше шансов, что что-то сломается.
Я пробовал несколько статических генераторов, но в конце концов они выстрелили мне в ногу. Поэтому для меня лучше всего запустить PHP локально, скомпилировать и загрузить на сервер.
Скомпилировать скрипт Я предполагаю, что у PHP-приложения красивые URL-адреса, все они заканчиваются символом «/». Прежде всего, установите две записи в /etc/hosts, указывающие на 127.0.0.1 (example.home и example.sandbox). Как только приложение PHP запускается на http://example.home
, я выполняю рекурсивную загрузку с помощью wget с -р и --adjust-расширение параметры. Это загрузка полных сайтов и вложений index.html завершение каждой страницы. Следующее, что нужно сделать, это заменить доменное имя в случае, если вы используете базовый href HTML-тег. Следующее, что нужно сделать, это заменить доменное имя в случае, если вы используете базовый href HTML-тег.
Упаковка всего этого в небольшой скрипт:
for i in `find example.sandbox -name "*html"`; do sed -i 's/example.sandbox/example.com/g' $i ; done
rsync -czrpgoD --rsh="ssh" example.sandbox/* server:/htdocs/example.com
ssh server "sh ~/wwwsync.sh"
Код (разметка): Загрузить скрипт
После проверки работоспособности example.sandbox измените ссылку example.sandbox на example.com и загрузите ее на сервер:
rm -rf example.sandbox wget -r --adjust-extension [URL='https://lumtu.com/yti/bwbbwbWVodHRwOi8vZXhhbXBsZS5oSZs']http://example.home[/URL] mv example.home example.sandbox for i in `find example.sandbox -name "*html"`; do sed -i 's/example.sandbox/example.com/g' $i; done
Код (разметка): последняя строка выполняет сценарий для синхронизации второго сервера для обеспечения избыточности.
Статья по теме: Пол Викси «Иди статично или иди домой».