Знатоки PHP и Joomla

Софт. Железо. Сообщество геймеров.
Новости. Новинки. Мнения.
Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Знатоки PHP и Joomla

#1

Сообщение Shtirlitz » 05 янв 2017, 13:26

Перед праздниками произошла беда - отвалился доступ к панели управления Джумлой одного из сайтов с ошибкой 500. Лог выдает ошибку вида
PHP Warning: fopen(/home/......./public_html/logs/error.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in /home/......./public_html/libraries/joomla/log/loggers/formattedtext.php on line 248

Визуально в данном файле ничего криминального нет, следов изменения тоже. Методы исправления в инете опробованы. Копался не только я. Пока проблема осталась. Дело магарычовое!
0
Мне нравится! Больше не нравится

kortag
Медаль "За Заслуги"
Медаль "За Заслуги"
Сообщения: 20211
Зарегистрирован: 14 мар 2008, 15:19

Re: Знатоки PHP и Joomla

#2

Сообщение kortag » 05 янв 2017, 13:47

Еще можно к хостингу обратиться. Они должны восстановить доступ.
0
Мне нравится! Больше не нравится
Помните, что Ваше присутствие на форуме означает согласие со всеми правилами.

alexiy
Долгожитель форума
Долгожитель форума
Сообщения: 5071
Зарегистрирован: 11 дек 2007, 09:30

Re: Знатоки PHP и Joomla

#3

Сообщение alexiy » 05 янв 2017, 14:01

А путь к файлу/каталогу (/home/......./public_html/logs/error.php) верен?
0
Мне нравится! Больше не нравится
К большому сожалению правительства реформу ЖКХ тормозит простое соображение - нельзя делать стоимость коммунальных услуг выше автомата Калашникова.

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#4

Сообщение 2SS2 » 05 янв 2017, 14:13

Доступ к папкам и файлам есть?
Если да, то открывай файл /home/......./public_html/libraries/joomla/log/loggers/formattedtext.php и смотри 248-ю строку кода. Она указывает на отсутствующий файл или директорию.
Но скорее всего проблема в компиляторе. Сервер есть возможность перегрузить?
Проверь так же атрибуты файлов и папок
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#5

Сообщение Shtirlitz » 05 янв 2017, 14:39

kortag писал(а):Еще можно к хостингу обратиться. Они должны восстановить доступ.
Хостинг констатировал ошибку 500, но со стороны пользовательских скриптов. Тем самым умыли руки
2SS2 писал(а):Доступ к папкам и файлам есть?Если да, то открывай файл /home/......./public_html/libraries/joomla/log/loggers/formattedtext.php и смотри 248-ю строку кода. Она указывает на отсутствующий файл или директорию.
Она указывает на файл administrator/index.php который естественно в наличии
2SS2 писал(а):Но скорее всего проблема в компиляторе. Сервер есть возможность перегрузить?
Не пробовал и не умею))
2SS2 писал(а):Проверь так же атрибуты файлов и папок
В норме
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#6

Сообщение 2SS2 » 05 янв 2017, 14:42

Shtirlitz писал(а): Она указывает на файл administrator/index.php который естественно в наличии
Сомневаюсь что папка administrator лежит в корне
Пропиши к ней полный путь
что нить вроде /home/......./public_html/administrator/index.php
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#7

Сообщение Shtirlitz » 05 янв 2017, 14:52

2SS2 писал(а):что нить вроде /home/......./public_html/administrator/index.php
У него адрес и есть public_html/administrator/index.php
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#8

Сообщение 2SS2 » 05 янв 2017, 14:57

напиши тут 248-строк .... если там нет ничего секретного
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#9

Сообщение Shtirlitz » 05 янв 2017, 15:01

