2010-10-28 5 views
2

Je travaille sur une application web qui utilise CakePHP et MySQL. Selon les circonstances, je peux utiliser un des deux ordinateurs et je peux être derrière un serveur proxy qui ne me permettra pas de modifier directement n'importe quel code sur mon serveur Web. Pour cette raison, j'ai installé XAMPP sur mes machines pour agir en tant que serveur web local, et je garde mon code dans un dépôt SVN auquel je peux toujours accéder depuis l'arrière du proxy.Accéder à une base de données depuis CakePHP derrière un serveur proxy

Avec le serveur web, j'ai trois endroits où ce code pourrait être exécuté (bien que ce ne sera finalement que sur le serveur web), et depuis que je suis en développement, je modifie constamment la base de données. Pour le rendre plus facile pour moi, je veux mettre les trois copies de cette application pour utiliser la base de données du serveur web, donc je n'ai pas à continuer d'exporter et d'importer chaque fois que je modifie la base de données. Lorsque j'essaie d'accéder à la base de données, la première erreur que je reçois est "Unknown MySQL server host 'mysql.monwebsite.com'". Je suppose que c'est parce que je dois utiliser un proxy http pour tous les accès Internet, et sans lui, il ne peut même pas résoudre une adresse. Puis-je configurer CakePHP ou PHP ou mon Apache local ou autre pour utiliser le serveur proxy afin d'accéder à ma base de données?

Répondre

3

Ni Cake ni PHP ne parleront directement à MySQL. C'est géré par les pilotes mysql de bas niveau. MySQL fournit leur propre proxy que vous pouvez essayer.

+0

Cela semble être ce que je cherchais. Merci! – HenryAdamsJr

3

Dès le début, vous devez get your database under source control. Je recommanderais le CakeDC Migrations plugin. Cette opération vous permettra de rompre le cycle cauchemardesque de l'importation/exportation phpMyAdmin (ou, pire encore, des commandes CLI MySQL). Si vous prenez le temps de le faire maintenant, cela vous fera économiser beaucoup de temps et de cheveux gris dans le futur. De plus, les appels de base de données de votre site ne seront pas soumis à la latence de quitter votre machine locale, et encore moins votre réseau local. Si vous souhaitez conserver une seule et unique configuration app/config/database.php, vous pouvez utiliser une URL complète pour le nom d'hôte de votre base de données et modifier le fichier hosts de votre boîte de développement (chemin d'accès complet sous Windows: C:\Windows\System32\drivers\etc\hosts) pour résoudre le problème. URL qualifiée pour 127.0.0.1. Ainsi, lorsque vous êtes sur l'une de ces boîtes, Cake finira par se connecter à votre serveur de base de données local, mais accédera au serveur de base de données approprié lorsque vous serez déployé sur votre serveur Web de production.

+0

+1 Wow! Je ne savais pas à propos de celui-là! – Leo

+0

Vous faites beaucoup de bons points, mais je faisais déjà la version de ma base de données. Cela fait partie du problème. Je vais travailler dessus dans un environnement, apporter des modifications à la base de données, créer un script de génération et l'enregistrer dans le contrôle source. Ensuite, lorsque je travaille dans un autre environnement, je dois utiliser le script que j'ai mis dans le contrôle de source et reconstruire cette base de données. Je veux utiliser une base de données dans tous les environnements. – HenryAdamsJr

0

J'ai tendance à travailler localement ou sur un serveur hébergé. Je trouve qu'en utilisant Netbeans je peux travailler sur le code distant sans devoir télécharger et télécharger en permanence. Quel que soit le système que vous utilisez, moins vous avez d'instances, mieux c'est. Garder les choses synchronisées peut très rapidement devenir un mal de tête majeur.

Questions connexes