Magento webwinkel verhuizen

Het verhuizen van een Magento webwinkel naar een nieuwe server / locatie kan een hele klus zijn. Een Magento installatie die al een aantal jaren actief kan al snel 2+ GB aan ruimte in nemen. Met meer dan 100.000+ bestanden en 25.000+ mappen kan het verhuizen veel tijd kosten. Daarnaast is er vaak ook een MySQL database die 500+ MB aan data bevat.

Op de Wiki van Magento staat beschreven hoe je een Magento installatie kunt verhuizen naar een andere locatie. In eerste instantie wordt beschreven dat je een nieuwe Magento installatie moet opzetten en vervolgens de oude data moet importeren. Aan het eind van het artikel wordt echter ook een alternatieve methode toegelicht. In de alternatieve variant hoef je geen nieuwe Magento installatie opzetten. In plaats daarvan moet je daadwerkelijk alle bestanden en de database naar de nieuwe locatie verplaatsen.

Er zijn wel een aantal aandachtspunten waar je rekening mee moeten houden als je een Magento webwinkel op deze manier gaat verhuizen. Zo zul je in veel gevallen het bestand pear.ini (downloader/pearlib/pear.ini) moeten wijzigen om de MagentoConnect manager te laten werken.

Magento heeft hier een eenvoudig script voor beschikbaar gesteld die een nieuw pear.ini bestand voor je kan generen. Ik zelf vond het Magento script niet heel gebruiksvriendelijk en heb daarom een aantal verbeteringen aangebracht.

<?php

define('CR', "\r");
define('LF', "\n");
define('CRLF', CR . LF);

$contents = explode(LF, file_get_contents('pear.ini'));

$data = unserialize($contents[1]);

if(isset($data['bin_dir'])) {
	$oldPath = $data['bin_dir'];
	$newPath = getcwd();

	foreach($data as $key => $value) {
		if(is_string($value)) {
			$data[$key] = str_replace($oldPath, $newPath, $value);
		}
	}
}

?>
<!DOCTYPE html>

<html lang="en">
	<head>
		<meta charset="utf-8" />

		<title>Magento pear.ini generator | Pronamic</title>
	</head>

	<body>
		<h1>Magento pear.ini generator</h1>

		<h2>Paths</h2>

		<dl>
			<dt>Old path</dt>
			<dd>
				<?php if(isset($oldPath)): ?>
				<code><?php echo $oldPath; ?></code>
				<?php else: ?>
				<em>Unknown</em>
				<?php endif; ?>
			</dd>

			<dt>New path</dt>
			<dd>
				<?php if(isset($newPath)): ?>
				<code><?php echo $newPath; ?></code>
				<?php else: ?>
				<em>Unknown</em>
				<?php endif; ?>
			</dd>
		</dl>

		<h2>pear.ini</h2>

		<?php 

		$pearIni = $contents[0] . LF . serialize($data);

		?>
		<p>
			<textarea name="pear.ini" cols="80" rows="10"><?php echo $pearIni; ?></textarea>
		</p>
	</body>
</html>

Mocht je ooit een Mangeto webwinkel moeten verhuizen dan kan dit script zeker van pas komen!

Doe mee met de conversatie

1 reactie

  1. Erg handige post! Helaas werkt het script bij mij niet helemaal goed: niet alle paden in pear.ini worden bijgewerkt. Idee hoe dit kan? Script van Magento werkt wel (als ik daar ‘n’ in ‘\n’ verander en de paden aanpas.

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *