Откройте MySQL медленный журнал запросов с PHP - PullRequest
0 голосов
/ 05 января 2010

У меня проблемы с открытием медленного журнала запросов MySQL с помощью PHP. Я пишу отладчик и пытаюсь подключиться к файлу журнала, но он дает мне сообщение об отказе в разрешении.

Код:

$log = file_get_contents('/var/log/mysql/mysql-slow.log');

Ответ (ошибка):

Warning: file_get_contents(...): failed to open stream: Permission denied ...

Я могу cat файл просто отлично с терминала. Я изменил файл журнала на 0777 с тем же результатом. Эта операция не разрешена во время работы MySQL? Есть ли способы обойти это?

PHP5.2.10, Ubuntu 9.10, MySQL 5.1.37

Ответы [ 5 ]

2 голосов
/ 05 января 2010

Также убедитесь, что каталог /var/log/mysql имеет как минимум разрешение на выполнение (711) для пользователя вашего веб-сервера, я полагаю, что в Ubuntu по умолчанию оно равно 700.

1 голос
/ 05 января 2010

ты пробовал попен?

$fp=popen("cat /var/log/mysql/mysql-slow.log","r");
while (!feof($fp)) {
    $buffer = fgets($fp, 4096);
    $croninf .= '<tr><td>' . $buffer . '</td></tr>' . "\n";
} 
1 голос
/ 05 января 2010

В предположении я бы сказал, что пользователь, который запускает php, не является тем же или не входит в ту же группу, что и владелец файла журнала.

Вы можете попытаться изменить владельца файла журнала, но это может помешать mysql получить разрешение на запись в него.

Можете ли вы прочитать файл с помощью fopen?

0 голосов
/ 04 июля 2014

Попробуйте этот код:

chmod 777 /var/log/mysql/mysql-slow.log
<?php 
$file = "/var/log/mysql/mysql-slow.log"; //local
$fp = fopen($file, "r");
if ($fp) {
    while (($line = fgets($fp, 4096)) !== false) {
        echo "<br/>" . $line;
    }
}
?>
0 голосов
/ 13 мая 2014

Добавление пользователя в админ для команды оболочки groupon linux

adduser www-data adm

дать разрешение на файл 770 (полный доступ владельца и группы) и перезагрузить систему

chmod 770 /var/log/mysql/mysql-slow.log
reboot

затем прочитайте файл с php

$filename = '/var/log/mysql/mysql-slow.log';
$handle = fopen($filename, "r");
$icerik = fread($handle, filesize($filename));
fclose($handle);
print_r($icerik);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...