• 締切済み

freebsdでのPHPセットアップで失敗

どなたかご存知の方がいらっしゃいましたらご教授頂ければと思い、書き込ませて頂きます。 freebsdでのPHPセットアップが上手く行きません。 一通りの流れとしては、 1.空のPCにfreebsdインストール 2.freebsdサーバにmysql/phpセットアップ。 3.apacheセットアップ&起動。apacheによる表示は確認。   mysqlサーバ起動。   テーブル作成完了。データinsert完了。 4.拡張子を.phpにしたファイルを置いて、サーバーURLから内容の表示を確認。   ここまではOK。 5.ファイル名をdb.phpとし、mysql_connectでmysqlへ接続しようとすると、そこで表示されなくなる。 6.様子がおかしいので、デバッグして確認 ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ <html> <head> <title>test</title> </head> <body> test start<br> <?php print('a<br>'); //connection: $link = mysql_connect("localhost","user","password"); print('b<br>'); if (!$link) { print('refuse!'.mysql_error()); die('refuse!'.mysql_error()); } print('c<br>'); ?> </body> </html> ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ で表示すると、ブラウザで取得しているソースコードには、 ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ <html> <head> <title>test</title> </head> <body> test start<br> a<br> ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ というソースが返ってきており、途中で処理が止まっているようです(最後まで表示されない)。 ユーザ名とパスワードの見直し確認もしましたが、間違っていなさそうです。 ※mysql_connectでの接続時のlocalhostはそのままですが、ユーザ名とパスワードは変えてあります。 単に文字コードが誤りかと思いましたが、全てUTF-8で統一しています。 windows環境でutf-8のソースを作成して、それをバイナリでサーバーにアップロードしています。 ■mysqlでの設定: mysql> show variables like 'character_set%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | +--------------------------+----------------------------------+ 8 rows in set (0.00 sec) ■php.iniでの設定 ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; extension=php_mbstring.dll extension=php_mysql.dll [mbstring] ; language for internal character representation. ; http://php.net/mbstring.language mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding ;mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = UTF-8 ; http input encoding. ; http://php.net/mbstring.http-input ;mbstring.http_input = auto mbstring.http_input = UTF-8 ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output ;mbstring.http_output = SJIS mbstring.http_output = pass ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation ;mbstring.encoding_translation = Off mbstring.encoding_translation = On ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order ;mbstring.detect_order = auto mbstring.detect_order = auto 試しに、 $link = mysql_connect("localhost","user","password"); の部分を mb_internal_encoding("UTF-8"); などに変更しても同じ箇所でぶつ切りになった状態でソースが表示されます。 echo 'aaa'; などに変えるとこの部分は処理されて出力されます。 つまり単純なechoやprintなどの関数は処理されて、ある程度の関数を使用すると処理されなくなる(ように見えます)。 最終的な目標としてはmysqlからデータを表示することだけです。 何か単純な原因が噛んでしまっていると思っているのですが、どなたかこの問題の解決法を分かる方がいらっしゃいましたらご教授いただけないでしょうか? 尚、現在使用している環境は次の通りです。 FreeBSD 9.1 PHP Version 5.4.7 Apache/2.2.23 (FreeBSD) mod_ssl/2.2.23 OpenSSL/0.9.8x mysqlnd mysqlnd 5.0.10 mysql Server version: 5.5.28 宜しくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

php5-mbstringやphp5-mysqlなどのパッケージはインストールしたの? pkgngを使っているなら % pkg info|grep php5 それ以前のものなら、 % ls /var/db/pkg|grep php5 をしたらインストールされているかどうかすぐわかるけど。

javawater
質問者

お礼

早速の回答ありがとうございます。 php5-mbstring、php5-mysqlですね。 ちょっと多忙になるので、回答が遅れてしまうかもしれませんが、 分かり次第補足で変身させていただきます。 ちなみにpkgngは現段階では使っていない状態です。

