отредактированная версия:
Это решение не подходит для развертывания производства 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. Это должно правильно настроить плагин. Теперь вы можете копировать оба файла, кроме базы данных.
Имейте в виду, что когда приложение перезагрузится, плагин больше не будет установлен (он был установлен на эфемерной файловой системе), поэтому вам нужно его переустановить и выполнить процесс восстановления после.
Это решение все еще может привести к потере данных. Резервные копии могут быть старше, чем сбой или перезапуск приложения.
Но для использования личного блога может быть полезно.
Приложения, развернутые в CF, должны * никогда * не писать важную информацию в локальную файловую систему. Это эфемерно, и эта информация будет потеряна. Существуют плагины Wordpress, которые позволят вам хранить данные на S3. Извините, я не могу порекомендовать его, но если вы ищете сайт плагина Wordpress для «S3», вы можете легко найти его. –
Спасибо за ваше время и интерес. да, thats я понял, но теперь я ищу некоторое решение для интеграции напрямую (без подключений) wordpress с динамическим хранилищем swisscom s3. – pethani