LINUX.ORG.RU
решено ФорумAdmin

После случайного измения index.php в bitrix перестал отображаться сайт

 , ,


0

1

Собственно, 500 Internal Server Error;
Можно, конечно, восстановится с бэкапа, но чисто из интереса - из-за чего может быть и что с этим можно сделать?

Вообще - битрикс сам генерирует index.php на основе шаблона или нет? Если этот файл вообще удалить - он сгенерирует новый?

Первый раз с битриксом сталкиваюсь - поэтому любопытно.

Линукс при том, что сервер на линуксе.


Сейчас подтянуться телепаты и посмотрят, что у тебя в логах и на что ругается php интерпретатор.

Zermond
()

error.log даст все ответы на поведение этого поделия

invokercd ★★★★
()

Наверняка после случайного изменения приключилась случайная ошибка, о ней вы сможете прочитать в error.log

gwinn ★★★★
()

Странно. Обычно в файлы с расширением php можно писать что угодно, и это никак не сказывается на работоспособности веб-приложения.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Всё зависит от того, где писать. И что. В блоке <?php ?> я бы не рискнул писать всё что угодно. А некоторые не печатные символы могут наделать проблем даже если редактирование файла производилось осторожно, достаточно сохранить файл в BOM к примеру.

lucentcode ★★★★★
()

Логи ошибок в студию. index.php не генерируется автоматически. Проще всего восстановить файл из резервной копии, или исправить ошибку ориентируясь на сообщения в error.log

lucentcode ★★★★★
()

Вообще - битрикс сам генерирует index.php на основе шаблона или нет?

Нет.

Битрикс вообще ничего сам не генерирует.

risenshnobel ★★★
()

А там дебаг режима нет в этом битриксе? Фееричное поделие. У нас провайдеры любят сайтики на нём :-)

menangen ★★★★★
()

Я случайно изменил несколько байт в /bin/bash и он теперь падает при запуске. Из-за чего это может быть и что с этим можно сделать? А если его удалить init сгенерирует новый?

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)

Господи, да после любого изменения index.php перестанет отображаться сайт.

Вопросы уровня детского сада.

zgen ★★★★★
()
Ответ на: комментарий от gwinn

Самый полный ответ на вопрос. Спасибо!

zgen ★★★★★
()
Ответ на: комментарий от thesis

Ну-ну, а как потом это ваше «что угодно» будет обрабатывать интерпретатор php? Всё должно быть согласно синтаксиса языка.

kostik87 ★★★★★
()

Извините за беспокойство, господа линуксоиды.

Planet
() автор топика
Ответ на: комментарий от risenshnobel

Я просто думал, что бирикс на основе шаблона и заданных модулей генерирует php-файл. Глупо, однако.

Planet
() автор топика

После случайного измения index.php
Можно, конечно, восстановится с бэкапа

ну вот сделай:


cp index.php index_modif.php
[восстановится с бэкапа]
[diff|vimdiff|meld] index.php index_modif.php

и увидишь что за случайное изменение произошло

а если проект хранить в репе, то

[команда_любимого_SCM] diff index.php

что намного кошернее чем какие-то бэкапы

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от Planet

Глупо, однако.

да ладно глупо, есть вот например ClojureScript,
это такой язык написанный на Java, который на выходе выдаёт тонну JavaScript для веба

q11q11 ★★★★★
()

Не пользуйтесь визуальным редактором битрикс. Он не для того чтобы им что-то редактировать.

Suntechnic ★★★★★
()
Ответ на: комментарий от kostik87

Который рендерит инфу об ошибке не только в логи, но и в окно браузера, чтобы кодер не какался от непоняток.

menangen ★★★★★
()
Ответ на: комментарий от Planet

Глупо, однако.

С вашей стороны да, глупо. Если у вас есть предложения по поводу организации внутренней структуры Bitrix и его работы то обращайтесь в тех. поддержку Bitrix, он же у вас купленный?

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Ну-ну, а как потом это ваше «что угодно» будет обрабатывать интерпретатор php?

Как сможет, к сожалению. Адское поделие.

Gotf ★★★
()
Ответ на: комментарий от Gotf

Адское поделие.

Ну, не знаю, в Internet немалый процент сайтов, на которых в качестве скриптового языка, выполняющегося на серверной стороне используется PHP, а вы его называете «адским поделием», нет, если вы такой великий специалист, что у вас есть свой скриптовый язык, который может поспорить с PHP, то представьте его широкой публике, в особенности, если вы в своём языке можете писать скрипты нарушая все нормы синтаксиса и он у вас продолжает работать.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Ну, не знаю, в Internet немалый процент сайтов, на которых в качестве скриптового языка, выполняющегося на серверной стороне используется PHP, а вы его называете «адским поделием»