関連するQ&A

  • MySQL4.1の日本語化

    自分で出来るところまでやったのですが、日本語を入力すると???となってしまいます。以下に状況を挙げますので、知識のある方は知恵をお貸し下さい。 version:Mysql4.1.20,php5.2.2 OS:CentOS 4.4 my.cnfにおいて [mysqld] default-character-set = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 Php.iniにおいて mbstring.internal_encoding = EUC-JP ;mbstring.http_input = auto mbstring.http_output = EUC-JP ↓↓ mbstring.internal_encoding = UTF-8 ;mbstring.http_input = auto mbstring.http_output = UTF-8 ;iconv.input_encoding = ISO-8859-1 ;iconv.internal_encoding = ISO-8859-1 ;iconv.output_encoding = ISO-8859-1 ↓↓ iconv.input_encoding = UTF-8 iconv.internal_encoding = UTF-8 iconv.output_encoding = UTF-8 PHPスクリプトに関して、SET NAMESとキャラクタセットをUTF-8とする。 という感じです。 show variables like 'character%';を行うと +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ という感じです。 何が原因なのでしょうか。。初心者ではありますが、素人なりに設定はあっていそうな気がします。詳しい方は何卒よろしくお願いします。

    • ベストアンサー
    • MySQL
  • サーバー移転で文字化け

    ロリポップ!からhetemlにサーバー移転したところ、データベースから取り出したデータが文字化けするようになってしまいました。 因みにmysqlのデータは変換なしでエクスポートし、インポートしております。 ã€ã‚¨ãƒ´ã‚¡ã€‘ã½ã‹æ³ 上記のような文字化けです。 キャラクターセット周りが怪しいと思い、色々試してみましたが一向に治る気配がありません・・。 php varは5.3です。 .htaccessに「AddHandler php5.3-script .php」と記述して使っております。 mysql varはMySQL5.0.51aです。 MySQLのキャラクターセットはこんな感じです。 Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 phpでの接続はこのようにしております。 mb_language('uni'); mb_internal_encoding('utf-8'); mb_http_input('auto'); mb_http_output('utf-8'); $con = mysql_connect('xxx','xxx','xxx') or die(mysql_error()); mysql_set_charset('utf8'); mysql_select_db('xxx') or die(mysql_error()); php.iniの設定は以下のとおりです。 mbstring.detect_order utf-8 mbstring.encoding_translation off mbstring.func_overload 0 mbstring.http_input pass mbstring.http_output pass mbstring.internal_encoding utf-8 mbstring.language neutral 何をやっても治らず、途方に暮れております。 ご助言をよろしくお願いいたします。

  • PHPとMYSQLの文字コードについておねがいします。

    Apache2、PHP5、MYSQL5.0を使用しています。 当方、PHPの初心者講座などを見てUTF-8で作っていこうと思い設定をしたものの、上手くいかず質問させていただきました。 PHPからQuery文(日本語)を送ってMYSQLのテーブルにINSERTしたのですが、文字化けしてしまいます。 my.iniのdefault-character-set=部分をutf8からsjisやujisなどに変えてやってみたのですが、文字化けの種類(?)が変ってしまうだけでやはり文字化けしてしまいました。 ALTER DATABASE AAA CHARCTER SET utf8をやっても変らず文字化けしてしまい、show variables like 'char%'でCharcterを調べたところ、下記のようになっていました。 charcter_set_client | utf8 charcter_set_connection| utf8 charcter_set_database | utf8 charcter_set_filesystem| binary charcter_set_results | utf8 charcter_set_server | utf8 charcter_set_system | utf8 MYSQLとPHPの文字に関係あるようなところをコピーしました。 どこかおかしなところがあるでしょうか。 ------my.ini----- [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 ----------------- ------php.ini----- output_buffering = Off extension=php_mbstring.dll [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On ------------------ どなたか解決策を知らないでしょうか。よろしくお願いします。

    • 締切済み
    • PHP
  • MySQLから取得した日本語のデータが?に文字化けする

    お世話になります。 XAMPPでインストールすると文字化けする問題で、 もう過去ログでも何十と取り上げられているのですが、 それらをいろいろ試してみてもまだできないので、 質問させていただきました。 統一して、UTF-8で扱おうとしています。 行ってきたこと ・my.cnfがないので、C:\xampp\mysql\binに新規に追加 ・下記の内容を書き込む [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 ・PhpMyAdminでデータを作成するとき、『MySQL 接続の照合順序: 』を 『utf8_unicode_ci』に変更 ↑PhpMyAdmin上で、データは正しく日本語で取得できるが、 コマンドラインからSQLを投げると、すでに?になっている。 ・php.iniで下記の場所を編集 [mbstring] ; language for internal character representation. ; http://php.net/mbstring.language mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding mbstring.internal_encoding = UTF-8 ; http input encoding. ; http://php.net/mbstring.http-input mbstring.http_input = UTF-8 ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output mbstring.http_output = UTF-8 ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation mbstring.encoding_translation = On ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another ; http://php.net/mbstring.substitute-character ;mbstring.substitute_character = none; ・apache、MySQLとも、XAMPPControlPanelから再起動 ・phpでの出力に、『print("<meta http-equiv="Content-type" content="text/html; charset=utf-8">");』を追加する。 ここまでは行っています。 コマンドラインでSQLを投げて、そこで文字化けするようなのですが、 あとは何がいけないのでしょう。 同じ回答をいただくことになってしまうかもしれませんが、 何卒ご指導の程、よろしくお願い致します。

    • 締切済み
    • PHP
  • PHP+MySQL 4.1.20における文字化け

    お世話になります。 現在、学内に実験的に設置されているサーバーを使って、そこに 「phpMyFAQ(Ver.2.0.3)」を入れて動かそうと試みています。 phpMyFAQのインストールは済んだのですが、いざ使ってみようと思って カテゴリ追加等をしようとすると、日本語が文字化けして「???????」と いうような状態になります。 きっと文字コードの設定に問題があり、php.iniやmy.cnf等の設定を変える 必要があるのでしょうが、サーバーは共用利用しているものであり、他の 利用者へ影響が出てしまうため、変更が困難です。 また、私自身がまだphpやMySQLに詳しくないため、どこを改善すればよい のかがわからずに困っております。(.htaccessをつくっていろいろと記述 してみたりしたのですが、文字化けは解消されていません。) もし何かアドバイス等ありましたらご教示いただけませんでしょうか。 よろしくお願いいたします。 MySQLのバージョン:4.1.20 PHPのバージョン :4.3.9 <MySQL> character_set_client ujis character_set_connection ujis character_set_database ujis character_set_results ujis character_set_server ujis character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none;

  • php,mysqlでの文字化け(機種依存文字)について

    機種依存文字「○いち」「(株)」の文字化けがどうしても解消できません。 phpソースに機種依存文字をコーディングした場合には正しく表示されますが、外部より入力した文字をMySQLに格納し、phpにてデータを取り出し表示すると文字化けします(phpmyadminでの表示時点で文字化け)。 「mb_convert_encoding」等にてテストしてみましたが、結果は変わりませんでした。また、phpmyadminにて直接MySQLに入力しても、phpmyadminでもブラウザ(php表示)でも文字化けしてしまいます。 文字コードについて知識が浅く、各環境はデフォルト状態です。 「mbstring.internal_encoding = EUC-JP 」にも関わらず、「character_set_client = utf8」「character_set_results = utf8」としているのに、機種依存文字以外は問題無く表示されております。 1.機種依存文字化けの対応方法 2.正しい環境設定方法(文字コードの統一を行うべき等) ご教授のほど、何卒宜しくお願い致します。 <<環境>> ・windows xp ・UNIX socket 4.1.22 ・phpMyAdmin - 2.11.1 ・Mysql 4.1.21 ・PHP 4.4.7 【Mysql】 character_set_client = utf8 character_set_connection = utf8 character_set_database = utf8 character_set_results = utf8 character_set_server = ujis character_set_system = utf8 【my.cnf】 [client] default-character-set = ujis [mysqld] default-character-set = ujis [mysqldump] default-character-set = ujis 【php.ini】 mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none; ※phpソースには「charset=euc-jp」を記載

    • 締切済み
    • PHP
  • xamppのMySQLの文字化け

    いつもお世話になっております。 xamppをインストールし、開発を行っております。 formでsubmitし、DBに登録すると文字化けを起こします。 MySQLは下記項目を追加しました。 C:\xampp\mysql\bin\my.ini -------------------------------------------------- [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake character_set_server=utf8 init-connect=SET NAMES utf8 (ここに default-character-set = utf8 を追加するとMySQLが起動しなくなります。) [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 php.iniは下記のように設定してあります。 php.ini -------------------------------------------------- mbstring.detect_order auto mbstring.encoding_translation Off mbstring.func_overload 0 mbstring.http_input UTF-8 mbstring.http_output UTF-8 mbstring.http_output_conv_mimetypes ^(text/|application/xhtml\+xml) mbstring.internal_encoding UTF-8 mbstring.language Japanese mbstring.strict_detection Off mbstring.substitute_character no value 日本語が正しく登録されていれば、表示は正しくされます。 おかしな部分、足りない部分等ありましたら、ご教示ください。 よろしくお願いいたします。 [環境]  MySQL:5.5.8  PHP:5.3.5  xampp:1.7.4

    • ベストアンサー
    • MySQL
  • MySQLとPHPで日本語が文字化けする。

    MySQLとPHPでアプリを開発中です。 MySQLに登録済の日本語文字列データをPHPでselectして echoを使ってクライアント(Windows XP)のブラウザに表示させると、 文字化けします。 全角文字がすべて半角の '?' になります。 MySQLの状態を調べるために以下を実行しました。 SHOW VARIABLES LIKE 'char%'; 結果は以下のとおりでした。 character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem  binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir /usr/local/mysql5.0.51a/share/mysql/charsets/ PHPの内部エンコードはUTF-8です。 php.iniの関連設定は以下のとおりです。 default_charset = "UTF-8" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII mbstring.substitute_character = "none" mbstring.encoding_translation = On extension_dir = "/usr/local/lib/php/extensions" extension=php_mysqli.dll extension = gd.so extension = mysqli.so extension = xmlrpc.so MySQLもPHPもすべてUTF-8で統一したので問題ないはずだと 思ったのですが? 半角アルファベットは問題なく表示されます。 サーバー側OSはSolarisです。 MySQLから正しくデータを得られていないように思えるのですが。 ヒントでも結構ですから教えていただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • php5とmysql5の設定

    eucjpで記述したphpのフォームからmysqlにデーターを格納して取り出すDBがあり、日本語表示が化けない設定は出来たのですが同じphpから検索をするとヒットしません。 同じphpスクリプトで別のサーバー(phpとmysqlは同じバージョンです)では問題なく稼働していたので現在のサーバーのphp.iniとmy.cnfの問題だと思うのですが他の似たような状況の方の解決策をなぞってeucjpに統一するなど一通り試したのですがどうもうまく行きません。 ちなみにサーバーは自サーバーでApache/2.2.3 (Debian) 、PHP/5.2.0-8+etch7、mysqlは5.0.32です。 php.iniは mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto (EUC-JPにすると入力後?になる) mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; my.cnfは [client] default-character-set= ujis [mysqld] skip-character-set-client-handshake default-character-set = ujis character-set-server = ujis [mysql] default-character-set = ujis です。よろしくお願いします!

    • 締切済み
    • PHP
  • php.iniを変更したのにUFT-8が文字化け

    こんにちは。教えて下さい。 Movable TypeをUTF-8で運営しようと思いましたが、使用中のサーバーのphpの文字コードがEUC-JPでした。 サーバーに問い合わせたところ、php.iniを編集するだけで文字コード変更できます、とのこと。 そこで、php.iniの mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none; を mbstring.language = neutral mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.internal_encoding = UTF-8 mbstring.detect_order = auto mbstring.substitute_character = none; にしてみました。 当方初心者で、php.iniは初めていじりました。 EUC-JPとあった箇所またはJapaneseとあった箇所を変更したのみです。 また、Movable Typeのmt-config.cgiで 文字コードをEUC-JPからUTF-8に変更。 Movable Typeの文字コード関連の変更はこのファイルのみですのでこれで大丈夫・・・。 そう思ったのですが、Movable Typeが文字化け・・・。 php.iniの設定が間違っているのでしょうか? 助けてください。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう