• 締切済み

chef-solo?、正規表現? 分からない

file '/var/www/html/wp-config.php' do _file = Chef::Util::FileEdit.new(path) _file.search_file_replace_line(/define\(\'DB_NAME\'.*/, "define('DB_NAME', 'WP_DB01');") _file.write_file end 上記のようにchefsoloを実行すると、結果が下記のようになります。 置換したい箇所(3行目)はキッチリと置換されているのですが、各行の行末に(^M)なんて余計なものが付いてしまいます。 chef-soloの問題なのか、正規表現の問題なのか、原因が分からず困っております。 どなたか教えてください。 環境はVPSで、OSはCentOS、chef-soloはChef:12.0.3です。 ----実行前----------------------- // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', 'database_name_here'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'username_here'); ----実行後----------------------- // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //^M /** WordPress のためのデータベース名 */^M define('DB_NAME', 'WP_DB01'); ^M /** MySQL データベースのユーザー名 */^M define('DB_USER', 'username_here');^M ^M

みんなの回答

  • kumoz
  • ベストアンサー率64% (120/185)
回答No.2

私自身も別の Linux を使用していますが、質問のソフトは使っていませんので具体的なことはお答えできません。Linux ですので、設定ファイルなどで書き出し用の改行コードを設定できるようになっていると思うのですが....。

tasketeqq1
質問者

補足

そうですか、残念です...

  • kumoz
  • ベストアンサー率64% (120/185)
回答No.1

どのような処理をしているのかはわからないのですが、一般的に ^M は CR (復帰) を意味します。考えられるのは、実行前の改行が LF のみであったものが、処理後に CR+LF に変更されてしまっているものと思います。

tasketeqq1
質問者

補足

ありがとうございます。 ^M は CR (復帰) だったんですね、仰るとおりの動作のようです。 意味は分かったのですが、さてどうすれば解消するのか、さっぱり分かりません。 やってることは「該当する文字列を置き換える」という処理なんです。 置き換えはうまく行えてるんですが、対象外の行末に^Mが付いてしまうんですよね。

関連するQ&A

  • why do not move?

    いつもお世話になり誠にありがとうございます。 wp-config.phpの内容です。 これを一つ一つコピーまでして誤りがないか 転記いたしました。 それでも{データベース接続確立エラー}になります。 何故でしょうか? ご回答のほど、宜しくお願い申し上げます。 // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define( 'DB_NAME', 'database' ); /** MySQL データベースのユーザー名 */ define( 'DB_USER', 'kouzou' ); /** MySQL データベースのパスワード */ define( 'DB_PASSWORD', 'rhythm0!KT' ); 0 /00** MySQL のホスト名 */ define( 'DB_HOST', 'localhost' );

    • ベストアンサー
    • PHP
  • wp-config.phpで保存するのでしょうか?

    // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', 'wordpress'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'kouzou'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'rhythmkt0'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost'); /** データベースのテーブルを作成する際のデータベースの文字セット */ define('DB_CHARSET', 'utf8'); /** データベースの照合順序 (ほとんどの場合変更する必要はありません) */ define('DB_COLLATE', ''); 以下にデータベース接続のための詳細を入力してください。これらのデータについて分からない点があれば、ホストに連絡を取ってください。 データベース名 wordpress WordPress で使用したいデータベース名。 ユーザー名 kouzou データベースのユーザー名。 パスワード rhythmkt0 データベースのパスワード。 データベースのホスト名 localhost localhost が動作しない場合には Web ホストからこの情報を取得することができます。 テーブル接頭辞 wp_1 ひとつのデータベースに複数の WordPress をインストールしたい場合、これを変えてください。 wp-config-sample.phpを上記のように入力してwp-config.phpで保存するのでしょうか? LinuxMintを使っています。 いつも、マグレでここをパスしてたのですが理屈を分かっていません。 どなたかアドバイスをください。 宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • ワードプレスの初期設定

    ロリポップでのデータベースを設定しているのに 500のエラーが出てしまいます。 wp-configの記述が良く分かりません。 簡単に説明していただけますでしょうか? この記述に間違えがありますか? <?php // ** MySQL settings ** // // ** MySQL settings ** // define('DB_NAME', '00000_2008'); // データベース名 define('DB_USER', 'OA00000'); // ユーザー名 define('DB_PASSWORD', '0000'); // パスワード define('DB_HOST', 'localhost'); // データベースサーバ (ほとんどの場合変更する必要はありません) define('DB_CHARSET', 'utf8'); define('DB_COLLATE', '');

  • sha256_をパスワードの頭につけてもダメ!

    度々すみません。 DBは必要ありませんが、WordPressをやるのにmysqlも 使っています。 下記の通り、設定しても次の画面に行きません。 アドバイスをよろしくお願い申し上げます。 度々すみません。 下記の通り設定しましたが、一向にwordpressは 次の画面に行きません。 アドバイスをよろしくお願い申し上げます。 // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define( 'DB_NAME', 'wordpress' ); /** MySQL データベースのユーザー名 */ define( 'DB_USER', 'kouzou' ); /** MySQL データベースのパスワード */ define( 'DB_PASSWORD', 'sha_rhythm0!KT' ); 0 /00** MySQL のホスト名 */ define( 'DB_HOST', 'localhost' );

  • ローカルマシンにWAMP2.0を入れたあと、WordPressをインストールがうまくいきません

    ローカルマシンにWAMP2.0を入れたあと、WordPressをインストールしたいのですが、インストール時のデータベースの接続でうまくいきません。 レンタルサーバーではWordpressがインストールできましたが、 ローカル環境のWAMPでうまくいかなにのは、何か問題があるのでしょうか? WAMPは正しくインストールできていますので、phpMyAdminは開きます。rootのパスワードなし?でphpMyAdminが開き、またMySQLにも接続できます。 何が悪いのかよくわかりません。 testというデータベースは作成済みです。 wp-config.php /** WordPress のデータベース名 */ define('DB_NAME', 'test'); /** MySQL のユーザー名 */ define('DB_USER', 'root'); /** MySQL のパスワード */ define('DB_PASSWORD', ''); /** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */ define('DB_HOST', 'localhost'); $table_prefix = 'wp_test_';

  • さくらネットでWordpressインストールに失敗

    さくらインターネット(スタンダードプラン)でWordpressをインストールしようとしたのですが、Wordpress本体をダウンロードしなおしても、必ずログイン後の画面で404エラーが出ます。 Wordpressのバージョン:2.5.1日本語版 PHPのバージョン:5.2.5(他に4.4.7、5.2.6を選択可能) 公式サイトからダウンロードしたものは、Lhacaで解凍し、 wp-confing.phpをPHPエディタで編集。 データベース名などはデータベースの管理ツールで表示されているものを記入しています。 ----------------------------------------------------------- // ** MySQL 設定 ** // define('DB_NAME', 'データベース名'); // データベース名 define('DB_USER', 'ユーザー名'); // ユーザー名 define('DB_PASSWORD', 'パスワード'); // パスワード define('DB_HOST', 'mysqlXX.db.sakura.ne.jp'); // データベースサーバ (ほとんどの場合変更する必要はありません) define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); ------------------------------------------------------------ wp-config.phpを編集したら、FFFTPオプションで「※,php」をパーミッション705になるように変更し、アップロード。 *ちなみにパーミッション変更せずにアップしても結果は同じでした。 他には、www(http://XXX.sakura.ne.jp/)ではなく、一つフォルダを挟むように(http://XXX.sakura.ne.jp/wp/)アップしています。 アップロード後install.phpにアクセスしてパスワードを発行したあと、ログイン画面にパスワードを入力すると、次の画面が必ず404になります。 ネットで検索していろいろ対処はしてみたのですが改善されませんので、どなたかご教授お願い致します。

  • phpでmysqlのデータがupdateできません。

    仕様Apache2.0 PHP5.1.6 MySQL5.0.27 です。 以下の通りです。どこがだめですか? <FORM method="POST" action="order_regist.php"> <INPUT type="hidden" name="id" value="<?=$id?>"> <INPUT type="hidden" name="order_day" value="<?=$order_day?>"> <INPUT type="hidden" name="order" value="依頼あり"> <INPUT type="submit" value="同意して作業を依頼"> </FORM> 上記を次ページへ送信 以下次ページ /* MySQL DB接続情報の設定 DB名/ユーザー名/パスワード */ define("DB_NAME", "*****"); define("DB_USER", "*****"); define("DB_PASS", "*****"); /* リクエストデータの取得 */ $id = $_REQUEST["id"]; $order_day = $_REQUEST["order_day"]; $order = $_REQUEST["order"]; /* MySQLに接続 */ $link = mysql_connect("localhost", DB_USER, DB_PASS) or die("MySQLとの接続に失敗しました。"); /* 接続データベースを選択 */ mysql_select_db(DB_NAME) or die("データベースとの接続に失敗しました。"); /* クライアントのキャラクタセットを変更 */ mysql_query("SET NAMES ujis") or die( "クエリーの実行に失敗しました" ); /* データを更新するクエリーを設定 */ $query = "UPDATE all_cleaning_user SET order = '" . $order . "', order_day = '" . $order_day . "' WHERE id = " . $id; /* データベースにクエリーを実行 */ mysql_query($query) or die("クエリーを実行できませんでした。"); /* MySQLより切断 */ mysql_close($link); クエリーを実行できませんでしたのエラーが出ます。なぜですか?

    • ベストアンサー
    • PHP
  • データベース改名

    MySQL 5.0.x でデータベース db_with_old_name を db_with_new_name という名へ変更しようとした結果です: mysql> RENAME DATABASE db_with_old_name TO db_with_new_name; エラ 1064 (42000): ご使用の SQL 構文中にエラがあります; ご使用の MySQL サーバ バージョンに該当するマニュアルで、1 行目の「DATABASE db_old TO db_new」付近で使用すべき正しい構文を調べてください このデータベースに対し全権を持ったユーザでログインしていますし、「DATABASE」を「SCHEMA」にしたり省略したり、データベース名に括弧をつけたり、いろいろやりましたが、すべて同じエラとなります。 ありえない入力などのアホな間違いは 10 年ほど前には卒業したと信じているのでこんな短い文でそれはないと思うのですが、そもそも MySQL 5.0.x でこの構文は使えないのでしょうか。

  • データベースに接続できない

    『PHP5逆引き大全500の極意』にあるサンプルスクリプトで PHPとMYSQLと学んでいます。 XAMPPもインストールし、スタンドアロンでMysqlを操作しようと しています。 しかし、どのサンプルスクリプトをいじっても接続できません。 require("config.php"); header("Content-Type: text/plain; charset=EUC-JP"); $db = odbc_connect(ODBC_CONNECT_DSN, ODBC_CONNECT_USER, ODBC_CONNECT_PASS) or die("データソースに接続できません!\n"); でエラーがでています。 ちなみにconfig.phpの内容 // DSN define("ODBC_CONNECT_DSN", "DSN=sample_db;"); // ユーザー名 define("ODBC_CONNECT_USER", "username"); // パスワード define("ODBC_CONNECT_PASS", "password"); // テーブル名 define("ODBC_TABLE_NAME", "php500"); となっています。SQL文を実行し、テーブルを作りましたが、 上手く言っているかどうか・・・。 文字コードをちゃんと設定していないせいか、????????のような データがカラムに入っています。 サンプルスクリプト上、データベースが自動作成されるスクリプトも あるのですが・・・。 1.useename、userpassの設定 2.phpMyAdminでデータベースを作成する方法 3.データベース作成時の文字コードの設定。utf?sjis? についてヒント頂けたら幸いです。

    • ベストアンサー
    • MySQL
  • MySQL nuexpected(T_STRING

    ローカル開発環境にてphpとMysql接続の勉強をしている者です。 下記コードにて   } catch (PDOException $e) { 行にunexpected (T_STRING)と出て詰まっています スペルミスの注意して確認しましたが一人ではどうにも解りません...わかる方回答お願いしますm(_ _)m <?php define('DB_DATABASE', 'takagi_db'); define('DB_USERNAME', 'dbuser'); define('DB_PASSWORD', 'takagi'); define('PDO_DSN', 'mysql:dbhost=localhost;dbname=' . DB_DATABASE); try { //connect $db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $db->query("select * from users"); //全件抽出 $users = $stmt->fetchAll(PDO::FETCH_ASSOC);//FetchAll(抽出型指定) foreach ($users as $user){ } echo $stmt->rowCount() . "records found.";   } catch (PDOException $e) { echo $e->getMessage(); exit; } ?>

    • ベストアンサー
    • MySQL