• Как сгруппировать строки c картинками в excel средствами PHP?

    @xbox
    Спасибо, друг!!!
    Этот совет помог.
    Больше трех лет назад тема поднималась, а вот сейчас у меня тот же вопрос возник.
    Использовал PHPExcel 1.8.1, -предпоследнюю версию проекта PHPExcel , который уже несколько лет назад закрыт.
    Изменил те несколько строк, которые ты указал, и все получилось!
  • Как эффективнее установить Windows 10 на много (10-20шт) одинаковых компьютеров?

    @xbox Автор вопроса
    Спасибо, что навели на эту программу.
    Раньше я про нее не слышал. Изначально думал, что придется Акронис'ом пользоваться.
    Некоторое время ушло на то, чтобы разобраться с Clonezilla, но после того, как разберешься, поставленную задачу решает отлично.
    В результате я ей воспользовался и сэкономил кучу времени и сил.
    И что радует программа фриварная. Не нужно на торрентах искать нормально работающий акронис.

    Всем остальным, кто предложил альтернативные варианты, тоже большое спасибо. Большая часть из них тоже может быть решением, но для поставленной задачи Клонзила в моем рейтинге минимальных затрат времени на изучение и работу победила.
  • Nginx редирект с любого набора сайта на https://www.site.ru с кодами 200, 301?

    @xbox
    Я не понимаю, зачем Вам 307 редирект. И тем более не понимаю, зачем делать двойной редирект 307=>301=> итп. В этом нет никакого смысла, в том числе SEO.

    Подробнее дописал в первом ответе.
  • Как поймать фокус родительского по отношению к input элемента c помощью CSS или скриптов?

    @xbox Автор вопроса
    Спасибо за комментарий.
    Код переписать возможности нет.
    Для того, чтобы все выглядело, как нужно, пришлось из оригинального CSS файла с 8000 строками, отобрать сотню-другую, которые относятся к нужным мне элементам. Каждому элементу (span, input) может быть назначено по ~пять классов. Кроме поля input есть и другие элементы. Есть встроенные в поля картинки, крестики итп. Все эти каскады в html на самом деле используется для различных выравниваний. Все заново переписать, наверное, и можно. Но на это уйдет день работы. А если уже все работает, кроме подсветки активного поля, то думаю, легче скрипт написать, которой класс подставит, куда нужно.
  • Как проверить мощность/скорость/канал сервера?

    @xbox
    Спасибо за комментарий. Интересная утилита. Буду изучать.
  • Как настроить приоритезацию VoIP интренет-трафика при использовани роутера Cisco 871 и IP-АТС Grandstream UCM6104?

    @xbox Автор вопроса
    Viktor: Спасибо за комментарий. Торренты в офисе никто не качает. Чтобы не было соблазна, торренты запрещены на роутере, так же запрещены все нестандартные порты на вход и выход. Какие-то специальные сильно загружающие канал программы не используются. Но никто не может гарантировать, что несколько пользователей, например, одновременно не захотят посмотреть ютуб в HD качестве итп. Ставить в этой ситуации микротик считаю не целесообразно. Пока рассматриваю вариант с отдельным каналом от провайдера, если провайдер согласится.
  • Как настроить приоритезацию VoIP интренет-трафика при использовани роутера Cisco 871 и IP-АТС Grandstream UCM6104?

    @xbox Автор вопроса
    Спасибо за развернутый ответ. Буду разбираться и в зависимости от возможностей провайдера настраивать.
  • Как настроить приоритезацию VoIP интренет-трафика при использовани роутера Cisco 871 и IP-АТС Grandstream UCM6104?

    @xbox Автор вопроса
    Спасибо за совет.
    Подскажите, как реализуется подключение нового канала тегом по существующему кабелю? Поисковики выдают на этот вопрос только один мусор. Вероятно, провайдер, должен выделить два IP адреса. Как в случае такого подключения нужно будет настроить циску? Простой NAT (один IP адрес провайдера, одна внутренняя сеть) на циске я настраивал. Но здесь, видимо, настройка будет посложнее.
  • Как правильно настроить Firewall и NAT, чтобы IP-АТС Grandsteram UCM6104 могла работать с внешними SIP транками?

    @xbox Автор вопроса
    Спасибо за ответ.
    Точно не понял, для какого устройства Вы привели команду, но я сделал похожее через веб интерфейс роутера.

    Для тех кто будет искать решение в подобной ситуации.
    Пробрасывать в NAT нужно только один порт UPD 5060.
    В некоторых случаях провайдеры как альтернативу используют TCP 5065.
    Остальные порты (10000-20000) пробрасывать не нужно. Достаточно их открыть в фаерволе на вход и на выход.

    А у меня проблема была в банальной опечатке в IP адресе в одном из правил в настройках фаервола.
  • Как полностью скопировать сайт, если его исходный код замусорен и создан в онлайн-конструкторе?

    @xbox Автор вопроса
    Мне нужно получить такой же сайт, но чтобы контент в него вставлял мой программный движок. Потом все это нужно будет выгрузить на свой хостинг и при необходимости тюнинговать и дорабатывать.
    Онлайн конструктор - платный, хостинг заграничный (медленный), доработать толком нельзя, если в конструкторе не предусмотрено итп.
  • Как полностью скопировать сайт, если его исходный код замусорен и создан в онлайн-конструкторе?

    @xbox Автор вопроса
    Спасибо за совет.
    Для причесывания кода я использовал phpstorm. Он также как sublime может причесывать любые коды. Но в данном случае это помогает мало.
    То, что верстать сайт в онлайн-конструкторах ересь, - согласен. Но это делал кто-то, вероятно незнакомый с программированием/версткой, в иностранной компании. У автора не стола задача сделать крутой, масштабируемый сайт с читаемым кодом, да еще который легко скопировать. Скорее всего задача была сделать какой-то сайт минимальными усилиями, потому что совсем без сайта сейчас нельзя.

    В общем пока получается, что остается только хардкор вариант с разборкой замусоренного кода. Либо вариант, когда все тоже самое делаешь с нуля. Т.е. задача усложняется. Вместо задачи, когда есть готовый дизайн и готовая верстка, получается задача, когда есть готовый дизайн, но верстку нужно делать самому.
  • Отваливается php-fpm с сегфолтом libresolv-2.19.so, как поправить?

    @xbox
    Можно по разному. Со ссылками без ссылок.
    В оригинале libnss_dns.so.2 - это ссылка на libnss_dns-2.19.so
    При обновлении пакета ссылка автоматически меняется и указывает на новый файл.
    В случае с chroot окружением сделать ссылку на папку, находящуюся за пределами окружения, не получится. Файл все равно приходится копировать. Если у файла новое имя, то и ссылку нужно менять.

    Мне было легче в chroot окружении вместо ссылки, сразу положить файл с тем же именем. И потом при изменении файла, накатывать новую версию, как бы она не называлась, поверх libnss_dns.so.2.
    Поскольку я делаю это через файловый менеджер, процедура эта простая.
  • Отваливается php-fpm с сегфолтом libresolv-2.19.so, как поправить?

    @xbox
    Спасибо!
    Помогло. Я полдня потратил на всякие откаты пакетов и тп. А проблема решалась легко.

    Нужно было всего лишь заменить файл в chroot окружении на обновленный файл из корня системы.
    В моем случае на Debian нужно было заменить старый файл:
    ~~~php_chroot_path/etc/x86_64-linux-gnu/libnss_dns.so.2
    на файл, который обновился вместе с обновлением пакетов.
    /etc/x86_64-linux-gnu/libnss_dns.so.2
  • Отваливается php-fpm с сегфолтом libresolv-2.19.so, как поправить?

    @xbox
    Посмотрите в логе /var/log/apt/history.log, какие у Вас пакеты обновлялись в тот день. Я в своем посмотрел. У меня 06/04/2016 обновилось несколько десятков пакетов. Какой из них приводит к ошибке, непонятно.
    Возможно, у Вас в примерно в то же время было меньше обновлений и будет легче понять. Есть подозрение, что это может быть пакет из серии libc6. А эти пакеты пачками обновляются и имеют зависимости, поэтому, чтобы откатиться на старую версию, нужно в этом хорошо разбираться.
  • Отваливается php-fpm с сегфолтом libresolv-2.19.so, как поправить?

    @xbox
    Запустил трассировщик
    [code] strace -p 16905 -f 2>strace.log [/code]
    (16905 здесь номер процесса php5-fpm)
    Специально для этого создал php пул, с одним процессом, которым никто не пользуется. Повторяю на сайте открытие страницы, которая приводит к ошибке. Страница пытается определить размер картинки на фото хостинге radikal. Вероятно, запускается ресолвинг и в какой-то момент процесс падает с SIGSEGV.

    Каких-то явных причин я не вижу. Для расшифровки последних строк лога у меня не хватает знаний. Понятно только, что все поломалось, но не понятно из-за чего.
    Из-того, что в логе было найдено.
    Процесс не мог получить доступ к файлам
    /etc/ld.so.cache - этот файл в чрут окружение положил, не помогло.
    /etc/ld.so.preload - этого файла нигде не было. на всякий случай создал пустой.
    /etc/ld.so.nohwcap - этого файла не было. Пробовал его создавать, - не помогло. На самом деле потом нашел, что этого файла и не должно быть. Когда этот файл есть, то загружается не оптимизированная версия библиотеки, когда файла нет, то загружается оптимизированная версия библиотеки.

    Вот заключительная часть лога strace.
    [code]
    .....
    open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 8
    fstat(8, {st_mode=S_IFREG|0644, st_size=9, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9f93551000
    read(8, "multi on\n", 4096) = 9
    read(8, "", 4096) = 0
    close(8) = 0
    munmap(0x7f9f93551000, 4096) = 0
    futex(0x7f9f8fd50bc4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
    open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 8
    fstat(8, {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9f93551000
    read(8, "domain ihc.ru\nsearch ihc.ru\nname"..., 4096) = 47
    read(8, "", 4096) = 0
    close(8) = 0
    munmap(0x7f9f93551000, 4096) = 0
    open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 8
    fstat(8, {st_mode=S_IFREG|0644, st_size=194, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9f93551000
    read(8, "127.0.0.1 localhost localhost."..., 4096) = 194
    read(8, "", 4096) = 0
    read(8, "", 4096) = 0
    close(8) = 0
    munmap(0x7f9f93551000, 4096) = 0
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 8
    fstat(8, {st_mode=S_IFREG|0644, st_size=31167, ...}) = 0
    mmap(NULL, 31167, PROT_READ, MAP_PRIVATE, 8, 0) = 0x7f9f933a9000
    close(8) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = 8
    read(8, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\20\0\0\0\0\0\0"..., 832) = 832
    fstat(8, {st_mode=S_IFREG|0755, st_size=22928, ...}) = 0
    mmap(NULL, 2117888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 8, 0) = 0x7f9f84a97000
    mprotect(0x7f9f84a9c000, 2093056, PROT_NONE) = 0
    mmap(0x7f9f84c9b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 8, 0x4000) = 0x7f9f84c9b000
    close(8) = 0
    mprotect(0x7f9f84c9b000, 4096, PROT_READ) = 0
    munmap(0x7f9f933a9000, 31167) = 0
    stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
    open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 8
    fstat(8, {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9f93551000
    read(8, "domain ihc.ru\nsearch ihc.ru\nname"..., 4096) = 47
    read(8, "", 4096) = 0
    close(8) = 0
    munmap(0x7f9f93551000, 4096) = 0
    socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 8
    connect(8, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.8.8")}, 16) = 0
    poll([{fd=8, events=POLLOUT}], 1, 0) = 1 ([{fd=8, revents=POLLOUT}])
    sendmmsg(8, {{{msg_name(0)=NULL, msg_iov(1)=[{"W\276\1\0\0\1\0\0\0\0\0\0\4s017\7radikal\2ru\0\0\1\0"..., 33}], msg_controllen=0, msg_flags=0}, 33}, {{msg_name(0)=NULL, msg_iov(1)=[{"*\224\1\0\0\1\0\0\0\0\0\0\4s017\7radikal\2ru\0\0\34\0"..., 33}], msg_controllen=0, msg_flags=MSG_OOB|MSG_TRUNC|MSG_SYN|MSG_RST|MSG_ERRQUEUE|MSG_FASTOPEN|0x18360010}, 33}}, 2, MSG_NOSIGNAL) = 2
    poll([{fd=8, events=POLLIN}], 1, 5000) = 1 ([{fd=8, revents=POLLIN}])
    ioctl(8, FIONREAD, [49]) = 0
    recvfrom(8, "W\276\201\200\0\1\0\1\0\0\0\0\4s017\7radikal\2ru\0\0\1\0"..., 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.8.8")}, [16]) = 49
    poll([{fd=8, events=POLLIN}], 1, 4997) = 1 ([{fd=8, revents=POLLIN}])
    ioctl(8, FIONREAD, [85]) = 0
    --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7f9f00000000} ---
    +++ killed by SIGSEGV +++[/code]
  • Как в windows7 настроить возможность подключения к нескольким WiFi сетям, при условии, что сети не раздают настройки по DHCP?

    @xbox Автор вопроса
    Спасибо за совет. Возьму на вооружение.
    Беда в том, что ноутбук не мой, а чужому человеку на ноутбук не хотелось бы ставить разные скрипты и утилиты, которые нужно запускать вручную.
    Не ожидал, что в Windows7 не предусмотрена такая простая возможность настройки, которая есть почти в каждом телефоне.