私は既存のApache/phpサイトをドッカーに移行しようとしており、サイトのローカライズに問題があります。 コードを掘り下げると、問題は、Dockerのインストール時にsetLocaleがfalseを返すことです(既存のサイトではtrue)。 既存のサイトでうまく動作し、Dockerのインストールに失敗するPHPテストです。php on docker:setLocaleを使用
FROM php:5-apache
RUN apt-get update && apt-get install -y locales && apt-get clean
RUN locale-gen fr_FR && locale-gen zh_TW && locale-gen tr_TR && locale-gen ru_R$
RUN docker-php-ext-install gettext
RUN a2enmod rewrite && a2enmod headers
は私が間違って何をやっている:ここで
<?php
$locale = "fr_FR";
putenv("LC_ALL=$locale");
$ok = setlocale(LC_ALL, $locale);
if ($ok) {
echo "success";
} else {
echo "failure";
}
?>
は私ドッカーファイルのですか?
---編集---
PatxiGortázarが私にここ :-)右方向を与えるあなたはより多くのロケールが必要な場合は、あなたがする必要があります固定ドッカファイル
FROM php:5-apache
RUN apt-get update && apt-get install -y locales && apt-get clean
RUN sed -i -e 's/# fr_FR ISO-8859-1/fr_FR ISO-8859-1/' /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales
RUN docker-php-ext-install gettext
RUN a2enmod rewrite && a2enmod headers
ですあなたの容器に/etc.locale.genを見て、ラインごとのため
sed -i -e 's/# locale/locale/' /etc/locale.gen && \
を追加し、あなたが必要とするロケール(#ロケールを仮定することで/ EC行の内容です3210 tc/locale.genに必要なロケールが含まれています)。
ありがとうございます、あなたは私に正しい方向を与えました。 locale-genが動作しないようですが、spkg-reconfigureのロケールがトリックでした(私の質問で私の編集を見てください)。 私のPHPの例のように、LC_ALLをPHPスクリプトで設定する必要があります。 –
Thx、nice solution ... – quexer69
php:* - apacheの画像については、ロケールジェネルでロケールを生成することはできないようですが、/etc/locales.genファイルを編集してからlocale-genを実行する必要があります –
monofone