PHPとApache2はインストールして使える状態でPHPからMySQLに接続できないと思ったらMySQLへの接続に必要なパッケージがインストールされてませんでした。
問題
mysqliのインスタンス文以降が消える
試しにmysqlクラスのオブジェクトを作成してMySQLに接続してみようとするとブラウザに真っ白なページが表示された。
<HTML> <HEAD> <TITLE>PHP Test</TITLE> </HEAD> <BODY> <?php $mysqli = new mysqli('localhost', 'root', '***', 'sampledb'); if ($mysqli->connect_error){ die('Connect Error:('.$mysqli->connect_errno.')'.$mysqli->connect); } print 'Connection with mysql class has a succeeded.'; $mysqli->close(); ?> </body> </html>
MySQLへの接続に失敗したらエラー文を表示するようにしているのにそれすら表示されない。
ページのソースを確認すると mysqli のインスタンスを作成するコード以降が消えていた。
普通のエラーではないので設定を変更する必要があるのか、パッケージが足りてないのかのどちらかと予想。
解決
php-mysql というパッケージをインストールするしたあとApacheを再起動するとPHPでMySQLに接続できた。
$ sudo apt install php-mysql $ systemctl restart apache2.service
MySQLへの接続程度なら設定ファイル等を書き換えることもなくパッケージをインストールするだけでできるみたい。
最初からWebや書籍を参考にして必要そうなパッケージをまとめてインストールしておくのもいいけど、その機能を利用するのにどのパッケージが必要なのか覚えづらいのでとりあえず手探りで触っていこうと思う。
この記事を読んだ人はこんな記事も読んでいます。
【Ubuntu】PHPからMySQLに接続するための設定