ここで説明されているように PyroCMS をセットアップしました: http://docs.pyrocms.com/2.2/manual/setup/environments
Htaccess で RewriteCondition を使用して、PYRO_ENV 変数を自動的に決定して設定しました。
RewriteCond %{HTTP_HOST} ^dev.xyz.com$
RewriteRule (.*) $1 [E=PYRO_ENV:development]
RewriteCond %{HTTP_HOST} ^test.xyz.com$
RewriteRule (.*) $1 [E=PYRO_ENV:staging]
RewriteCond %{HTTP_HOST} ^xyz.com$
RewriteRule (.*) $1 [E=PYRO_ENV:production]
私はNginxを使用していません。
どのように機能する必要がありますか? xyz.com (本番) または test.xyz.com (ステージング) を開くかどうかに応じて、global:environment 変数を設定し、database.php で適切なデータベース接続を選択する必要があります。
問題: - xyz.com (プロダクション サイト) を開くと、変数によっては「プロダクション」と表示され、他の変数では「開発」と表示されます。
_REQUEST["www_pyrocms_development"] 2MH5lsDV3Cb3YK+6IcCrFaIH6Aeu98rIwKcgAaTcFnQsB5Vwn9ySGb3R3QfNTqvMoJsrfjDXv/PLdfYrVjr/IOREQhQIvsa1E+mozs5gYH6lC1+/mORDm2pN//InQBHTJGQsr3Y5jfzNYjakxXOArMRn2hmt14a18TON0VKMjpKjaBrl2aFx+CjypvIdF0oI4aXrK0HIWjhCl+VTdea4gFQzD6g7RblmKwHoJKCdYRCytWZ8z6y1HT3TQDMUOij3xqCXswrY0GD/bDfVvz16Ru07J8Y1z9v4Ye2hF8z7TiwomPIQgyiP+RSaOAebVRpF103KQvgjJjL5oSaywHiqX7noLEqQRsMjjaZFKMOgIpbtJoilytKby1TrdezhK4cFu/Kq1vTExhTXHQkIODp/ofbtNnSZB4pNh5RXdv4hIBM=
_COOKIE["www_pyrocms_development"] 2MH5lsDV3Cb3YK+6IcCrFaIH6Aeu98rIwKcgAaTcFnQsB5Vwn9ySGb3R3QfNTqvMoJsrfjDXv/PLdfYrVjr/IOREQhQIvsa1E+mozs5gYH6lC1+/mORDm2pN//InQBHTJGQsr3Y5jfzNYjakxXOArMRn2hmt14a18TON0VKMjpKjaBrl2aFx+CjypvIdF0oI4aXrK0HIWjhCl+VTdea4gFQzD6g7RblmKwHoJKCdYRCytWZ8z6y1HT3TQDMUOij3xqCXswrY0GD/bDfVvz16Ru07J8Y1z9v4Ye2hF8z7TiwomPIQgyiP+RSaOAebVRpF103KQvgjJjL5oSaywHiqX7noLEqQRsMjjaZFKMOgIpbtJoilytKby1TrdezhK4cFu/Kq1vTExhTXHQkIODp/ofbtNnSZB4pNh5RXdv4hIBM=
_SERVER["REDIRECT_PYRO_ENV"] production
_SERVER["HTTP_COOKIE"] www_pyrocms_development=2MH5lsDV3Cb3YK%2B6IcCrFaIH6Aeu98rIwKcgAaTcFnQsB5Vwn9ySGb3R3QfNTqvMoJsrfjDXv%2FPLdfYrVjr%2FIOREQhQIvsa1E%2Bmozs5gYH6lC1%2B%2FmORDm2pN%2F%2FInQBHTJGQsr3Y5jfzNYjakxXOArMRn2hmt14a18TON0VKMjpKjaBrl2aFx%2BCjypvIdF0oI4aXrK0HIWjhCl%2BVTdea4gFQzD6g7RblmKwHoJKCdYRCytWZ8z6y1HT3TQDMUOij3xqCXswrY0GD%2FbDfVvz16Ru07J8Y1z9v4Ye2hF8z7TiwomPIQgyiP%2BRSaOAebVRpF103KQvgjJjL5oSaywHiqX7noLEqQRsMjjaZFKMOgIpbtJoilytKby1TrdezhK4cFu%2FKq1vTExhTXHQkIODp%2FofbtNnSZB4pNh5RXdv4hIBM%3D; www_csrf_cookie_name=ced9bc01dc6439bdb4716964fe037173; www_identity=info%40xyz.com; www_remember_code=76aec0ab8b6b09091c1659bcf72d962b5337e226; web6_SID=89280348f350ecae51a672da350d8b7c; __utma=163786799.1178091424.1375554048.1375566051.1375568373.5; __utmb=163786799.3.10.1375568373; __utmc=163786799; __utmz=163786799.1375554048.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
database.php で本番用とステージング用に異なるデータベースをセットアップしましたが、PyroCMS は正しいデータベース接続を使用しません。
また、global:environment タグは機能しません。CMS で次のタグを使用すると、フロントエンドにテキストが表示されません: {{ if global:environment == 'production' }} // プロダクションのみのコンテンツ {{ endif }}
上記と同じ結果で、Htaccess で別のアプローチも試しました。
SetEnvIf Host ^dev\.domain(.+)\.com$ PYRO_ENV=development
SetEnvIf Host ^test\.domain(.+)\.com$ PYRO_ENV=staging
SetEnvIf Host ^(www\.)?domain(.+)\.com$ PYRO_ENV=production
上記の htaccess 設定では、サーバーに対して適切な環境がトリガーされないと思います。誰にもアイデアがありますか?
ありがとうございました、
フィリップ