Ваше решение действительно, но требует нескольких дополнительных соображений.
Вы должны подключиться к вашему серверу через HTTPS и с проверкой сертификата, чтобы запросить и получить любые доступные обновления.
Вы должны подписать свои обновления закрытым ключом, и клиент должен проверить их как подлинные перед их применением.
Если вам нужно удалить устаревший файл из установки, разархивирование не сделает этого, возможно, в каждом обновлении должен быть скрипт «upgrade.php», который выполняется для выполнения каких-либо дополнительных необходимых шагов.
Ваш сценарий обновления должен сделать резервную копию веб-каталога и базы данных перед выполнением обновления и сохранять резервную копию до тех пор, пока пользователь не запросит ее удаление.
Сделайте ваши обновления инкрементными, поэтому для обновления с 1 -> 3 вам нужно сначала обновить до версии 2. Это, конечно, было бы прозрачно для пользователя, но гарантировало бы, что обновления между версиями будут завершены и все обновления / модификации базы данных будут применены в правильном порядке.