Alors j'achète un serveur dédié et le fournisseur me dit que j'ai 4 IPs utilisables. Disons que ce sont ip1, ip2...ip4, donc je veux configurer mon serveur dédié pour exécuter plusieurs domaines sur ces IPs, par exemple domain1 sur ip1... J'ai fait cela sans problème, maintenant je veux que lorsque j'exécute un script php sur domain1/script.php et que ce script récupère des données (file_get_contents()) depuis whatismyip.com (juste pour l'exemple), whatismyip.com montre ip1, et lorsque j'exécute sur domain2, il montre ip2, etc. Cela signifie que chaque domaine a sa propre IP externe séparée, j'ai besoin d'aide pour savoir comment configurer cela sur un serveur basé sur Linux (CentOS). Je sais que c'est possible, un VPS est un exemple de la façon dont cela fonctionne, mais je veux savoir où est la solution, ai-je besoin d'un script Linux personnalisé lancé à partir du code PHP, ou d'une configuration apache ou d'une troisième option ? S'il vous plaît aidez-moi si vous connaissez la solution. Merci d'avance.
Réponses
Trop de publicités?Si vous utilisez spécifiquement file_get_contents
, vous devez utiliser l'appel de fonction stream_create_context
pour créer un contexte et le lier à l'IP spécifique que vous souhaitez. Quelque chose comme ceci :
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);
$context = stream_context_create($opts);
echo file_get_contents('http://whatismyip.com', false, $context);
Cela vous permettra de contrôler quelle IP est utilisée pour la connexion sortante.
ÉDITER : voir http://www.php.net/manual/en/context.socket.php pour plus de détails.
1) Vous devez enregistrer les domaines pour pointer vers les adresses IP que vous souhaitez avec votre fournisseur DNS :
host1.com -> 10.1.1.1 host2.com -> 10.1.1.2 host3.com -> 10.1.1.3 host4.com -> 10.1.1.4
2) Essayez de créer des hôtes virtuels dans apache comme ceci : mais créez une entrée d'hôte virtuel pour chaque IP afin d'obtenir 4 hôtes virtuels.
ServerAdmin webmaster@host1.com
DocumentRoot /var/www/html/host1.com
ServerName host1.com
ErrorLog /var/log/httpd/host1.com-error_log
TransferLog /var/log/httpd/host1.com-access_log