Несколько других ответов предлагают специфичные для PHP инструменты развертывания, но, поскольку я не очень хорошо знаком с PHP, я дам несколько общих советов. Эти предложения могут быть излишними из-за других уже предложенных инструментов.
Прежде всего, не загружайте новый файл .htaccess каждый раз - просто поместите два из них на свой сервер. Возможно, назовите их .htaccess-перманент и .htaccess-maintenence . Затем создайте символическую ссылку на ту, которая должна быть активной. Затем, после того, как вы проверили, что в доступе один раз правильно отказано, вам не нужно выполнять этот этап ручного тестирования каждый раз, когда вы делаете обновление.
Я бы также написал сценарий оболочки, чтобы сделать для меня почти все. Мой новый рабочий процесс будет выглядеть так:
- Загрузить новый код на сервер в каталоге с именем new /
- Войдите на сервер через оболочку и выполните скрипт upgrade
- Тестирование нового сайта
- Выполнить обновить-завершить
Конец.
Теперь для интересной части скрипт upgrade сделает это:
- Он удалит символическую ссылку .htaccess и заново создаст ее, указав на .htaccess-maintenence .
- Будет скопирован текущий код в current / в backup /
- Он будет выполнять резервное копирование БД, используя те же самые команды, которые использует PHPMyAdmin
- Переместит содержимое new / (которое вы только что загрузили) в current /
- Он выполнит сценарии для БД
И скрипт upgrade-finalize будет просто:
- Удалите символьную ссылку .htaccess и заново создайте ее, указав на .htaccess-constant еще раз
Единственной, возможно, хитрой частью здесь будет получение точных команд, которые PHPMyAdmin использует для резервного копирования вашей базы данных, но, вероятно, это простая команда mysqldump, и вы, вероятно, можете получить эту информацию из PHPMyAdmin или некоторых журналов или чего-то еще. Извините, я не знаю больше о PHPMyAdmin, чтобы помочь в этой конкретной области.