
Я хотел настроить тестовый сервер в своей домашней сети, чтобы я мог разрабатывать свой сайт локально и просто обновлять его, когда я исправлю все неполадки. Этим летом я начал изучать PHP (я работаю студентом в университете, в котором учусь), и на работе у нас есть настройка сайта в репозитории Subversion. Затем мы выполняем нашу работу на сайте разработки, который отличается от рабочего сайта. Когда приходит время обновлять рабочий сайт, мой босс «копирует» (я предполагаю, что не знаю наверняка) данные репозитория на рабочий сайт. Кажется, что моему боссу не нужно менять никаких ссылок и т. д. в коде. Причина, по которой я думаю, что это «просто работает», заключается в том, что все, кто работает на сайте, получают доступ к сайту разработки, используя другой URL. Мой вопрос: как мне добиться такой же (или похожей) настройки сервера для себя? Если вам интересно, я использую Ubuntu 9.04 desktop edition с (я предполагаю, что установлен правильно) сервером LAMP.
решение1
Я предполагаю, что "за кулисами" есть скрипт, который извлекает последние обновления из репозитория, а затем заменяет некоторые данные. Например, если сайт dev — dev.net, а сайт production — prod.net, скрипт заменяет все вхождения dev.net на prod.net, также скрипт должен проверять, указывает ли соединение с базой данных на правильный сервер базы данных.
решение2
Используйте apache для хостинга веб-сайтов. Если чего-то из apache, mysql, php не хватает, вы можете установить это с помощью apt-get или synaptic. Веб-сайт работает просто путем копирования, вероятно, потому, что вместо абсолютных ссылок используются относительные.
Например, если вы хотите создать ссылку на папку b внутри папки a, то есть два способа
<a href="b/other.php"> Link </a>
и
<a href="http://localhost/a/b/other.php"> Link </a>
Первая ссылка относительная, а вторая абсолютная. Если вы подготовите сайт, используя только относительные ссылки, то сайт будет работать без проблем при копировании-вставке.
решение3
Причина, по которой ему не нужно менять ссылки, вероятно, в том, что все в приложении использует относительные URL-адреса. Поэтому ссылка на страницу будет "/services.html" вместо "http://www.mydomain.com/services.html".
Фактически работающий сайт также может находиться в репозитории, в этом случае у вашего руководителя может быть скрипт, который загружает последнюю версию из репозитория dev в репозиторий prod, а затем фиксирует репозиторий prod.