Серьёзный аргумент.

в особенности, если вы в своём языке можете писать скрипты нарушая все нормы синтаксиса и он у вас продолжает работать.

Ты так говоришь, будто это что-то хорошее.

http://nuclight.livejournal.com/107170.html

http://kspitfire.blogspot.ru/2014/08/php-a-fractal-of-bad-design-rus.html

Gotf ★★★
()
Последнее исправление: Gotf (всего исправлений: 1)
Ответ на: комментарий от Gotf

Ты так говоришь, будто это что-то хорошее.

Кто тебе это сказал? Вся проблема ТС произошла из-за того, что он «что-то» написал в index.php и у него сервер выдал сообщение о 500 ошибке, что как раз и указывает на проблему в скрипте php, скорее всего вызванную нарушением синтаксиса или нарушением логики скрипта.

Ну, а по поводу ссылок, так не используй PHP, тебя что заставляют что-ли? Если ты вообще никогда ничего не писал на php, а лишь начитался ссылок в которых хулят php, то тут вообще говорить не о чём.

А так те кто хулят php и ты можешь написать свой скриптовый язык или выбрать любой другой из существующих. Но думаю первое им и тебе не по силам, да и второе, скорее всего, то же.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87

Мне казалось, из контекста понятно, что глупо с моей стороны.

Planet
() автор топика
Ответ на: комментарий от x3al

Странно, конструкций <script language=«php»> </script> как-то не встречал. Иногда короткий вид тегов PHP встречается(<? ?>), но он не особо популярен из-за того, что поддержку тегов PHP в стиле ASP не всегда оставляют включенной.

lucentcode ★★★★★
()
Ответ на: комментарий от Planet

Можно конечно было изучить логи или сравнить изменённый файл с оригинальным и исправить ошибку, но проще всего в таких случаях восстановить сайт из бэкапа.

lucentcode ★★★★★
()
Ответ на: комментарий от Suntechnic

Верно, но стоит помнить что Bitrix - это вешь в себе, которая требует особых настроек PHP(зачастую не совместимых с другими популярными CMS). Чего только стоит mbstring.func_overload =2 при использовании кодировки UTF-8. Не думаю, что разработчикам чего либо стоит ориентироваться на опыт разработчиков этой CMS. Лучше ориентироваться на разработчиков популярных Open Source-решений. Единственное её достоинство - это довольно приятный интерфейс пользователя.

lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 2)
Ответ на: комментарий от lucentcode

поддержку тегов PHP в стиле ASP

Это <% %>. <? ?> — это shorttags, которые в новых версиях не отключаются. А <script language="php"> не отключается вообще ни в одной версии.

Да, если включишь в конфиге — оно будет работать. И да, php пофиг, если закрываешь не тем тегом, что открывал.

x3al ★★★★★
()
Ответ на: комментарий от lucentcode

Согласен. Но вот достоинства ты точно ищешь не там. Главное достоинство битрикс это ее платность. Это некоторый ценз сразу отсекающий халявщиков. Заказчики которые купили лицензию битрикс чаще других оказываются платежеспособными ;)

А вообще этот бардак с тегами просто бесит. У меня были проблемы на одном сервере из-за <?php ?>, хотя я всегда считал что это <??> может не всегда работать, <?php ?> универсален. Правда не вспомню в чем была суть проблемы.

Suntechnic ★★★★★
()
Последнее исправление: Suntechnic (всего исправлений: 1)
Ответ на: комментарий от x3al

Не знал, что можно использовать открывающий тег одного вида, а закрывающий - другого. Привык всегда пользоваться одним и тем же видом. С PHP 5.4 всегда доступны <?=, а обычные шорт-теги доступны только ели PHP собран с нужным флагом. К сожалению, собирают PHP по разному, соответственно можно нарваться на неожиданность.

lucentcode ★★★★★
()
Ответ на: комментарий от Suntechnic

Если верить стандартам(PSR-1) доступными всегда должны быть только <?php ?> и <?= ?>, но на практике всегда можно нарваться на сюрприз. Это же PHP. Кроме всего прочего нужно про непечатные символы не забывать. Иногда их наличие в исходнике приводит к тому, что открывающие и закрывающие теги не работают корректно.

lucentcode ★★★★★
()

Трэкинг изменений затруднён, отсюда все вытекающие...

Найти ошибку можно линтингом и возможно, поднятым до предела error_reporting.

Простейший вариант:

php -l <file>

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.