• ベストアンサー

データベースパスワードの設置

MysqlとPHPでショッピングサイトを構築しております。 データベースへの接続のIDとパスワードは別ファイル(dbpass.txt)にしてデータベースに接続しています。通常ですと、public_html以下には置かないようにしているのですが、今度のレンタルサーバではtelnetも使えませんし、public_html以下しかファイルを置くことができません。 なにかよい方法はないでしょうか? .htaccessの設定でできるかなとも思ったのですが、よくわかりません。 よろしくお願いします。

  • Ants
  • お礼率95% (45/47)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • freesk
  • ベストアンサー率57% (4/7)
回答No.1

.htaccessが使えるのなら下記の一行を入れてみてはいかがでしょうか? AddType application/x-httpd-cgi .txt 要は拡張子txtはcgiですよ と指定してしまうわけです。 それかこう書いてみる <Files ~ "dbpass.txt"> Order allow,deny Deny from all </Files> これは.htaccessファイル自体を見せなくする時などに使う手です。 googleあたりで".htaccess 隠す"で検索するとヒットします。

Ants
質問者

お礼

有難うございます。 <Files ~ "dbpass.txt"> Order allow,deny Deny from all </Files> の指定を.htaccessにするとばっちり消えました。

関連するQ&A

  • 【.htaccess】パスワードを設置できない><

    ホームページのBBSのページだけ、パスワードを設置したいと 思い、.htaccessと.htpasswdをそのディレクトリに置きました。 しかし、パスワードを聞いてくることなく、 普通にみれてしまいます>< 構造は以下のようにしています。 public_html | |-bbs bbs用のcgiなど .htaccess .htpasswd・・・ .htaccessには、以下の記述を行いました。 AuthUserFile /public_html/bbs/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user .htpasswdには、ID:暗号化されたパスワードを書きました。 二つのファイルともアスキーで送り、 ファイルの種類も正しいです。 何が間違っているのか分からないので、困ってます。 助けてください。 ちなみに、public_htmlは、FFFTPのフリーソフトを 使った時に見れるファルダーです。 ホスト名/public_html・・・?

    • ベストアンサー
    • HTML
  • phpとデータベース

    書籍のサンプルを実行しても表示されません pearのインストールが怪しいですが、どこを直せばいいかわかりません。 ご教授お願いいたします。 <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BODY> <?php require_once("DB.php"); $dbUser = "sample"; // ユーザー名 $dbPass = "password"; // パスワード $dbHost = "localhost"; // ホスト名 $dbName = "sampledb"; // データベース名 $dbType = "mysql"; // データベースの種類 // MySQL="mysql", PostgreSQL="pgsql", MS SQL-Server="mssql", ODBC="odbc" などを設定 // 接続文字列の作成 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)){ die($conn->getMessage()); } print('接続に成功しました。'); // データベースから切断します。 $conn->disconnect(); ?> </BODY> </HTML>

  • PHPでデータベースにアクセスするには?

    データベース初心者です。 レンタルサーバーはロリポップを使っています。 これからphpMyAdminを使ってデータベースを作ることが出来たらと考えております。先ずはその流れを把握しておきたいと思いましてPHPファイルからの接続を成功できたらと考えましたが、PHPについても知識に乏しくどのような記述にすればphpMyAdminに接続できるのかというところで止まってしまってます。 どなたかお詳しい方がいらっしゃいましたらご指導いただけたら幸いです。よろしくお願いいたします。 以下は他のサイトで見つけたのですが接続できないようです。 //接続 $connect = mysql_connect($server,$user,$pw); //データベース選択 mysql_select_db($database,$connect); //sql実行 $result = mysql_query($sql); //データ取得 mysql_data_seek($result,0); $a=mysql_fetch_array($result,MYSQL_NUM);

    • 締切済み
    • PHP
  • MYSQL接続のパスワードの暗号化について

    現在、共有レンタルサーバでMYSQLとPHPを使用したシステムを製作しています。 使用しているサーバは、SSHでの接続ができるのですが、これが他のユーザーのディレクトリのファイルを見ることができてしまうのです。 サーバ会社にそのこと問い合わせたら仕様上変更ができないとのこと。 対策として必要に応じてパスワード等は適宜暗号化してくださいというのですが…。 現在、MYSQLに接続するためのパスワードをテキストファイルでアップしているのですが、今までは他のサーバでシステムを作るとき、.htaccessを使ってブラウザからはアクセスできないようにして対応していたのですが、SSHで接続されるのでは意味がありません。 MYSQLに接続するパスワードを不可逆の暗号化しておいて、そのデータでMYSQLに接続する、なんてことができるのでしょうか? 可逆化が可能な暗号であれば、接続方法は思いつくのですが、PHPスクリプトも他人に読まれる可能性があるため、それでは意味がありません。 または、暗号化しなくても、パスワードファイルはSSHからの接続では閲覧できないようにしたいのです。(この場合、自分でもSSHでは閲覧できなくてもかまいません。) OS:TurboLinux Appliance Server2.0(TLAS2) PHP:4.4.8 mysql:4.0.20 ご存知の方がおられたら、教えて頂けたら幸いです。

    • 締切済み
    • PHP
  • 他者にCパネルのパスワードを教える以外の方法

    他者にデータベースを構築してもらうためにはCパネルのパスワードを教えなければならない? 自サイトのプログラム作成者にデータベース(MySQL)を構築してもらうのには、レンタルサーバーのコントロールパネルのユーザーネーム、パスワードを教える以外に方法はありますか。htmlファイルならFTPを使用してアップロードしてもらったのですが、 MySQLの場合、リモートアクセスホストを追加する方法だと、ダイナミックIPを使用しているため安全ではないと聞きました。 ちなみにこのリモートアクセス(リモートMySQL)とは、データベースを他のホストで構築してそれにアクセスするためのものでしょうか。それとも、他のホストで構築されたデータベースを移築することができるものなのでしょうか。 コントロールパネルのパスワードを教えてしまうのも不安なので、良い方法があるのであれば教えていただければありがたく思います。

  • データベース名などこれで合っているでしょうか・・。

    すいません。初めてデータベースを扱うのですが、今までローカル環境でしか動かしていないため どのように実際に動かすのか分からない部分があります。(サイトは完成していましてローカル環境ではちゃんと動きました) まずデータベース名やアカウント名なのですが、データベースのためにさくらのサーバーを借りました。 データベースの設定画面を見ると以下のようになっています。 ----------------------------------------------------- データベース バージョン: MySQL 5.5 データベース サーバ mysql9999.db.sakura.ne.jp データベース ユーザ名 (初期アカウント名) abcd777 接続パスワード変更 ************ データベース名 abcd777_data ------------------------------------------------------- 上記の場合以下で合っているのでしょうか? $pdo = new PDO("mysql:dbname= _abcd777_data ; host=mysql9999.db.sakura.ne.jp", "abcd777", "************"); ポート番号なども設定があるような事も書いてあるサイトがあるのですが何をどうしてよいのか 全く分かりません。(とりあえず上記のような設定でデータベースからデータをphpで呼び出しましたが 上手く動きませんでした) もう一つ疑問があるのですが、私はトップページをindex.phpとしましたが、上記のような方法では アカウントやらパスワードが丸見えですよね? そもそも私は全く違う事をしているのでしょうか? できれば実際の運用の流れも簡単に書いてもらえると助かります。

  • PHPやCRONによるアクセスによってデータベース(MySQL)のバッ

    PHPやCRONによるアクセスによってデータベース(MySQL)のバックアップを取る方法 レンタルサーバーのXserver(x20)においてデータベースの バックアップをとりたいと考えています。 Xserver側に問い合わせたところデータベース関係やPHPのテクニカルサポートは 受け付けていないとのことで、独自に調査中です。 私が行ったことは mysqlhotcopy データベース名 -u ユーザー名 -p パスワード /home/サーバー名/ドメイン名/public_html/保存先ディレクトリ名" 上記コマンドをphpからMySQLへクエリ送信したところ、なんの反応も 有りませんでした。 他に考えつくことがなく現在行き詰っております。 もしどなたか実際にxserverにおいて データベースのバックアップを行ったことがある、もしくは 現在バックアップをとっている方がおられましたら ご教示願えないでしょうか? よろしくお願い致します。

  • MySQLにおいてバッチ処理でデータベースを構築する際のトラブル

    MySQLにおいてバッチ処理でデータベースを構築する際のトラブル MySQLに関しては素人です。 バッチ処理でデータベースを構築したいとおもって、バッチを指示通りの場所において、 net start mysql と打って、それから、 mysql -u root -p SampleDB040 < "C:\mysql\data\sampledb040\ファイル名.sql" として、パスワードを入れて、データベースを構築したいと思ったのですが、エラーが出て出来ません。 このエラーをどうすれば解消できるのか教えてください。 以下のようなメッセージが出ています。 ERROR 1005 (HY000) at line 10: Can't create table 'sampleDB040.t01prefecture' (errno: 121) 以上 ちなみに、同一ファイル内に同じ名前のファイルはありませんし、他のデータベースにもありませんでした。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • XserverでpearのDBでMySQLに接続

    xserver(レンタルサーバー)でPHPでpearのDBクラスを使ってMySQL(データベース)に接続ができません。 Xserver(レンタルサーバー)環境 MySQL5 バージョン:5.0.77 MySQL5 ホスト名:xxx.xserver.jp(仮名) PHP Version 5.3.3 include_path .:/usr/share/php53/pear :/usr/share/php Xserver PHP関連の仕様一覧 PEARインストール済み <インストール済みライブラリ> ・Archive_Tar ・Auth ・Console_Getopt ・DB ・HTML_Common ・HTML_QuickForm ・HTTP ・HTTP_Header ・HTTP_Download ・Mail ・Net_SMTP ・Net_Socket ・Pager ・PEAR ・XML_Parser ・XML_RPC ・Structures_Grap データベースは同じくXserverに設置されているphpmyadmin(MySQL5)で作成しました。 /xxx.xsrv.jp/public_html/php_sample/Section63 の中に(dbtest2.php) でおいています。 ★以下のコードで接続ができません。 どこが間違っているのか教えて下さい。 ↓ <?php require_once("DB.php"); $dbUser = "sample"; // ユーザー名(仮名) $dbPass = "password"; // パスワード(仮名) $dbHost = "xxx.xserver.jp"; // ホスト名(仮名) $dbName = "sampledb"; // データベース名(仮名) $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)) { die($conn->getMessage()); } print('接続に成功しました。'); // データベースから切断します。 $conn->disconnect(); ?> ★ちなみにPHPのmysql_connect関数からは接続成功しました。 ↓ <?php $con = mysql_connect("xxx.xserver.jp", "sample", "password") or die("接続できません。"); print "接続に成功しました。"; mysql_close($con); ?>

    • ベストアンサー
    • PHP
  • PDOでのデータベース接続について質問です

    現在、PDOでのmysqlデータベースの操作を学習しています。 以前、mysql_connectでのデータベース接続を学習していた際に、 使用したいデータベースの名前を変数名$dbnameに格納し、 $connect = mysql_connect($server, $user, $password); mysql_select_db($dbname); でデータベースに接続していました。 その要領をふまえて PDOでもデータベースの名前を変数名$dbnameに格納し、 $db = new PDO('mysql:host=localhost;dbname=$dbname',$user,$password); で接続しようと試みたところ、エラーになりました。 そこで、データベース名を変数に格納せず、 $db = new PDO('mysql:host=localhost;dbname=データベース名',$user,$password); で試してみたところ、接続が出来ました。 そこで質問なのですが、PDOでデータベースに接続する場合、 データベース名を変数に格納することは物理的に出来ないのでしょうか? それともうひとつ質問があります。 mysql_connectを使用したときはデータベース接続用のPHPファイルを作成し、 データベース接続が必要なPHPファイルの時にrequire_onceでデータベース接続用のPHPファイルを呼び出ししていましたが、PDOでもデータベース接続用のPHPファイルを呼び出して接続することは可能でしょうか? 絶対に変数に格納したいとか、絶対にデータベース接続を別ファイルにしたいというわけではありませんが、もともとmysql apiで学習していたためmysql apiとPDOの違いが少し気になってしまいました。 ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう