LINUX.ORG.RU

Сообщения kir64

 

Исключить блок html с помощью xpath или regex в python

Форум — Development

Привет, ЛОР!

Столкнулся с такой задачей: нужно с помощью python2 взять исходник html-страницы, далее удалить из неё определенные xpath'ы (к примеру, выпиливать блоки с рекламой, т.к. они не несут в себе никакой полезной информации), и вернуть модифицированный html-код.

Сейчас делаю так:

    @staticmethod
    def remove_unnecessary_tags(url, html_source):
        try:
            name = re.findall('.*?/?\.?(\w+)\.\w{2,4}/', url)[0]
        except KeyError:
            print 'Cannot find what the name in %s' % url
            return html_source
        original = html.fromstring(html_source)
        try:
            return original.xpath('.//*[not(%s)]' % x.get_xpaths(name))
        except Exception as e:
            print e
            return original

Проблем а в том, что возвращаю я уже не html-код, а список из

<Element div at 0xb58fad9c>
<Element script at 0xb58fadc4>
<Element script at 0xb58fadec>
<Element noscript at 0xb58fae14>
<Element div at 0xb58fae3c>
<Element img at 0xb58fae64>

У них есть методы elem.tag и elem.text, но ни один из них не позволяет получить полноценную строку типа <div class=«bla»>blabla</div>, как было изначально.

Конечно, остается еще вариант выпиливания кусков по regexp, но я не уверен что это хорошая идея.

Что посоветуешь, ЛОР?

 , , , ,

kir64 ()

Почему python-скрипт получает ответы от сервера не такие, как браузер?

Форум — Web-development

Привет, ЛОР! Начинаю вникать в web-development, так что вот нубовопрос:

http://storage3.static.itmages.ru/i/15/0131/h_1422700236_8093379_40bbc2e91f.png

Зеленым отмечены запросы, сделанные через firefox. Страница успешно загрузилась, я отправил запрос и получил корректный ответ.

Ниже я пытаюсь повторить то же самое питоньим скриптом, используя библиотеку requests.

Как видно на скриншоте, я получаю совсем другие ответы от сервера еще на момент первого GET, размер body другой. Никак не могу понять, что происходит и почему так. Соответственно, в конце я не получаю желаемого результата.

 , , ,

kir64 ()

Python, реализация zip(*zipped)

Форум — Development

Привет, ЛОР!

Делаю задачку с формулировкой «Сделайте свою реализацию zip() из стандартной библиотеки python.»

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

Но что-то не могу нагуглить, как обработать случай zip(*ZIPPED), который, собственно, делает unzip имеющихся кортежей обратно в списки.

Подскажите, пожалуйста, куда копать?

 , , , ,

kir64 ()

Зависимости в gentoo. Как правильно?

Форум — General

Привет, ЛОР!

Подскажи, как правильно решать подобного рода проблемы в gentoo?

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

