2

そこで、CentOS に MySQL の chroot をセットアップしました。MySQL は事実上 /opt/chroot/mysql/ に限定されており、すべてが正常に動作するように /etc/init.d/mysqld ファイルを変更しました。次のコマンドを発行して、(ルートとして) ソケットに接続できます。

mysql -S /opt/chroot/mysql/var/lib/mysql/mysql.sock

現時点では、単純にするために、MySQL root ユーザーのパスワードはありません。

ただし、何らかの理由で PHP (Apache で実行) は同じソケットに接続できません。接続中に完全なソケット パスを参照するだけでなく、php.ini で MySQL のデフォルト ソケット変数を更新しようとしましたが、常に同じエラーが発生します。

ソケット '/opt/chroot/mysql/var/lib/mysql/mysql.sock' を介してローカルの MySQL サーバーに接続できません (13)

何か案は?

更新:自分で解決策を見つけました。SELinux が有効になっており、Apache によるすべての接続をブロックしていました。

4

1 に答える 1

1

Apache には、そのパス内のすべてのディレクトリを走査/読み取る権限がありますか? コマンド ラインから root として何かを実行するからといって、Apache に夢中になるわけではありません。それは別のユーザー ID であり、まったく別の環境です。

于 2011-10-14T15:43:53.593 に答える