Access-Control-Allow-Origin (CORS)

CORS (совместное использование ресурсов между разными источниками) — технология браузеров, позволяющая предоставить веб-странице доступ к ресурсам другого домена.

Чтобы включить CORS в Apache2, нужно сначала активировать модуль headers, в Ubuntu Server это можно сделать командой:

Читать далее «Access-Control-Allow-Origin (CORS)»

Решение ошибки при обновлении WordPress «Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту»

Был когда-то давно случай, при обновлении WordPress возникла ошибка и получилось что обновление не установилось да и сайт остался выключенным.
При его открытии отображалось:
«Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту.»
или на английском
«Briefly unavailable for scheduled maintenance».

Читать далее «Решение ошибки при обновлении WordPress «Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту»»

Скрытие имени сайта в шапке phpBB

Делал как-то большой логотип в шапке форума phpBB и естественно имя сайта и описание было наложено на него и мешало.
Чтобы скрыть имя сайта и описание в директории активной темы (стиля) найдем файл /style/stylename/template/overall_header.html

Откроем его в текстовом редакторе и найдём в нем две следующие строки:

<h1>{SITENAME}</h1>
<p>{SITE_DESCRIPTION}</p>

Как раз они и отвечают за отображение имени сайта и описания в шапке форума, удалять их не будем, вдруг пригодятся, а просто закомментируем:

<!-- <h1>{SITENAME}</h1>
<p>{SITE_DESCRIPTION}</p> -->

После этого очистим кеш форума нажав на кнопку в пенели администратора. Все.

Обновление phpBB 3.1.8 до phpBB 3.1.9

Сегодня обновил форум phpBB 3.1.8 на phpBB 3.1.9 автоматическим пакетом обновления.

Ниже опишу порядок действий для выполнения обновления:

1) Сделаем резервную копию файлов и базы форума.
В Linux это можно сделать например командами:

sudo tar -cvjf backup_forum_files.tar.bz2 /var/www/forum/
mysqldump -u ПОЛЬЗОВАТЕЛЬ -h localhost -p БАЗА | gzip -c > backup_forum_base.sql.gz

2) Теперь нужно скачать архив с пакетом обновления «https://www.phpbb.com/downloads/#update».

3) Распакуем из архива только install/ и vendor/ в директорию с форумом. Если папка install находится в директории с форумом, он автоматически отключается, то есть никто на нем не будет писать и ходить.
Если файлы перемещали из терминала, то на них возможно будут установлены права владельца от которого перемещали и web сервер не сможет получить к ним доступ, поэтому укажем группу и владельца от которого работает web север командами:

sudo chown -R user:user /var/www/forum/install/
sudo chown -R user:user /var/www/forum/vendor/

4) Откроем в браузере ссылку на форум добавив к ней install, например http://example.com/forum/install/.
Теперь осталось нажать Update и следовать инструкциям.

Если в коде каких-то файлов вы делали изменения и они затрагиваются обновлением, об этому будет сообщено и предложено выбрать какую версию файлов оставить, на мой взгляд лучше ставить новую версию из обновления, а изменения потом внести после обновления сравнив оба файла например в Notepad++ с использованием плагина Notepad++ Compare plugin который показывает отличия в коде файлов.

Как настроить SSL и HTTPS для WordPress

Настраивал однажды на нескольких WordPress сайтах SSL сертификаты.

Сайты были размещены на выделенном сервере под управление Ubuntu, по этому первым делом я создал директорию для сертификатов и перешел в неё:

Читать далее «Как настроить SSL и HTTPS для WordPress»

Разрыв страницы в html-документе

Пришлось как-то делать HTML шаблон чека для термопринтера, который после каждой страницы может делать разрыв ленты.

Так как чек должен был разрываться на две части, то первую часть я не стал трогать, а вторую поместил в тег div с указанием стиля:

<div style="page-break-before:always;">
СТРАНИЦА 2
</div>

Стиль «page-break-before» определяет разрыв перед страницей, поэтому перед второй страницей лента разрывалась, ну а в конце по завершении печати по настройкам самого принтера выполняется разрыв. Также можно указать что разрыв должен выполняться после страницы: «page-break-after» или «page-break-inside» внутри страницы.

Опишу значения:
always (всегда добавляет разрыв страницы)
auto (автоматически добавляет разрыв страницы если он требуется)
avoid (запрещает разрыв страницы)
left (пропускает одну или две страницы, чтобы следующая страница при печати была четной)
right (пропускает одну или две страницы, чтобы следующая страница при печати была нечетной)
inherit (наследует значение)

Стиль разрыва страницы можно указывать например в таблице:

<table style="page-break-after:always">
</table>

Либо в CSS:

table { page-break-after:always; }

Обновление phpBB 3.0.x на phpBB 3.1.x

Обновлял недавно phpBB 3.0.12 на 3.1.8, авто обновление тут не поможет, поэтому опишу по пунктам процедуру обновления:

1) Обязательно сделаем резервную копию файлов и базы данных форума. Cделаем стандартной темой prosilver, отключим остальные стили и модули, так как они не будут работать на новой версии phpBB.

2) Скачаем архив с новой версией phpBB с официального сайта «https://www.phpbb.com/downloads/».

3) На сервере удалим все файлы и папки форума кроме файла config.php и директорий images, files, store.

4) Распакуем скачанный архив, удалим файл config.php и директории images, files, store. Переместим остальные файлы на сервер.

5) В браузере откроем адрес форума указав на скрипт обновления базы, например http://FORUM/install/database_update.php и следуя инструкциям выполним обновление.
На этом этапе у меня произошла ошибка:

PHP Fatal error:  Uncaught exception 'Twig_Error_Loader' with message 'Unable to find template "login_body.html" ...
...

Подозреваю что информация в базе данных, в таблице phpbb_migrations не дала скрипту полностью выполнить обновление. По этому решил проблему восстановив старую базу форума, очистив эту таблицу phpbb_migrations через phpMyAdmin или можно sql запросом:

TRUNCATE TABLE phpbb_migrations

И снова выполнив скрипт обновления базы http://FORUM/install/database_update.php, который на этот раз выполнил обновление правильно.

По окончанию обновления удалим директорию install и очистим кеш через панель администрирования форума. Готово.

Смотрите также:
Решение ошибки «A module already exists» и «The installer detected a timeout» при обновлении phpBB

Как запретить обновление плагинов в WordPress

Запретить обновление конкретного или всех плагинов WordPress можно несколькими способами, опишу несколько из них:

Читать далее «Как запретить обновление плагинов в WordPress»

Решение ошибки «Расширение mysqli|mysql не найдено»

Заметил как-то на одном из новых Ubuntu серверов ошибку при открытии phpMyAdmin — «Расширение mysqli|mysql не найдено».

Читать далее «Решение ошибки «Расширение mysqli|mysql не найдено»»

Как понизить версию PHP?

На примере буду понижать версию PHP в Ubuntu 18.04, в которой по умолчанию устанавливается версия 7.2. Я не рекомендую понижать версию PHP, так как новые версии производительнее и закрывают уязвимости, но бывают случаи когда нужно запустить старый скрипт или движок, который не работает на новых версиях PHP, а исправить код очень трудоемко из-за того что много файлов.

Читать далее «Как понизить версию PHP?»