app-text/libetonyek:0

  (app-text/libetonyek-0.1.1:0/0::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (app-text/libetonyek-0.0.3:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =app-text/libetonyek-0.0* required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
    ^                    ^^^^                                                                                                                               

dev-libs/boost:0

  (dev-libs/boost-1.56.0-r1:0/1.56.0::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (dev-libs/boost-1.55.0-r2:0/1.55.0::gentoo, ebuild scheduled for merge) pulled in by
    >=dev-libs/boost-1.46:0/1.55.0= required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
                         ^^^^^^^^^^                                                                                                            
    dev-libs/boost:0/1.55.0 required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
                  ^^^^^^^^^                                                                                                            

app-text/libebook:0

  (app-text/libebook-0.1.1:0/0::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (app-text/libebook-0.0.2:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =app-text/libebook-0.0* required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
    ^                  ^^^^                                                                                                                               

dev-libs/liborcus:0

  (dev-libs/liborcus-0.7.0:0/0::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (dev-libs/liborcus-0.5.1:0/0.5::gentoo, ebuild scheduled for merge) pulled in by
    =dev-libs/liborcus-0.5* required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
    ^                  ^^^^                                                                                                                               

app-text/poppler:0

  (app-text/poppler-0.30.0:0/49::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (app-text/poppler-0.26.5:0/46::gentoo, ebuild scheduled for merge) pulled in by
    app-text/poppler:0/46 required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
                    ^^^^^                                                                                                            
    >=app-text/poppler-0.16:0/46=[xpdf-headers(+),cxx] required by (app-office/libreoffice-bin-4.2.8.2:0/0::gentoo, installed)
                           ^^^^^^                                                                                                                                 

dev-libs/libixion:0

  (dev-libs/libixion-0.7.0:0/0::gentoo, ebuild scheduled for merge) pulled in by
    >=dev-libs/libixion-0.7.0 required by (dev-libs/liborcus-0.7.0:0/0::gentoo, ebuild scheduled for merge)
    ^^                  ^^^^^                                                                                                                                     

  (dev-libs/libixion-0.5.0:0/0.5::gentoo, ebuild scheduled for merge) pulled in by
    =dev-libs/libixion-0.5* required by (dev-libs/liborcus-0.5.1:0/0.5::gentoo, ebuild scheduled for merge)
    ^                  ^^^^                                                                                                                                       

dev-util/boost-build:0

  (dev-util/boost-build-1.56.0:0/0::gentoo, installed) pulled in by
    =dev-util/boost-build-1.56* required by (dev-libs/boost-1.56.0-r1:0/1.56.0::gentoo, ebuild scheduled for merge)
    ^                     ^^^^^                                                                                                                                           

  (dev-util/boost-build-1.55.0-r1:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =dev-util/boost-build-1.55* required by (dev-libs/boost-1.55.0-r2:0/1.55.0::gentoo, ebuild scheduled for merge)
    ^                     ^^^^^                                                                                                                                           

media-video/ffmpeg:0

  (media-video/ffmpeg-2.2.11:0/52.55.55::gentoo, ebuild scheduled for merge) pulled in by
    >=media-video/ffmpeg-1.2.6:0/52.55.55=[threads] required by (media-video/mplayer2-2.0_p20131009:0/0::gentoo, installed)
                              ^^^^^^^^^^^^                                                                                                                     

  (media-video/ffmpeg-2.5:0/54.56.56::gentoo, installed) pulled in by
    >=media-video/ffmpeg-2.3:0 required by (media-video/handbrake-0.10.0:0/0::gentoo, installed)
    ^^                   ^^^^^                                                                                                                                            


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

Часто при обновлениях зависимости libreoffice-bin попадают в такую вот беду. Руками их все маскировать? Как тогда я узнаю, что они стали готовы к обновлению (а они рано или поздно станут)? Или как-то устанавилвать в разные слоты? Тогда стоит ли овчика выделки, и не проще ли некоторое время не обновлять эти пакеты, пока все не разрулится «само-собой» в репозитории?

 , , ,

kir64 ()

кодировка в tigervnc

Форум — Desktop

Здравствуйте, дамы и господа! На gentoo при использовании tigervnc вместо русских букв исключительно знаки вопроса. Что это и как лечить? Какую информацию необходимо предоставить для нахождения корня проблемы?

kir@gentoo ~ $ uname -a
Linux gentoo 3.10.25-gentoo #11 SMP Wed May 28 10:02:16 MSK 2014 i686 Pentium(R) Dual-Core CPU E5700 @ 3.00GHz GenuineIntel GNU/Linux
kir@gentoo ~ $ eix tigervnc
[I] net-misc/tigervnc
     Available versions:  1.2.0 ~1.2.80_p5065 1.2.80_p5065-r1 ~1.3.1 1.3.1-r1 ~1.3.1-r2 {gnutls +internal-fltk java nptl +opengl pam server +xorgmodule ELIBC="FreeBSD"}
     Installed versions:  1.3.1-r1(17:18:53 02.09.2014)(nptl opengl pam server xorgmodule -gnutls -java ELIBC="-FreeBSD")
     Homepage:            http://www.tigervnc.org
     Description:         Remote desktop viewer display system
kir@gentoo ~ $ locale
LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES="ru_RU.utf8"
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=

РЕШЕНИЕ:

запускать клиент tigervnc командой

LANG=C vncviewer

 , , ,

kir64 ()

python докачка файла при обрыве коннекта

Форум — Development

Привет, ЛОР!

Пишу скриптик на python, одна из функций которого - скачать файл. Файл большой, 2.5Гб. Вот кусок кода, который его качает:

local_file = urllib.URLopener()
local_file.retrieve(url, filename, reporthook=print_download_progress)
print(". Загрузка успешно окончена!\n")

Однако, иногда сервер разрывает соединение, и я получаю вот что:

Загружено: 39%, 1077960704 байтTraceback (most recent call last):
  File "/home/kir/PycharmProjects/Updater/main.py", line 156, in <module>
    if update_file(name):
  File "/home/kir/PycharmProjects/Updater/main.py", line 122, in update_file
    local_file.retrieve(url, filename, reporthook=print_download_progress)
  File "/usr/lib/python2.7/urllib.py", line 284, in retrieve
    "of %i bytes" % (read, size), result)
urllib.ContentTooShortError: retrieval incomplete: got only 1077955321 out of 2726195712 bytes

ЛОР, как организовать докачку файла?

local_file = urllib.URLopener()
try:
    local_file.retrieve(url, filename, reporthook=print_download_progress)
    print(". Загрузка успешно окончена!\n")
except urllib.ContentTooShortError:
    #тут код докачки файла с места обрыва

 , , , ,

kir64 ()

Глупый вопрос по установке тем в KDE

Форум — Talks

ЛОР, я что-то туплю. В стандартном установщике тем как мне установиться сразу все, отмеченное галками? При наждатиии на кнопку «Установить» вылезает вот это меню, если щелкаю в какой-то пункт, устанавливается только он.

Screenshot

 , , ,

kir64 ()

Возможна ли защита от подключения точки доступа в режиме repeater'а?

Форум — Security

Привет, ЛОР!

Столкнулся с такой проблемой: есть открытая wi-fi сеть на одной из центральных улиц нашего города. В соседнем дворе телефон показывает мощность сигнала 2 единицы. Дабы немного усилить сигнал, попробовал подключиться к ней D-Link DAP-1360 в режиме «repeater». Все прошло успешно, мощность сигнала возрасла до полной. Однако при попытке подключения к ней с телефона подключение не происходит (несколько раз пытается получить ip-адрес и отключается); с ноутбука оно осуществляется, но интернета нет. При перенастройке сети на повторение сигнала своей собственной сети все работает отлично. Однако, создав открытую точку доступа на телефоне, и подключив repeater к ней, а ноутбук к усиленной сети, в интернет он выйти также не смог. До этого пробовал точку доступа LevelOne WAP-0009 - результат был тот же.

Я не понимаю, то ли в изначальной (целевой) сети установлена какая-то защита от повторителей (такое вообще бывает/возможно?), либо... На этом мысль останавливается.

 , ,

kir64 ()

Не меняется $PS1 в konsole и yakuake

Форум — Desktop

Привет, ЛОР! Имеем gentoo с kde. В /etc/profile после

if [ -n "${BASH_VERSION}" ] ; then
        # Newer bash ebuilds include /etc/bash/bashrc which will setup PS1
        # including color.  We leave out color here because not all
        # terminals support it.
        if [ -f /etc/bash/bashrc ] ; then
                # Bash login shells run only /etc/profile
                # Bash non-login shells run only /etc/bash/bashrc
                # Since we want to run /etc/bash/bashrc regardless, we source it 
                # from here.  It is unfortunate that there is no way to do 
                # this *after* the user's .bash_profile runs (without putting 
                # it in the user's dot-files), but it shouldn't make any 
                # difference.
                . /etc/bash/bashrc
        else
                PS1='\u@\h \w \$ '
        fi
else
        # Setup a bland default prompt.  Since this prompt should be useable
        # on color and non-color terminals, as well as shells that don't
        # understand sequences such as \h, don't put anything special in it.
        PS1="${USER:-$(whoami 2>/dev/null)}@$(uname -n 2>/dev/null) \$ "
fi

добавил строку

#Custom PS1
export PS1='\e[0;35m'["\$(date +%T)] $PS1"
Теперь если залогиниться в консоль - перед стандартным приглашением выводится дата. А в yakuake и konsole не выводится, пока не сделаешь source /etc/profile. Почему, и как поправить?

 , , , ,

kir64 ()

Нубовопрос: как добавить пару ключ:значение в определенное место json'a на python

Форум — Development

Привет, ЛОР!

Возник нубовопрос.

Есть json примерно вот такой структуры:

{
	"main": [
		{
			"name": "CATEGORY0",
			"img": "img0.png",
			"subpages": [
				{
					"name": "name01",
					"img": "img01.png",
					"id": "27"
				},
				{
					"name": "name02",
					"img": "img02.png",
					"id": "35"
				}
				
			]
		},
		{
			"name": "CATEGORY1",
			"img": "img1.png",
			"subpages": [
				{
					"name": "name11",
					"img": "img11.png",
					"id": "850"
				}
			]
		},
		{
			"name": "CATEGORY2",
			"img": "img2.png",
			"subpages": [
				{
					"name": "Victim name",
					"img": "img21.png",
					"id": "843"
				},
				{
					"name": "name22",
					"img": "img22.png",
					"id": "999"
				},
				{
					"name": "name23",
					"img": "img23.png",
					"id": "997"
				}
			]
		},
		{
			"name": "CATEGORY3",
			"img": "img3.png",
			"subpages": [
				{
					"name": "name31",
					"img": "img31.png",
					"id": "979"
				}
			]
		}
	]
}

Задача: если в json'е присутсвует пара «name: Victim name», то добавить после этой секции еще одну.

Т.е.

#!/usr/bin/env python
# -*-coding: utf-8 -*-
import os
import json
json_data=open('categories.json')

data=json.load(json_data)
_str=json.dumps(data, indent=2, separators=(',',':'), ensure_ascii=False)
if 'Victim name' in _str:
  print('Найдено в categories.json')
  #здесь код по добавлению секции
else:
  print('Victim name не найден.')
  os.system('exit')

json_data.close()

Казалось бы, делай себе data['main']['category2'].append('some':stuff), но: проблема в том, что вложенность может быть различной, и я не могу предугадать количество индексов. ЛОР, как поступить? Метод перебора в цикле мне тоже кажется очень уж громоздским, ведь не известно, на каком уровне попадется «Victim name».

Еще в идеале хотелось бы вставлять нужную секцию сразу после секции с victim name. Такое вообще возможно?

 , ,

kir64 ()

Не сохраняются файлы в /root/ при использовании ubuntu customization kit

Форум — Desktop

Привет, ЛОР!

Допиливаю под свои нужны ubuntu-mini-remix с помощью uck. В момент работы uck директория ~/tmp выглядит так:

developer@developer-VirtualBox:~$ ls tmp/
build.log              remaster-apt-cache  remaster-root
customization-scripts  remaster-iso        remaster-root-home
developer@developer-VirtualBox:~$ ls tmp/remaster-root
bin   dev  home        lib    mnt  proc  run   srv  tmp  var
boot  etc  initrd.img  media  opt  root  sbin  sys  usr  vmlinuz

У меня есть директория с поправленными конфигами и дополненными файлами:

developer@developer-VirtualBox:~$ ls live_usb_files/
etc  home  root  setup.sh

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

developer@developer-VirtualBox:~$ cp -r live_usb_files/* tmp/remaster-root/
Дальше даю команду продолжать сборку. После установки iso на флэшку и загрузки с него наблюдается такая картина: изменения в /etc/ сохранились, изменения в /home/ сохранились, файл setup.sh присутствует в корневом каталоге, а вот /root/ девственно чист. Пробовал копировать содержимое моего root/ в директорию ~/tmp/remaster-root-home/, но это не дало ожидаемого эффекта.

ЛОР, как быть?

 , , , ,

kir64 ()

Как лучше реализовать ведение лога стабильности работы прокси?

Форум — Talks

Привет, ЛОР!

Встала передо мной такая задача: есть у нас прокси-сервер на, прости г-споди, UserGate, который то и дело падает. Выражается это в том, что внезапно рвутся коннекты ssh, skype, kopete. Если открыть в браузере любую страничку в этот момент - вылезет его стандартное уведомление о том, что сеть временно не функционирует. Через примерно 15-20 секунд он оживает и все снова начинает летать.

Задача, которую надо решить: каждый раз, как падает прокси ожидать ~1 минуту и запускать bash-скрипт. Есть вариант прицепить его запуск на системное уведомление о разрыве связи, которое генерирует kopete, но хотелось бы более изящного решения: узнавать о падении каким-то иным способом и записывать в журнальный файл время падения, чтобы собирать статистику.

Дело в том, что чисто теоретически icq может упасть сама по себе, и чисто практически Kopete по какой-то причине не всегда переподключается после падения.

ЛОР, подскажи, что можно придумать?

UPD: реализовать лучше на баше, но другие варианты тоже рассмотрю.

 , ,

kir64 ()

Глупый вопрос по настройке DNS для поддомена

Форум — Admin

Привет, ЛОР! Что-то я не могу понять, где проблема. Есть у меня домен, делегирован на яндекс, там для него создана А-запись, ведущая на хостинг. В панели хостинга я создал поддомен dev.my.domain, указал для него в качестве днса dns1.yandex.net и dns2.yandex.net. Не резолвится. Чую, что где-то я напутал, а где - не могу понять. Как тут правильно сделать?

 , , ,

kir64 ()

Проблема со str.split(/regex/) в javascript

Форум — Development

Hello, LORld!

Граждане джедаи javascript и регулярных выражений, надоумьте, пожалуйста, почему сплит так себя ведет?

var serviceString='33. Бактериологическое исследование отделяемого из носа, зева, пазухи на микрофлору, чувствительность к антибиотикам и антимикотическим препаратам: 1697.00 руб.';
var splittedString=serviceString.split(/((.){43})/);

И вот этот самый массив splittedString будет выглядеть вот таким образом:

,33. Бактериологическое исследование отделяе,е,,мого из носа, зева, пазухи на микрофлору, ч,ч,,увствительность к антибиотикам и антимикоти,и,ческим препаратам: 1697.00 руб.

Особое внимание прошу обратить на запятую в самом начале. А ведь я-то наивно полагал, что split() почикает мне строку кусками по 43 символа, а оставшееся засунет в последний элемент массива. Где просчитался?

 , ,

kir64 ()

Как будто бы залипание скролла мышки в KDE

Форум — Desktop

Привет, ЛОР!

Поставил на работе gentoo x86 с KDE. Обнаружилась странная вещь - при наведении курсора на индикатор раскладки он начинает меняться с дикой скоростью. Наведешь курсор в панель задач - начинают скроллиться окна. Нажмешь ctrl в браузере - начинает увеличивать масштаб в большую сторону. Т.е. налицо имеем имитацию кручения скролла вперед. При этом просто страница не скроллится, в yakuake консоль тоже не прокручивается.

ЛОР, что это и как лечить? Ядро 3.10.25-gentoo, профиль default/linux/x86/13.0/desktop/kde, make.conf:

USE="hal kdeenablefinal -bluetooth -handbook -gtk -gnome"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"

MAKEOPTS="-j3"

GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/"

SYNC="rsync://rsync.ru.gentoo.org/gentoo-portage"

VIDEO_CARDS="radeon"
LINGUAS="ru en"
FEATURES="parallel-fetch metadata-transfer"
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_ELOG_CLASSES="warn error info log qa"
FEATURES="${FEATURES} preserve-libs"
EMERGE_DEFAULT_OPTS="--ask --verbose --quiet-build"

Какие еще данные мне предоставить для диагностики проблемы?

 , ,

kir64 ()

Теги в уведомлениях

Форум — Linux-org-ru

Добрый день! Учитывая, что названия тем не всегда несут в себе 100% смысла топика, как вам идея добавить в уведомления, помимо самого названия темы, также и теги?

Пример из моей практики: у меня в избранных тегах значатся как gentoo, так и kde. В уведомлениях оказывается некая тема с заголовком «При kdm логине появляется окно с Warning, но после Ok логин продолжается». Ну появляется и появляется, казалось бы, мало ли кто где кеды использует. Однако, теги у этой темы: «consolekit, gentoo, не было печали», что напрямую говорит о том, что тема затрагивает многих пользователей gentoo и kde, и ведет к неким проблемам. В последнем комментарии темы дается совет как избежать данных проблем. К сожалению, сбросил аптайм я уже после того, как прочитал эту тему и это сообщение (т.е. поймал проблему, решение которой уже описано).

Собственно, downgrade пакетов уже проведен, но хочется в будущем помочь себе и сообществу поменьше наступать на грабли, поэтому и предлагаю обсудить идею добавления вывода тегов в уведомления. Предупрежден - значит вооружен.

 ,

kir64 ()

Проблема с urlrewrite после обновления nginx

Форум — Admin

Привет, ЛОР!

Смотри, какая штука: есть сервер с работающим на нем веб-проектиком на bitrix (гусары, молчать!). И, как в лучших домах Лондона, на нем помимо блэкджека есть urlrewrite. Конфигурация сервера - apache бэкэндом, nginx фронтэндом. Сейчас стоит

nginx version: nginx/1.0.15
и урлы рерайтятся как надо. Правила рерайта хранятся в файлике, на который я заруливаю запросы вот таким образом:
.htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteCond %{REQUEST_URI} !/nagios$
  RewriteCond %{REQUEST_URI} !/munin$
  RewriteCond %{REQUEST_URI} !/server-status$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
Однако ж выяснилась забавнейшая вещь. Стоит мне сделать yum update и обновить nginx до версии
1.2.4-1.el6.ngx
И все перестает работать. В частности, в логи сыплются такого рода записи:
access.log:

[15/Jul/2013:21:58:07 +0400] "GET /profile/627/ HTTP/1.1" 404 16345 "http://189.202.23.90/users/" "Mozilla/5.0 (X11; Linux i686; rv:22.0) Gecko/20100101 Firefox/22.0" 1373911087.310

error.log:

[notice] 18682#0: *11 rewritten data: "/bitrix/urlrewrite.php", args: "", client: 95.79.235.116, server: bx, request: "GET /upload/iblock/2db/%D0%BC%D0%B0%D0%BD%D0%B6%D0%B5%D1%82%D0%B0.jpg HTTP/1.1", host: "189.202.23.90", referrer: "http://189.202.23.90/profile/627/"
Т.е., судя по всему, тут имеет место подмена request_uri, а вот почему так получается (напомню, до апдейта все работает, конфиги оставляю старые рабочие) - не пойму. Из-за этого падает один из пхпшных скриптов вот на этом месте:
if (!CHTTP::isPathTraversalUri($_SERVER["REQUEST_URI"]))
{

        foreach($arUrlRewrite as $val)
        {
                if(preg_match($val["CONDITION"], $requestUri))
                {
Поскольку $requestUri не содержит параметров, а только строчку «/bitrix/urlrewrite.php».

Напоследок примеры правил рерайта:

<?
$arUrlRewrite = array(
        array(
                "CONDITION"     =>      "#^/profile/([0-9]*)/{0,1}portfolio/edit/([0-9]+|NEW)\\?{0,1}#",
                "RULE"  =>      "user_id=$1&ID=$2&",
                "ID"    =>      "",
                "PATH"  =>      "/profile/portfolio/edit.php",
        ),
        array(
                "CONDITION"     =>      "#^/profile/([0-9]*)/{0,1}battle/call/([0-9]+)/{0,1}\\?{0,1}#",
                "RULE"  =>      "user_id=$1&BATTLE_ID=$2&$3",
                "ID"    =>      "",
                "PATH"  =>      "/profile/battle/battle.call.php",
        ))
?>

ЛОР, в какую сторону рыть, чтобы решить проблему?

 , , , ,

kir64 ()

nagios критическая ошибка после авторизации

Форум — Admin

Привет, ЛОР!

Решил воспользоваться nagios'ом, но после ввода логина и пароля получаю ошибку 500. Вот что падает в логи:

configuration error:  couldn't check user.  No user file?: /nagios
Нагуглил, что ему нехватает модулей
mod_authz_user is required for Require valid-user.
mod_authz_default would have given you a slightly better error message.
Раскомментировал их в httpd.conf, но после перезапуска получил ту же ошибку.

Кто сталкивался, как лечить?

 , ,

kir64 ()

Непонятки с php после обновления CentOS

Форум — Admin

Привет, майский ЛОР!

Обновил я тут CentOS с 6.2 до 6.4, и случилась бяка - сайтец, который крутится на сервере, перестал работать. При обращении по http показывает просто пустую страницу.

Полез проверять:

$ php index.php
PHP Warning:  Module 'geoip' already loaded in Unknown on line 0
PHP Fatal error:  require(): Failed opening required '/bitrix/header.php' (include_path='.:/usr/share/pear:/php/includes') in /home/bitrix/www/index.php on line 3

Fatal error: require(): Failed opening required '/bitrix/header.php' (include_path='.:/usr/share/pear:/php/includes') in /home/bitrix/www/index.php on line 3

Шайтанама! Дай-ка, думаю, проверю, а верно ли у меня инклюдится. Добавил вот такую строчку в файл:

<?
echo $_SERVER["DOCUMENT_ROOT"];
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Однако, в консоли результата не оказалось. Проверил еще раз в настройках nginx - да, сервер рут выставлен корректно. Проверил в phpinfo() - да, обе переменные есть. Обратился обратно к сайту по http - о-па! Теперь вместо пустой странички гордо красутеся

/home/bitrix/www
При этом в логи httpd и nginx никаких критичных ошибок не валится, т.е. как будто бы все отрабатывает нормально.

Никак не пойму в чем дело. ЛОР, подскажи, куда рыть? Если надо что-то дополнительно показать - спрашивай.

 , , , ,

kir64 ()

два значка wicd на панели kde

Форум — Desktop

Сабж. Мне бы хватило только того, что в самом конце. А как убрать первый? При ПКМ на него вылезает меню подключения, в настройках панели он тоже не отображается.

 , ,

kir64 ()

RSS подписка на новые темы