Архив рубрики «FreeBSD»
RuTorrent и PHP8
После обновления php с 5.7 до 8.1 перестали добавляться закачки в RuTorrent с ошибкой в логе
2023/01/09 06:48:24 [error] 12716#100281: *1667 FastCGI sent in stderr: «PHP message: PHP Warning: Cannot modify
header information — headers already sent in /usr/local/www/rutorrent/php/addtorrent.php on line 135PHP message:
PHP Warning: Cannot modify header information — headers already sent in /usr/local/www/rutorrent/php/addtorrent
.php on line 138″ while reading upstream, client: 91.202.207.206, server: rtorrent.skielf.local, request: «POST /
php/addtorrent.php?dir_edit=%2Fusr%2Fhome%2Frtorrent%2Fdownloads%2F%D0%A4%D0%B8%D0%BB%D1%8C%D0%BC%D1%8B%2F%D0%91%
D0%BE%D0%B5%D0%B2%D0%B8%D0%BA%2F HTTP/1.1″, upstream: «fastcgi://127.0.0.1:9000», host: «rtorrent.skielf.local»,
referrer: «http://rtorrent.skielf.local/»
Полечилось втыканием в php.ini
short_open_tag = on
Кроме того, переполз с apache на nginx, стал ловить ошибку
2023/01/09 11:25:01 [error] 19585#100327: *13 FastCGI sent in stderr: «PHP message: PHP Warning: File upload err
or — unable to create a temporary file in Unknown on line 0″ while reading response header from upstream, client:
91.202.207.206, server: rtorrent.skielf.local, request: «POST /php/addtorrent.php?dir_edit=%2Fusr%2Fhome%2Frtorr
ent%2Fdownloads%2F HTTP/1.1″, upstream: «fastcgi://127.0.0.1:9000», host: «rtorrent.skielf.local», referrer: «htt
p://rtorrent.skielf.local/»
Решилось созданием папки /tmp/http_upload, chown www:www /tmp/http_upload и добавлением в /usr/local/etc/php-fpm.d/www.conf (ну это у меня так, у вас может быть в другом файле описаны www сервисы)
следующих строк:
env[TMP] = /tmp/http_upload
env[TMPDIR] = /tmp/http_upload
env[TEMP] = /tmp/http_upload
nextcloud: обновление
Взялся тут обновлять свой nextcloud. Изначально стояла версия 20.0.4, в портах уже 23.0.4. Как выяснилось, обновляться через несколько мажорных версий нельзя, пришлось с помощью portdowngrade сначала получить и установить 21.0.5, а вот 22 версию portdowngrade уже не смог найти, пришлось качать дерево портов от 12.3-release и собирать оттуда. В результате уже из портов накатил 23 версию, все более-менее нормально, однако вылезло два косяка. При обновлении до 22 версии не запускался occ с сообщением
1038 Out of sort memory, consider increasing server sort buffer size
Вылечилось выполнением запроса в консоли mysql:
SET GLOBAL sort_buffer_size=256000000
Однако, действует до перезагрузки сервера. Чтобы сделать изменения постоянными, добавляем в файл my.cnf (у меня это /usr/local/etc/mysql/my.cnf)
sort_buffer_size = 256M
Кроме того, получил ошибку
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes)
Вылечилось добавлением строчки
apc.enable_cli=1
в файл /usr/local//etc/php/7.4/cli/conf.d/20-apcu.iniGoogle календарь — новшества
Приделывал я себе как-то Google calendar на рабочий стол во FreeBSD и все отлично работало, описание есть в этой статье: Google календарь во FreeBSD.
Однако, затеялся я тут обновить себе все порты, и оказалось, что синтаксис запуска gcalcli немножко изменился: вместо параметра —nolineart появился параметр —lineart, у которого значение может быть fancy, unicode, ascii. Параметр —military теперь обязательно должен следовать после указания временного интервала, иначе не распознается, а у calw кроме количества выводимых недель появился параметр начала, задаваемый числом месяца, без него выводится одна неделя и хоть ты тресни, пришлось использовать awk. Теперь строчка вызова для conky выглядит вот так:
${execi 300 gcalcli --nocolor --lineart=unicode calw `date|awk '{-f " "; print $2}'` 2 --military -w 12}
Nextcloud и vulnxml
Решил попробовать Nextcloud,
При сборке из портов вылезла ошибка:
pkg-static: unable to open vulnxml file (null): Invalid argument
И дале жалобы на то, что порт имеет уязвимости и надо обновить дерево портов, что, естественно, не возымело.
Гугление интернетов выдало совет сделать:
cp /usr/ports/security/vuxml/vuln.xml /var/db/pkg/
Попробовал — помогло. Ура.
Unexpected soft update inconsistence. The following disk blocs could not be read.
Просто задрали доблестные электрики. Выключают электричество по пять раз на дню. После одного из выключений машина выпала в однопользовательский режим по причине неполадок с файловой системой корневого раздела. fsck выдал следующую ошибку:
Unexpected soft update inconsistence. The following disk blocs could not be read.
После этого сообщение «file system still dirty» и предложение перезапустит fsck, что приводит к тому же результату. Прочитать остальную часть записи »
Туннель внутри туннеля (pptp over pptp)
Перестал у меня как-то на рабочей машине работать pptp туннель до конторы, в которой я немножко админю. А так-как там все настроено и работает как надо, и из дома доступ сохранился, то руки никак не доходили разобраться. Тогда я не связал этот отвал и обновление до FreeBSD 12. Надо заметить, что у нас доступ организован так, что в интернет я выхожу с помощью pptp туннеля, а потом внутри этого туннеля уже у меня поднимаются pptp туннели до нужных мне локальных сетей. Прочитать остальную часть записи »
libtool: error: required file ‘./ltmain.sh’ not found
Давно не брал я в руки шашек. А тут пришлось. С полгода назад уже обновил FreeBSD с десятки сразу до двенадцатой, и попервой все было хорошо, а тут что-то после чего-то стали порты падать на сборке с ошибкой
configure.ac:35: error: required file './ltmain.sh' not found
Репу почесал, интернеты почитал, единственное распространенное обсуждение проблемы нашел в доброй старой фидошной ru.unix.bsd, радостно туда полез и увидел, что умные дядьки советуют человеку сначала переустановит libtool, а после того, как ничего не получилось, переустановить систему. Что человек и сделал. А мне лень и неохота, поэтому я полез копаться. Накопал, что этот ltmain.sh лежит где ему и положено: в /usr/local/share/libtool/build-aux
Ради интереса запустил его, получил ошибку
libtool: Version mismatch error. This is libtool 2.4.6, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6
libtool: and run autoconf again.
Пошарился по скриптам, как советуют, libtoolize, autoconf, autoreconf etc, ничего не помогло, тогда сделал следующие вещи:
Удалил libtool, удалил его папку, поставил по новой:
$ cd /usr/ports/devel/libtool
$ sudo make deinstall
$ sudo rm -r /usr/local/share/libtool/
$ sudo portmaster -d devel/libtool
И все заработало.
mysql-server: пароль root
Нынче mysql сервер устанавливается сразу с назначенным паролем для root. Найти его можно в
/root/.mysql_secret
по идее, если запустить mysql от рута, то войдем без ввода пароля:
$ sudo mysql
root@localhost [(none)]>
После этого меняем пароль на привычный:
root@localhost [(none)]> use mysql
root@localhost [mysql]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
И, по желанию, отключаем ему expire, иначе, если он устареет, надо будет его менять с бОльшим количеством телодвижений. Однако, не забываем тогда иногда его менять во избежание всякого рода инцестов.
root@localhost [mysql]> ALTER USER ‘root’@’localhost’ PASSWORD EXPIRE NEVER;
Google календарь во FreeBSD
После прочтения этой статьи, прочитайте еще и эту: «Google календарь — новшества». В ней содержатся обновления, без который ничего не заработает.
Стал я пользоваться Google calendar, потому-что удобно, он всегда в кармане в телефоне и даже на windows календарь умеет туда смотреть и напоминать всякое. Собственно, эта вот штука во вражеской ОС и натолкнула меня на хотение чего-нибудь такого же на FreeBSD. Поскакав по портам, нашел /usr/ports/gcalcli — забавная штука, выводящая календарь в консоль. После установки доступна масса команд, например: — gcalcli calw Nx, где Nx — количество недель (gcalcli calw 2 выведет две ближайшие недели); gcalcli calm — выводит месяц; gcalcli remind Nx (Nx — количество минут) оповестит о предстоящих в ближайшие Nx минут делах, о этом позднее.
Собственно, устанавливаем, запускаем gcalcli, при первом запуске он откроет нам браузер с входом в аккаунт google, где надо авторизоваться и разрешить ему доступ к календарю. Дальше начинаем работать. Прочитать остальную часть записи »
serviio: Could not lock User prefs. Unix error code 2.
Пришлось тут поставить dlna-сервер serviio. Из коробки странно глючит, то работает, то нет. В лог пишет
[PluginCompilerThread] Plugins folder '/var/db/serviio/home/plugins' does not exist. No plugins will be compiled.
и
[prefs] Could not lock User prefs. Unix error code 2.
[prefs] Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Все дело в том, что порт при установке хотя и создает пользователя dlna, под которым все это дело крутится, но создает его без домашней папки, отсюда грабли. На wiki проекта есть howto, как установить его под FreeBSD, но к реальности оно имеет примерно то же отношение, что и Минские соглашения, так что берем в руки напильних, к счастью, небольшой, и подпиливаем:
# mkdir /var/db/serviio/home/plugins
# chown dlna:wheel /var/db/serviio/home/plugins
# pw usermod dlna -m -d /var/db/serviio/home
# /usr/local/etc/rc.d/serviio restart
Радуемся жизни.