phpmyadminを構成するbashスクリプトを作成しようとしています。config.inc.phpファイルを作成して構成ファイルを追加すると、この関数$(openssl rand -base64 50)
でblowfishシークレットがファイルに含まれます。ファイルは作成されましたが、代わりにの結果を$(openssl rand -base64 50)
追加$(openssl rand -base64 50)
して、ファイルに追加しました。
これがコードです
phpmyadmin_config='
<?php
declare(strict_types=1);
$cfg["blowfish_secret"] = "$(openssl rand -base64 50)";
$i = 0;
$i++;
$cfg["Servers"][$i]["auth_type"] = "cookie";
$cfg["Servers"][$i]["host"] = "localhost";
$cfg["Servers"][$i]["compress"] = false;
$cfg["Servers"][$i]["AllowNoPassword"] = false;
$cfg["UploadDir"] = "";
$cfg["SaveDir"] = "";
$cfg["TempDir"] = "/var/lib/phpmyadmin/tmp";
'
echo -e "$phpmyadmin_config" >> /usr/share/phpmyadmin/config.inc.php
私が間違っていることをお願いします、
このように、シェルヒアドキュメントを使用します:doc:
cat<<EOF1 > /usr/share/phpmyadmin/config.inc.php
<?php
declare(strict_types=1);
\$cfg["blowfish_secret"] = "$(openssl rand -base64 50 | tr -d '\n')";
EOF1
cat<<'EOF2' >> /usr/share/phpmyadmin/config.inc.php
$i = 0;
$i++;
$cfg["Servers"][$i]["auth_type"] = "cookie";
$cfg["Servers"][$i]["host"] = "localhost";
$cfg["Servers"][$i]["compress"] = false;
$cfg["Servers"][$i]["AllowNoPassword"] = false;
$cfg["UploadDir"] = "";
$cfg["SaveDir"] = "";
$cfg["TempDir"] = "/var/lib/phpmyadmin/tmp";
EOF2
変数を一重引用符で囲むことはできません。
シェルで適切に引用する方法を学びましょう。それは非常に重要です:
「二重引用符」スペース/メタ文字を含むすべてのリテラルと、すべての拡張:
"$var"
、"$(command "$var")"
、"${array[@]}"
、"a & b"
。使用する'single quotes'
コードまたはリテラルのために$'s: 'Costs $5 US'
、ssh host 'echo "$HOSTNAME"'
。
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Argumentshttp://wiki.bash-hackers.org/syntax/wordsを参照してください
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加