古いSynologyデバイス(DSM v5.2-5967 Update 4、phpmyadmin v4.4.7-0103)があり、phpページが機能するローカルWebサイトがいくつかあります。これを新しいSynologyデバイス(DSM V6.1.3-15152 Update 1、phpmyadmin v4.6.6-0172)に移行したいと思います。パッケージセンターから新しいバージョンのphpmyadminをインストールする場合、MariaDBとPHP 5.6もダウンロードする必要がありますが、これはDSM 5の要件ではありません。さらに、DSM6はオプションをサポートするようになりましたWeb Stationで、httpバックエンドサーバーとPHPバージョンを構成できます。これを5.6に設定し、phpmyadminと一緒にインストールします。
これは、古いDSMで私のために機能していたコードです。
<?php
define ("DB_Host", "localhost"); // Your database Host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name
$link = mysql_connect(DB_Host, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
?>
このコードは「接続できませんでした」を返すようになりました。これを処理しない他のサイトは、500サーバーエラーを返します。 localhostをSynologyデバイスの名前に置き換えてみましたが、役に立ちませんでした。 PHPファイル自体は正常に動作しますが、データベースに接続できません。MariaDBのコントロールパネルがどこにも表示されないため、設定が不足しているかどうかわかりません。これはパッケージが新しくインストールされた新しいデバイスなので、rootパスワードもまだ変更していません。
PackageCenterからApache2.4をインストールし、それを新しいWeb Station設定でバックエンドサーバーとして設定し、NASを再起動してみました。ただし、phpyadminは引き続き「nginx /1.11.10」をWebサーバーとして表示します。参考までに、私の古いNASはWebサーバーの下にApacheを表示していますが、Apacheパッケージがインストールされていません。
私は途方に暮れています。 Synology DSM 6を使用してmysqlデータベースに接続しようとし、生きて物語を語った人はいますか?
私はDS716 +でDSM6を使用していますが、次のコードで問題ありません。接続の問題に到達するには原因が多すぎます。拡張機能が有効にならないなど。他の手順を実行する前に、phpinfo()を使用して確認してください。 mysqlの代わりに mysqli extension を使用してみてください。サンプルコードを添付してください。
<?php
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");
$query = "SHOW TABLES";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_row()) {
printf("%s <br />\n", $row[0]);
}
$result->close();
}
$mysqli->close();
?>
PS:私に反対票を投じる人にコメントを残してください
mysql-serverは実行されていますか?コマンドラインで#service mysql status
または#mysql
。 #mysql -u USERNAME -p
または#mysql -u USERNAME -h localhost -p
を使用してログインを確認することもできます。 mysql man を参照してください
ポートを追加する必要があります。
私はPDO
を使用していますが、mysql_connect
を使用できます
try
{
$pdo = new PDO("mysql:Host=servernameport=3307;dbname=database", "username", "password");
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return $pdo;
必要なポートを見つけるには、maria db
に移動します。正しい場合は、phpmyadmin
をインストールするとこのパッケージが自動的にインストールされます。