2017-02-17 52 views
1

В настоящее время экземпляр WordPress и MySQL работает на облаке Swisscom. Но на прошлой неделе вдруг wp-контент, был удален и не смог запустить сайт должным образом из-за отсутствия содержимого. После этого я общался со Swisscom, и они объяснили проблему и возможное решение. Они предложили использовать внешнюю службу для хранения содержимого медиафайла и другого документа. Но я не знаю, как это сделать.Интеграция динамического s3 (для хранения папки wp-содержимого), базы данных SQL и WordPress в облаке приложений Swisscom

Если кто-то решил ту же проблему, пожалуйста, предоставьте ваше решение или предложите какое-либо предложение.

+0

Приложения, развернутые в CF, должны * никогда * не писать важную информацию в локальную файловую систему. Это эфемерно, и эта информация будет потеряна. Существуют плагины Wordpress, которые позволят вам хранить данные на S3. Извините, я не могу порекомендовать его, но если вы ищете сайт плагина Wordpress для «S3», вы можете легко найти его. –

+0

Спасибо за ваше время и интерес. да, thats я понял, но теперь я ищу некоторое решение для интеграции напрямую (без подключений) wordpress с динамическим хранилищем swisscom s3. – pethani

ответ

0

отредактированная версия:

Это решение не подходит для развертывания производства WordPress в облако, так как эфемерная файловая система является причиной потери данных в любом приложении перезапуск или поэтапном. Это может произойти в любое время. Другой проблемой может быть горизонтальное масштабирование приложения с несколькими экземплярами, все из которых не синхронизированы с разными эфемерными файловыми системами. По этой причине это решение нельзя использовать для производства.

Это связано с архитектурой Wordpress, которая НЕ готова на данный момент для облачной среды, а не для самого Облака. Приложения, развернутые в Облаке, должны уважать twelve-factor app rules.

Это небольшое руководство может использоваться вместо блогов и всей ситуации, когда резервная копия достаточна и требуется не более одного экземпляра.

Я попытался сделать базовую установку wordpress на Cloudscape. Прежде всего, я скачал код wordpress. Он должен содержать файл с именем «wp-config-sample.php». Переименуйте его в «РГ-config.php» и заменить следующие строки в файле:

// ** 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', ''); 

Эти строки позволяет WordPress, чтобы захватить базы данных учетных данных из переменных окружения. В этом конкретном случае ключи переменных указывают на службу mariadb Swisscom. В случае перезагрузки приложения эта информация будет автоматически доступна для приложения.

Обязательно создайте mariadb и привяжите его к приложению. Это можно сделать по-разному и на разных этапах развертывания.

Чтобы периодически выполнять резервное копирование носителя приложения, я установил плагин для резервного копирования на совместимые хранилища S3. Динамическое хранилище Swisscom является хранилищем, совместимым с S3, и вы можете использовать эту услугу вместе с плагином updraftplus. Поэтому сначала я установил плагин, используя диспетчер плагинов wordpress. Затем я создал службу динамического хранения, которую я привязал к приложению. После рестадирования приложения вы можете использовать командную строку Cloud Foundry в список переменной среды приложения:

cf env appName 

и вы должны получить что-то вроде этого:

 { 
"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": [] 
    } 
    ] 
} 
} 

Keep к сведению «accessHost »,« accessKey »и« sharedSecret ».

На этом этапе вам необходимо создать ведро на динамическом хранилище. Вы можете сделать это с помощью различных типов приложений. Этот шаг очень важен. Без ведра плагин не работает.

Как только вы создали свое ведро, обратите внимание на его имя.

Теперь вы можете настроить «updraftplus» плагин: Вы должны выбрать совместимые (общие) службы S3 и введите accessHost в конечной точке области S3, то Accesskey в ключе доступа S3, то общий_серает в S3 секретный ключ и имя ведра в поле S3. Это должно правильно настроить плагин. Теперь вы можете копировать оба файла, кроме базы данных.

Имейте в виду, что когда приложение перезагрузится, плагин больше не будет установлен (он был установлен на эфемерной файловой системе), поэтому вам нужно его переустановить и выполнить процесс восстановления после.

Это решение все еще может привести к потере данных. Резервные копии могут быть старше, чем сбой или перезапуск приложения.

Но для использования личного блога может быть полезно.

+0

Благодарим вас за предложение. Теперь я пытаюсь выполнить резервное копирование с помощью дополнения UpdraftPlus для динамического хранилища Swisscom s3, но всегда будет показывать «создание резервных копий файлов» в уведомлении prograss. есть ли какой-либо файл конфигурации, доступный для хранения wp-контента в динамическом хранилище s3? – pethani

+0

Произошла ли конфигурация? В настройках есть кнопка «Test S3 settings». В случае ошибки он дает некоторую информацию о проблеме. Я хотел бы добавить, что решение UpdraftPlus все равно может привести к потере данных, если приложение перезагрузится и резервная копия не была выполнена в последнее время. Другим возможным решением может быть использование внешнего сервера, на котором хранить файлы данных, как указано [здесь] (https://www.cloudfoundry.org/100-day-challenge-062-running-wordpress-on-cloud-foundry /) и [здесь] (https://github.com/cloudfoundry-samples/cf-ex-wordpress) с использованием ssh-соединения. – ivanB1975

+0

«test s3 setting» работает нормально, но после этого, когда вы начали делать резервную копию, и он просто повторяет несколько минут, но никогда не заканчивается. Я знаю эту ссылку, но в настоящее время у меня нет внешнего сервера, где я могу хранить файлы данных. почему мы не можем напрямую хранить файл данных на S3? – pethani

1

здесь официальный ответ от Управления Продуктом Swisscom по:

Мы не offically поддержки Wordpress на Application Cloud. Там есть много примеров того, как развернуть Wordpress на Cloud Foundry доступны , но они применимы только к определенным конфигурациям. К нашим лучшим знанием нет действующего общего решения, которое является , применимым к каждой установке и настройке wordpress. Поэтому мы официально не поддерживаем его. Проблемы существуют в области файловой системы (Wordpress Требуется несистемные эфемерные файлы для работы), а также в осознании Wordpress и его Плагины они могут быть работает в нескольких экземплярах (в случае горизонтального масштабирования)