2017-02-17 2 views
1

Actuellement instance WordPress et MySQL fonctionnant sur le cloud de Swisscom. Mais la semaine dernière, soudainement wp-contenu, a été supprimé et ne pas être en mesure d'exécuter le site Web correctement en raison du contenu manquant. Après cela, j'ai communiqué avec Swisscom et ils ont expliqué le problème et la solution possible. Ils ont suggéré d'utiliser un service externe pour stocker le fichier multimédia de contenu et d'autres documents. Mais je n'ai aucune idée de comment le faire.Intégration de Dynamic S3 (pour stocker le dossier wp-content), base de données SQL et WordPress dans Swisscom Application Cloud

Si quelqu'un a résolu le même problème, veuillez fournir votre solution ou donner quelques suggestions.

+0

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. –

+0

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

Répondre

0

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.

+0

Nous vous remercions de votre suggestion. Maintenant j'essaye de prendre la sauvegarde utilisant UpdraftPlus se branchant au stockage dynamique de Swisscom s3, mais il montrera toujours "créant des zips de dossier de sauvegarde" dans la notification de prograss. existe-t-il un fichier de configuration disponible pour le stockage wp-content dans le stockage dynamique s3? – pethani

+0

La configuration s'est-elle bien déroulée? Dans les paramètres, il y a le bouton "tester les paramètres S3". En cas d'erreur, il donne des informations sur le problème. Je voudrais ajouter que la solution UpdraftPlus peut toujours entraîner une perte de données, au cas où l'application redémarre et que la sauvegarde n'a pas été effectuée récemment. Une autre solution possible impliquerait l'utilisation d'un serveur externe où stocker les fichiers de données comme mentionné [ici] (https://www.cloudfoundry.org/100-day-challenge-062-running-wordpress-on-cloud-foundry /) et [ici] (https://github.com/cloudfoundry-samples/cf-ex-wordpress) en utilisant une connexion ssh. – ivanB1975

+0

'test s3 setting' fonctionne bien, mais après cela, lorsque vous avez commencé à prendre une sauvegarde et il est juste de réessayer après quelques minutes, mais jamais fin. Je connais tous les deux ce lien, mais actuellement je n'ai aucun serveur externe où je peux stocker des fichiers de données. pourquoi nous ne pouvons pas stocker directement le fichier de données sur S3? – pethani

1

ici la réponse officielle de la gestion des produits de Swisscom:

Nous ne soutenons pas le Wordpress offically Nuage application. Il ya beaucoup d'exemples de la façon de déployer Wordpress sur Cloud Foundry disponibles, mais ils ne sont applicables à certaines configurations. Pour notre meilleure connaissance il n'y a pas de solution générique valide qui est applicable à chaque installation wordpress et la configuration. Par conséquent, nous ne le soutenons pas officiellement. Les problèmes existent dans la zone du système de fichiers (Wordpress Nécessite système de fichiers non éphémères travail) et dans la conscience de Wordpress et ses plug-ins plus ils peuvent être en cours d'exécution dans plusieurs instances (en cas de mise à l'échelle horizontale)