Я пытаюсь написать скрипт обновления для одного из наших сайтов. В настоящее время скрипт разархивирует файлы, предоставленные по ссылке обновления, и разархивирует в каталог.
Моя проблема, если есть новая версия себя, т.е. upgrader-new.php
Мне нужно, чтобы скрипт завершился, а затем удалил сам, затемupgrader-new.php
быть переименован в upgrader.php
,
Единственное решение, которое я могу придумать, — это создать третий файл, т.е. upgrade-assist.php
который будет запущен перед любым обновлением, чтобы проверить, upgrader-new.php
существует, и если это так, удалите оригинал и переименуйте новый в правильное имя. Я предвижу проблемы, потому что оригинальный сценарий все равно придется вызывать upgrader-assist.php
и насколько я знаю, вы не можете удалить работающий скрипт?
Какие-либо предложения?
Спасибо!
насколько я знаю, вы не можете удалить работающий скрипт?
Вы можете попробовать это:
<?php unlink(__FILE__);
Это прекрасно, если нет других процессов, использующих этот файл (и, конечно, запущенный процесс имеет достаточно прав для этого).
Файл не обрабатывается и выполняется построчно, но загружается в память, поэтому вы можете свободно переименовывать или удалять его, и он все равно будет работать до конца (или фатальная ошибка).
Других решений пока нет …