@ KingCrunch. Вот совершенно другой метод, который мне подходит, и мне просто нужно скопировать / вставить всю исходную папку, ничего не трогая, и он работает довольно хорошо.
Используйте двух разных vhosts: один для dev и один для prod. Два разных файла.
Первый продукт:
<VirtualHost *>
ServerAdmin webmaster@mydomain.com
DocumentRoot "/web/htdocs/mydomain/prod"
ServerName mydomain.com
ServerAlias www.mydomain.com
</VirtualHost>
Второй для разработчика:
<VirtualHost *>
ServerAdmin webmaster@mydomain.com
DocumentRoot "/web/htdocs/mydomain/dev"
ServerName dev.mydomain.com
</VirtualHost>
И в моем файле hosts все они идут по одному и тому же IP.
В моем Php-коде для доступа к базе данных я делаю что-то вроде:
if (isset($_SERVER['HTTP_HOST'])) {
/* usual HTTP page */
define('HOST', $_SERVER['HTTP_HOST']);
}
else {
/* command line */
define('HOST', 'command_line');
}
/* define db access depending on host: */
if (HOST == 'command_line') {
/* command line */
define( 'SQL_CNX_NOM_BD', 'mydomain_dev');
}
elseif ((mb_ereg('dev\.',HOST) !== false) ) {
define( 'SQL_CNX_NOM_BD', 'mydomain_dev');
}
elseif ((mb_ereg('mydomain',HOST) !== false) ) {
define( 'SQL_CNX_NOM_BD', 'mydomain_prod');
}
else {
throw new Exception("unable to determine db ".
"with this host: ".HOST);
}
Тогда мне просто нужно скопировать / вставить всю исходную папку, ничего не трогая, и она работает довольно хорошо.