<?php
/**
* @package Joomla.Platform
* @subpackage Log
*
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/

defined('JPATH_PLATFORM') or die;

jimport('joomla.log.logger');
jimport('joomla.filesystem.folder');

/**
* Joomla! Formatted Text File Log class
*
* This class is designed to use as a base for building formatted text files for output. By
* default it emulates the SysLog style format output. This is a disk based output format.
*
* @package Joomla.Platform
* @subpackage Log
* @since 11.1
*/
class JLoggerFormattedText extends JLogger
{
/**
* @var resource The file pointer for the log file.
* @since 11.1
*/
protected $file;

/**
* @var string The format for which each entry follows in the log file. All fields must be named
* in all caps and be within curly brackets eg. {FOOBAR}.
* @since 11.1
*/
protected $format = '{DATETIME} {PRIORITY} {CATEGORY} {MESSAGE}';

/**
* @var array The parsed fields from the format string.
* @since 11.1
*/
protected $fields = array();

/**
* @var string The full filesystem path for the log file.
* @since 11.1
*/
protected $path;

/**
* @var array Translation array for JLogEntry priorities to text strings.
* @since 11.1
*/
protected $priorities = array(
JLog::EMERGENCY => 'EMERGENCY',
JLog::ALERT => 'ALERT',
JLog::CRITICAL => 'CRITICAL',
JLog::ERROR => 'ERROR',
JLog::WARNING => 'WARNING',
JLog::NOTICE => 'NOTICE',
JLog::INFO => 'INFO',
JLog::DEBUG => 'DEBUG');

/**
* Constructor.
*
* @param array &$options Log object options.
*
* @since 11.1
*/
public function __construct(array &$options)
{
// Call the parent constructor.
parent::__construct($options);

// The name of the text file defaults to 'error.php' if not explicitly given.
if (empty($this->options['text_file']))
{
$this->options['text_file'] = 'error.php';
}

// The name of the text file path defaults to that which is set in configuration if not explicitly given.
if (empty($this->options['text_file_path']))
{
$this->options['text_file_path'] = JFactory::getConfig()->get('log_path');
}

// False to treat the log file as a php file.
if (empty($this->options['text_file_no_php']))
{
$this->options['text_file_no_php'] = false;
}

// Build the full path to the log file.
$this->path = $this->options['text_file_path'] . '/' . $this->options['text_file'];

// Use the default entry format unless explicitly set otherwise.
if (!empty($this->options['text_entry_format']))
{
$this->format = (string) $this->options['text_entry_format'];
}

// Build the fields array based on the format string.
$this->parseFields();
}

/**
* Destructor.
*
* @since 11.1
*/
public function __destruct()
{
if (is_resource($this->file))
{
fclose($this->file);
}
}

/**
* Method to add an entry to the log.
*
* @param JLogEntry $entry The log entry object to add to the log.
*
* @return boolean True on success.
*
* @since 11.1
* @throws LogException
*/
public function addEntry(JLogEntry $entry)
{
// Initialise the file if not already done.
if (!is_resource($this->file))
{
$this->initFile();
}

// Set some default field values if not already set.
if (!isset($entry->clientIP))
{

// Check for proxies as well.
if (isset($_SERVER['REMOTE_ADDR']))
{
$entry->clientIP = $_SERVER['REMOTE_ADDR'];
}
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$entry->clientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif (isset($_SERVER['HTTP_CLIENT_IP']))
{
$entry->clientIP = $_SERVER['HTTP_CLIENT_IP'];
}
}

// If the time field is missing or the date field isn't only the date we need to rework it.
if ((strlen($entry->date) != 10) || !isset($entry->time))
{

// Get the date and time strings in GMT.
$entry->datetime = $entry->date->toISO8601();
$entry->time = $entry->date->format('H:i:s', false);
$entry->date = $entry->date->format('Y-m-d', false);
}

// Get a list of all the entry keys and make sure they are upper case.
$tmp = array_change_key_case(get_object_vars($entry), CASE_UPPER);

// Decode the entry priority into an English string.
$tmp['PRIORITY'] = $this->priorities[$entry->priority];

// Fill in field data for the line.
$line = $this->format;
foreach ($this->fields as $field)
{
$line = str_replace('{' . $field . '}', (isset($tmp[$field])) ? $tmp[$field] : '-', $line);
}

// Write the new entry to the file.
if (!fputs($this->file, $line . "\n"))
{
throw new LogException;
}
}

/**
* Method to generate the log file header.
*
* @return string The log file header
*
* @since 11.1
*/
protected function generateFileHeader()
{
// Initialize variables.
$head = array();

// Build the log file header.

// If the no php flag is not set add the php die statement.
if (empty($this->options['text_file_no_php']))
{
// blank line to prevent information disclose: https://bugs.php.net/bug.php?id=60677
$head[] = '#';
$head[] = '#<?php die(\'Forbidden.\'); ?>';
}
$head[] = '#Date: ' . gmdate('Y-m-d H:i:s') . ' UTC';
$head[] = '#Software: ' . JPlatform::getLongVersion();
$head[] = '';

// Prepare the fields string
$head[] = '#Fields: ' . strtolower(str_replace('}', '', str_replace('{', '', $this->format)));
$head[] = '';

return implode("\n", $head);
}

/**
* Method to initialise the log file. This will create the folder path to the file if it doesn't already
* exist and also get a new file header if the file doesn't already exist. If the file already exists it
* will simply open it for writing.
*
* @return void
*
* @since 11.1
*/
protected function initFile()
{
// If the file doesn't already exist we need to create it and generate the file header.
if (!is_file($this->path))
{

// Make sure the folder exists in which to create the log file.
JFolder::create(dirname($this->path));

// Build the log file header.
$head = $this->generateFileHeader();
}
else
{
$head = false;
}

// Open the file for writing (append mode).
if ($this->file = fopen($this->path, 'a'))
{
// Throw exception.
}
if ($head)
{
if (!fputs($this->file, $head))
{
throw new LogException;
}
}
}

/**
* Method to parse the format string into an array of fields.
*
* @return void
*
* @since 11.1
*/
protected function parseFields()
{
// Initialise variables.
$this->fields = array();
$matches = array();

// Get all of the available fields in the format string.
preg_match_all("/{(.*?)}/i", $this->format, $matches);

// Build the parsed fields list based on the found fields.
foreach ($matches[1] as $match)
{
$this->fields[] = strtoupper($match);
}
}
}

