PHPとMySQLが通信しない


9

PHPのインストールとMySQLのインストールがうまくいっていないという結論に達しました。私はコンテンツにMySQLを使用する最初のWebページの作成に取り組んでいますが、2日後に、マニュアルページ、オンラインドキュメント、および数十のチュートリアルを実行しても、PHP / MySQLパーツを機能させることができません。Apacheを実行し、自分のWebページをホストする、確立されたホームWebサーバー(私は唯一の管理者/ユーザー)を持っています。MySQLをインストールし、ターミナルを介してデータベースを作成およびクエリすることができました。PHPをインストールしました。エコーを使用してテキストをドキュメントに出力できます。MySQLで作業すると、すべてが変わります…

に初期化に関する情報を含むページがあります。MySQLにアクセスするためのハードコードされたHTMLの段落とその後のPHPコードの段落が含まれています。最初にページをロードしたとき、結果として生じたのは空白のページだけでした。PHPセクションをコメントアウトしてリロードし、プレーンHTMLがまだ機能していることを確認しました。そのため、PHPの一部がページの読み込みを妨げていました。

コードのトラブルシューティングを開始するために、サーバー接続用の次のコードを除くすべてのPHPコードにコメントを残しました。

<?
echo("<p>PHP is working</p>"); 
$ses = mysql_connect("localhost","username","password");
if(!$ses){
 echo("<p>Connection to content server failed.</p>");
 exit();
}
echo("<p>Database Connected</p>");
?>

ページが読み込まれると、「PHPは動作しています」という段落に加えて、最初のHTMLが読み込まれますが、失敗メッセージも成功メッセージも表示されません。2つのエコーとmysql_connectのみが残るように、コードからIf構造を削除し、同じ結果を得ました。

mysql_connect機能が原因で、サーバーが実行時にコードのロードを停止しているようですが、私はそれを修正する方法について考えていません。参考までに、「connection = msql.so」行を含めるようにphp.iniファイルを変更し、MySQL 5.5、Apache 2.2.22、PHP 5.3.10、Ubuntu 12.04を使用しています。また、ルーターとモデムの両方がポート3306をサーバーに転送するように構成されています(どのようにする必要があるかはわかりません)。MySQLのユーザー名とパスワードは3重にチェックされ、正常に使用しているものと同じです。ターミナル。

何が欠けていますか?


1
「username」とパスワードを正しいユーザー名(おそらくroot)とパスワードに
置き換え

2
ええ、私はそれをしました。ユーザー名とパスワードをフォーラムに投げ出すのは良い考えだとは思いませんでした。最後に言ったように、ユーザー名とパスワードを何度もチェックして、ターミナルでデータベースを正常に作成、アクセス、編集するために使用するものと一致していることを確認しました。
Casey Hungler

また、サーバーのローカルIPアドレスとグローバルIPアドレスだけでなく、localhostを127.0.0.1に置き換えてみましたが、どちらも違いはありませんでした。
Casey Hungler

1
インストールしましたphp5-mysqlか?
laurent

確信はありますが、もう一度やってみます。
Casey Hungler

回答:


9

すべてが正常に見えるので、インストールは完了していないと思います。mysqlとphpが通信するには、php5-mysql パッケージをインストールする必要があります。

sudo apt-get install php5-mysql

注意:これが機能するためには、コンピュータを再起動する必要がありました。
user124384 2015

3

php5-mysqlパッケージをインストールし、mysql_connectの代わりにmysqli_connectを使用します


ありがとう、他の誰かもそれを提案しました、そしてそれはうまくいきました!しかし、私は好奇心旺盛ですが、私の検索でmysqliに関するものに出くわしたことがあります(通常、PDOもそこにありました)。それは何ですか?通常のmysqlよりも優れている点は何ですか?
Casey Hungler

MySQLiは改良されたバージョンです。
フクロウ

私が知っていることから、phpiチームによって推奨されているmysqliを使用する必要があります。mysql_connectはもう開発ではなく、メンテナンスのみです。mysql_connectは、たとえば準備されたステートメントや他の多くのものを受け入れないと思います。
laurent


1
sudo apt-get install php5-mysql

からTomcat-versionを見つけてください/etc/init.d/。tomcat7という名前のファイルがあるはずです。したがって、7がバージョンです。

sudo service tomcat7 stop 
sudo service tomcat7 start

マシンを再起動すると、他の問題の分類に役立つことがあります。再起動後、実行することを忘れないでください:

sudo service tomcat7 start 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.