ホームページ >バックエンド開発 >PHPチュートリアル >Redhat環境下でのPHPはmysqlに接続します。コマンドラインでは問題ありませんが、Webページではエラーが発生します。
ぜひご覧ください。 AWS 上に php apache mysql 環境をセットアップしました。
php apacheとmysqlを分離したいです。
サーバー A には php と apache のみがインストールされています。そして、mysql クライアント
サーバー B には mysql のみがインストールされています。
同じコードをコマンドラインで正常に実行でき、データ操作のクエリと挿入を行うことができます。
しかし、Web ページの下部にエラーがあり、プロンプトは次のとおりです:
Can't connect to MySQL server on '192.168.9.9' (13)
<?php//php phpinfo();$link = mysql_connect("192.168.9.9","root","12345") or die("can't connect mysql".mysql_error());mysql_select_db("wtest",$link) or die ('Can\'t use foo : ' . mysql_error());;$resx = mysql_query("insert into west values(".rand(0,9999).")");$res = mysql_query("show variables like 'socket'");//$res = mysql_query("select * from west");//echo mysql_result($res,1);while($row=mysql_fetch_array($res)) {// $return[] = $row;echo $row[0]."<br>\n"; } ?>
アクセス権限が制限されており、ローカルでのみアクセスできますか?
私には 2 つのサーバーがあり、1 つはデータベース サーバー、もう 1 つは php および Apache サーバーです。 php および Apache サーバーのコマンド ラインからのみ使用できます。しかし、ブラウザでは機能しません。
マシン A はマシン B に ping できますか?
また、マシン B はリモート接続を許可しますか?
mysql 拡張機能は phpinfo で通常有効になっていますか?
root アカウントのリモート権限は有効ですか?
マシン IP に幸運の権限を割り当てます。例:
GRANT select、insert、update、delete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword"
マシン A で php コマンドを使用します。データベースはマシン B 上にあるため、リモート性や権限の問題ではありません。
Apache に関連して、以前にも同様の問題に遭遇したようですが、解決方法を思い出せません。
Windows で Apache Web ページからこのスクリプトにアクセスすることに問題はありますか?
ご返信ありがとうございます。
Windows での Apache Web アクセスとは何を意味しますか?
コードはすべて基本的なコードであるため、サーバーはテストのためにインストールされただけです。
結局のところ、コードには問題がないように感じます。 PHP にはクロスプラットフォームの問題はないようです。
6 階以上にいる場合は、私のコマンドラインの下にあるスクリプトは正しいので、よく読んでください。
mysql 拡張機能は phpinfo で通常有効になっていますか?
解決策 1: setsebool -P httpd_can_network_connect_db=1
解決策 2: /etc/selinux/config SELINUX=enforcing を SELINUX=disabled に変更します
解決策 1: setsebool -P httpd_can_network_connect_db=1
解決策 2 : /etc を変更します/selinux/config SELINUX=enforcing to SELINUX=disabled
解決策 1: setsebool -P httpd_can_network_connect_db=1
解決策 2: /etc/selinux/config SELINUX=enforcing を SELINUX=disabled に変更します