Добавлено спустя 40 секунд:
248-я строка жирным выделена
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#10

Сообщение 2SS2 » 05 янв 2017, 15:08

Какие атрибуты на logs и tmp ?
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#11

Сообщение Shtirlitz » 05 янв 2017, 15:18

775
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#12

Сообщение 2SS2 » 05 янв 2017, 15:21

Попробуй 777
.htaccess не правил? В любом случае попробуй все же его перезалить
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#13

Сообщение Shtirlitz » 05 янв 2017, 15:27

2SS2 писал(а):Попробуй 777
Пробовал, не помогает
2SS2 писал(а):.htaccess не правил? В любом случае попробуй все же его перезалить
Не правил, визуально там все в норме
Где взять для перезалития?
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#14

Сообщение 2SS2 » 05 янв 2017, 15:35

Ну я Джумлой не пользуюсь .... наверно там где ты ее и брал

Но все же тебе надо проверять пути.
Если кинешь в личку доступ по FTP или лучше по SCP, посмотрю
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#15

Сообщение Shtirlitz » 05 янв 2017, 15:40

Скинул прямые контакты на доступ в личку
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#16

Сообщение 2SS2 » 05 янв 2017, 15:50

по http это геморой настраивать
По scp пароль не проходит
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#17

Сообщение Shtirlitz » 05 янв 2017, 15:56

Это на прямой доступ к аккаунту на timeweb
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#18

Сообщение 2SS2 » 05 янв 2017, 16:03

Я понял ..... по http
Сделал клиента по FTP .... сгенерировал пароль ..... но не пускает
Простенький сервер можно купить за 2 т.р. + диск старый поискать
не пойму для чего надо использовать глючных хостинг провайдеров
0
Мне нравится! Больше не нравится

Аватара пользователя
Shtirlitz
Долгожитель форума
Долгожитель форума
Сообщения: 6982
Зарегистрирован: 15 ноя 2007, 12:49
Откуда: Таганрог
Контактная информация:

Re: Знатоки PHP и Joomla

#19

Сообщение Shtirlitz » 05 янв 2017, 16:09

2SS2 писал(а):Простенький сервер можно купить за 2 т.р. + диск старый поискатьне пойму для чего надо использовать глючных хостинг провайдеров
Работодателям не надо.
А у меня дома только 4G
2SS2 писал(а):Сделал клиента по FTP .... сгенерировал пароль ..... но не пускает
На число клиентов ограничение, то что прислал в личку вторым сообщением - это единственный
0
Мне нравится! Больше не нравится

2SS2
Долгожитель форума
Долгожитель форума
Сообщения: 1365
Зарегистрирован: 21 окт 2010, 18:21

Re: Знатоки PHP и Joomla

#20

Сообщение 2SS2 » 05 янв 2017, 16:21

Я пас ..... по http это изврат настраивать.
если дадут доступ по FTP или SCP, посмотрю
0
Мне нравится! Больше не нравится

Ответить