VERSION REVISEE:
Cette solution ne convient pas à un déploiement de production de wordpress vers le Cloud depuis le système de fichiers éphémère est à l'origine de perte de données chaque fois que l'application est redémarrée ou mis en scène. Cela peut arriver à tout moment. Un autre problème pourrait être la mise à l'échelle horizontale de l'application avec plusieurs instances, toutes avec différents systèmes de fichiers éphémères non synchronisés. Pour cette raison, cette solution ne peut pas être utilisée pour la production.
Ceci est dû à l'architecture de Wordpress qui n'est PAS prête pour le moment pour un environnement Cloud et pas pour le Cloud lui-même. Les applications déployées sur le Cloud doivent respecter le twelve-factor app rules.
Ce petit howto pourrait être utilisé à la place pour les blogs et toutes les situations où une sauvegarde est suffisante et pas plus d'une instance est nécessaire.
J'ai essayé de faire une installation de base de wordpress sur le Swisscom Cloud. Tout d'abord, j'ai téléchargé le code de wordpress. Il devrait être présent un fichier nommé "wp-config-sample.php". Renommer pour « wp-config.php » et remplacer les lignes suivantes dans le fichier:
// ** Read MySQL service properties from _ENV['VCAP_SERVICES']
$services = json_decode($_ENV['VCAP_SERVICES'], true);
$service = $services['mariadb'][0]; // pick the first MySQL service
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', $service['credentials']['database']);
/** MySQL database username */
define('DB_USER', $service['credentials']['username']);
/** MySQL database password */
define('DB_PASSWORD', $service['credentials']['password']);
/** MySQL hostname */
define('DB_HOST', $service['credentials']['host'] . ':' . $service['credentials']['port']);
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
Ces lignes permet de saisir les wordpress de base de données des informations d'identification des variables d'environnement. Dans ce cas précis, les variables clés désignent le service mariadb de Swisscom. Dans le cas où l'application redémarre ces informations seront automatiquement disponibles pour l'application. Assurez-vous de créer un mariadb et le lier à l'application. Cela peut être fait de différentes manières et à différentes étapes du déploiement.
Pour exécuter périodiquement des sauvegardes du support d'application, j'ai installé un plugin pour effectuer une sauvegarde sur les stockages S3 compatibles. Le service de stockage dynamique Swisscom est un stockage compatible S3 et vous pouvez utiliser ce service avec le plugin updraftplus. Donc d'abord j'ai installé le plugin en utilisant le gestionnaire de plugin wordpress. Puis j'ai créé un service de stockage dynamique que j'ai attaché à l'application. Après la remise en scène de l'application que vous pouvez utiliser les cli Cloud Foundry à la liste des variables d'environnement de l'application:
cf env appName
et vous devriez obtenir quelque chose comme ceci:
{
"VCAP_SERVICES": {
"dynstrg": [
{
"credentials": {
"accessHost": "ds31s3.swisscom.com",
"accessKey": "key",
"sharedSecret": "secret"
},
"label": "dynstrg",
"name": "test-ivan-dynstrg",
"plan": "usage",
"provider": null,
"syslog_drain_url": null,
"tags": [],
"volume_mounts": []
}
],
"mariadb": [
{
"credentials": {
"database": "database",
"database_uri": "mysql://uri",
"host": "10.0.20.18",
"jdbcUrl": "jdbc:mysql://uri",
"name": "name",
"password": "pass",
"port": 3306,
"uri": "uri",
"username": "user"
},
"label": "mariadb",
"name": "test-ivan-mariadb",
"plan": "small",
"provider": null,
"syslog_drain_url": null,
"tags": [],
"volume_mounts": []
}
]
}
}
Prenez note de la « accessHost "," accessKey ", et" sharedSecret ".
À ce stade, vous devez créer un compartiment sur le stockage dynamique. Vous pouvez le faire avec différents types d'applications. Cette étape est très importante. Sans un seau, le plugin ne fonctionne pas.Une fois que vous avez créé votre seau, notez le nom de celui-ci. Maintenant vous pouvez configurer le plugin "updraftplus": Vous devez choisir le service compatible S3 (générique) et entrer l'accessHost dans le champ de point final S3, l'accessKey dans la clé d'accès S3, le sharedSecret dans le S3 clé secrète, et le nom du seau dans le domaine S3 emplacement. Cela devrait configurer correctement le plugin. Maintenant, vous pouvez sauvegarder les deux fichiers que la base de données. Gardez à l'esprit que lorsque l'application redémarrera, le plugin ne sera plus installé (il a été installé sur le système de fichiers éphémère), vous devrez donc le réinstaller et exécuter le processus de restauration après. Cette solution peut toujours entraîner une perte de données. Les sauvegardes peuvent être plus anciennes que le crash ou le redémarrage de l'application. Mais pour le cas d'utilisation d'un blog personnel peut être utile.
Les applications déployées sur CF ne doivent * jamais * écrire des informations importantes dans le système de fichiers local. C'est éphémère et cette information sera perdue. Il existe des plugins Wordpress qui vous permettront de stocker des données sur S3. Désolé je ne peux pas recommander un, mais si vous recherchez le site plugin Wordpress pour "S3" vous pouvez facilement les trouver. –
Nous vous remercions de votre temps et de votre intérêt. oui, c'est ce que j'ai compris, mais maintenant je cherche une solution pour intégrer directement (sans plugings) wordpress avec le stockage dynamique swisscom s3. – pethani