2017-02-17 35 views
1

目前在Swisscom云上运行的WordPress和MySQL实例。但上周突然wp-content,被删除,由于内容丢失,无法正常运行网站。之后,我与Swisscom进行了沟通,他们解释了问题和可能的解决方案。他们建议使用外部服务来存储内容媒体文件和其他文件。但我不知道如何去做。在瑞士电信应用云中集成动态s3(用于存储wp-content文件夹),SQL数据库和WordPress

如果有人解决了同样的问题,那么请提供您的解决方案或给出一些建议。

+0

部署到CF的应用程序应该永远不会将重要信息写入本地文件系统。这是短暂的,信息将会丢失。有一些Wordpress插件可以让你在S3上存储数据。对不起,我不能推荐一个,但如果你搜索Wordpress插件网站的“S3”,你可以很容易地找到它们。 –

+0

谢谢你的时间和兴趣。是的,那我明白了,但现在我正在寻找一些解决方案,直接(无插件)wordpress与swisscom s3动态存储集成。 – pethani

回答

0

编辑后的版本:

该解决方案是不适合wordpress的生产部署到云,因为短暂的文件系统造成的数据丢失随时重新启动应用程序或上演。这可能随时发生。另一个问题可能是应用程序的水平扩展,其中多个实例的所有不同的临时文件系统都不同步。出于这个原因,这个解决方案不能用于生产。

这是由于Wordpress的体系结构,目前还没有准备好用于云环境,而不是云本身。部署到云端的应用程序应该遵守twelve-factor app rules

这个小小的howto可以用来替代博客和所有备份足够的情况,并且不需要多于一个实例。

我试图在Swisscom Cloud上进行wordpress的基本安装。 首先我下载了​​WordPress的代码。它应该出现一个名为“wp-config-sample.php”的文件。将其重命名为“wp-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的抢从环境变量的数据库凭据。在这种特定情况下,变量键指向Swisscom mariadb服务。如果应用程序重新启动,这些信息将自动提供给应用程序。

确保创建一个mariadb并将其绑定到应用程序。这可以通过不同的方式并在部署的不同阶段完成。

为了定期执行应用程序的备份,我安装了一个插件来备份兼容的S3存储。 Swisscom动态存储服务是S3兼容存储,您可以将此服务与插件updraftplus一起使用。所以首先我使用wordpress插件管理器来安装插件。 然后我创建了一个附加到应用程序的动态存储服务。应用程序的再分期后,您可以使用Cloud Foundry的CLI列出应用程序的环境变量:

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

保持“accessHost的注意事项“,”accessKey“和”sharedSecret“。

此时您需要在动态存储上创建存储桶。你可以用不同类型的应用程序来做到这一点。 这一步非常重要。没有水桶的插件不起作用。

一旦您创建了桶,请记下它的名称。

现在,您可以配置“updraftplus”插件: 您需要选择S3兼容(通用)服务,并在S3终点字段中输入accessHost,该ACCESSKEY在S3访问键,sharedSecret在S3秘密密钥以及字段S3位置中存储桶的名称。 这应该正确配置插件。现在您可以备份两个文件而不是数据库。

请记住,当应用程序重新启动时,插件将不再安装(它安装在临时文件系统上),因此您需要重新安装它并执行恢复过程。

该解决方案仍然可能导致数据丢失。备份可能比应用程序崩溃或重新启动时早。

但是对于个人博客的用例可能很有用。

+0

谢谢你的建议。现在我正尝试使用UpdraftPlus插件将其备份到Swisscom s3动态存储,但它总是会在程序通知中显示“创建文件备份压缩”。是否有任何配置文件可用于s3动态存储中的存储wp-content? – pethani

+0

配置是否正常?在设置中有按钮“测试S3设置”。如果出现错误,则会提供有关该问题的一些信息。我想补充一点,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

'测试s3设置'可以正常工作,但在此之后开始进行备份时,仅在几分钟后重试,但从未结束。我知道这个链接,但目前我没有任何可以存储数据文件的外部服务器。为什么我们不能直接将数据文件存储到S3? – pethani

1

这里从瑞士电信公司的产品管理,官方的回答:

我们不offically支持WordPress的在应用云计算。有 是很多例子,如何在Cloud Foundry上部署Wordpress是 可用,但它们只适用于某些配置。到 我们最好的知识是没有有效的,通用的解决方案, 适用于每一个WordPress的安装和配置。 因此我们不官方支持它。在 区域文件系统中存在的问题(WordPress的要求非临时文件系统 工作),并在Wordpress和它的插件的认识,他们可能是 在多个实例运行(在横向扩展的情况下)

相关问题