Posts Tagged ‘ Web

Word Press на нестандартном порту

Вроде бы простая задача, перенести WordPress и «повесить» его на нестандартный порт, к примеру, 8080. Но не тут то было! Оказывается нужно спереди погладить и сзади полизать чтобы это сделать! Вот уж не ожидал такого подвоха, но всеже …. shit happens 🙂 Вот так нужно обновить настройки WP в базе данных чтобы заставить его работать на нестандартном порту:

mysql> SELECT * FROM `myblog_wp`.`wp_options` WHERE `wp_options`.`option_name` = 'siteurl';
+-----------+-------------+-----------------------------+----------+
| option_id | option_name | option_value                | autoload |
+-----------+-------------+-----------------------------+----------+
|         1 | siteurl     | http://myblog.megapeace.ua  | yes      |
+-----------+-------------+-----------------------------+----------+
1 ROW IN SET (0.00 sec)

mysql> UPDATE `myblog_wp`.`wp_options` SET `option_value` = 'http://myblog.megapeace.ua:8080/' WHERE `wp_options`.`option_name` = 'siteurl';
Query OK, 1 ROW affected (0.12 sec)
ROWS matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM `myblog_wp`.`wp_options` WHERE `wp_options`.`option_name` = 'siteurl';
+-----------+-------------+----------------------------------+----------+
| option_id | option_name | option_value                     | autoload |
+-----------+-------------+----------------------------------+----------+
|         1 | siteurl     | http://myblog.megapeace.ua:8080/ | yes      |
+-----------+-------------+----------------------------------+----------+
1 ROW IN SET (0.00 sec)

mysql> UPDATE `myblog_wp`.`wp_options` SET `option_value` = 'http://myblog.megapeace.ua:8080/' WHERE `wp_options`.`option_name` = 'home';
Query OK, 1 ROW affected (0.13 sec)
ROWS matched: 1  Changed: 1  Warnings: 0

mysql>

Читать полностью

Уязвимость в Word Press позволяющая скачать admin-ajax.php

Итак, поглядел слегка в логи своего блога и обнаружил интересные строчки:

178.73.212.6 - /wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php
178.73.212.6 - /wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

Попробовал зайти туда сам с браузера, выдали белую страничку с одним единственным символом «0», но каково же было мое удивление когда часть произвольно найденных на просторах инета блогов на WP на запрос в духе:

http://wpblog.com/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

выдает для скачивания файлик admin-ajax.php в plaintext!!! Напомню что там кроме всякой фигни содержатся и данные по подключению к базе MySQL, как то название базы, логин, пароль! Я просто офигел! Проверьте свои блоги! Я проверил блоги моих друзей-знакомых — уязвимость не нашел. Гдето выдает «0», гдето видел «-1». Вобщем АХТУНГ!!!

P.S. Некоторое инфо нашел тут, также тут узнал что уязвимы все блоги независимо от версии WP в которых активирован плагин «Revolution Slider»!

Ubuntu 14.04 — Установка Apache-ITK и «dependency problems — leaving unconfigured»

Ностальгия по бубунте …. Начинал я свою Open Source жизнь именно из Ubuntu. Помню очень хорошо что товарищ поделился оригинальным установочным диском (когдато их бесплатно рассылали почтой) Ubuntu 6.06 Dapper Drake. Учитывая что Linux я видел на тот момент только изредка на работе изза спины нашего админа, я неслабо загордился тем фактом что установить убунту смог самостоятельно … хоть и со второго раза 🙂 Мой выбор первого дистрибутива был весьма обдуманный и сознательный. Позитива прибавляло то что бубунту юзали админы на работе — могли чтото подсказать и подсказывали 🙂 Иногда даже по ssh подрубались на мой домашний комп чтобы помочь поставить Video Drivers — ох уж этот Radeon! Так вот я начал с 6.06, а дальше пошло-поехало …. Весь путь по OpenSource можно показать более визуально:

Ubuntu 6.06 -> Ubuntu 6.10 -> Debian 5 -> Gentoo -> Alt Linux -> Debian 6 -> Debian 7

Параллельно Debian 6 был еще OpenBSD, а последний год много работал и работаю с FreeBSD. И вот как получилось — жизнь сделала виток и заставила вернуться к истокам! Подсунули мне тут на работе виртуалку с Ubuntu 14.04 и просьбой поднять там сайтец.
И практически сходу наткнулся на проблемку — не ставится мой любимый apache2-mpm-itk. Обшибочка выглядит вот таким образом:

root@Ubuntu:~# apt-get install apache2-mpm-itk
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-cloud-tools-3.13.0-29 linux-cloud-tools-3.13.0-29-generic linux-image-extra-virtual linux-image-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libapache2-mpm-itk
The following NEW packages will be installed:
  apache2-mpm-itk libapache2-mpm-itk
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/11.2 kB of archives.
After this operation, 94.2 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Selecting previously unselected package libapache2-mpm-itk.
(Reading database ... 86650 files and directories currently installed.)
Preparing to unpack .../libapache2-mpm-itk_2.4.6-01-1_amd64.deb ...
Unpacking libapache2-mpm-itk (2.4.6-01-1) ...
Selecting previously unselected package apache2-mpm-itk.
Preparing to unpack .../apache2-mpm-itk_2.4.7-1ubuntu4_amd64.deb ...
Unpacking apache2-mpm-itk (2.4.7-1ubuntu4) ...
Setting up libapache2-mpm-itk (2.4.6-01-1) ...
dpkg: error processing package libapache2-mpm-itk (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of apache2-mpm-itk:
 apache2-mpm-itk depends on libapache2-mpm-itk; however:
  Package libapache2-mpm-itk is not configured yet.

dpkg: error processing package apache2-mpm-itk (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
 libapache2-mpm-itk
 apache2-mpm-itk
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@Ubuntu:~#

И вот те раз, с ходу-параходу пришлось гуглить решение. Которое оказалось довольно нетривиальным 🙂 Нужно просто отключить модуль mpm_event встроенный в стандартную поставку apache2 в бубунте.

root@Ubuntu:~# a2dismod mpm_event
Module mpm_event disabled.
To activate the new configuration, you need to run:
  service apache2 restart
root@Ubuntu:~#

Модуль отключили, рекомендуют перегрузить сервис apache2, выполняем:

root@Ubuntu:~# service apache2 restart
 * Restarting web server apache2                 [fail]
 * The apache2 configtest failed.
Output of config test was:
AH00534: apache2: Configuration error: No MPM loaded.
Action 'configtest' failed.
The Apache error log may have more information.
root@Ubuntu:~#

Во как, перегружаться не желает, матерится на отсутствие поддержки MPM.
Зато установка apache2-mpm-itk теперь идет нормально!

root@Ubuntu:~# apt-get install apache2-mpm-itk
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-cloud-tools-3.13.0-29 linux-cloud-tools-3.13.0-29-generic linux-image-extra-virtual linux-image-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libapache2-mpm-itk
The following NEW packages will be installed:
  apache2-mpm-itk libapache2-mpm-itk
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/11.2 kB of archives.
After this operation, 94.2 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Selecting previously unselected package libapache2-mpm-itk.
(Reading database ... 86650 files and directories currently installed.)
Preparing to unpack .../libapache2-mpm-itk_2.4.6-01-1_amd64.deb ...
Unpacking libapache2-mpm-itk (2.4.6-01-1) ...
Selecting previously unselected package apache2-mpm-itk.
Preparing to unpack .../apache2-mpm-itk_2.4.7-1ubuntu4_amd64.deb ...
Unpacking apache2-mpm-itk (2.4.7-1ubuntu4) ...
Setting up libapache2-mpm-itk (2.4.6-01-1) ...
apache2_invoke: Enable module mpm_itk
 * Restarting web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 100.100.200.87. Set the 'ServerName' directive globally to suppress this message   [ OK ]
Setting up apache2-mpm-itk (2.4.7-1ubuntu4) ...
root@Ubuntu:~#

Проблема решается, ну и как видно из решения, не так уж сложно. Но осадок то остался.

От такие пироги. Так о чем это я? Да о том что дьявол кроется в мелочах, а от убунты я ушел в Debian еще в 2007-м году именно потому что в мелочах было очень много недоделок, хотя в целом впечатление о системе было хорошее. Прошло долгих 7 лет, Ubuntu в разы увеличила свое комьюнити, значительно расширила свою долю присутствия на серверах и десктопных компах, а ситуация с «досадными мелкими недоделками» не изменилась 🙂 Ведь если проанализировать эту проблему — то это и не проблема вовсе, а так — пустяк. Всегото надо было майнтейнерам чуток облагородить ошибку dpkg при установке, чтобы он не тупо ругался «dependency problems — leaving unconfigured», а чтото типа «dependency problems — MPM module not compatibility with MPM-ITK! Try to disable your Apache2 MPM module and install $pkg_name one more time!» Так нет же … заставляют админа материться и гуглить 🙂 Нехорошо …. ой как нехорошо …

Хай щастить!

Ubuntu 14.04 — Downgrade PHP to 5.2 version

Столкнулся на работе с переносом древнего проекта написанного на PHP 5.2 Пробовал запустить его на свежем пыхе — не получилось. Пообщавшись с разработчиком выяснил что взлетит только на PHP 5.2 Особо вникать не стал … надо так надо! Хостер предоставил чистенькую виртуалочку с Ubuntu 14.04 Вот так пришлось извернуться чтобы на свеженькую убунту поставить пых закостенелой версии. Читать полностью

Настройка nginx + GeoIP на FreeBSD

Зачем это надо? Да много чего можно наворотить! Например разным странам выдавать разный контент, проксировать трафик на разные сервера и тд. Мне, например, для ограничения нежелательного трафика на некий тестовый web-сервер. Хочу дать туда доступ только из Украины, остальных — в баню!
У меня уже был установлен и настроен nginx, поэтому тут упомяну только о включении в его сборку необходимого модуля.
Для начала я установил GeoIP из портов:

root@gw:~# cd /usr/ports/net/GeoIP
root@gw:/usr/ports/net/GeoIP# make install clean

После этого проверил стоит ли в собранном ранее nginx необходимый флаг HTTP_GEOIP:

root@gw:/usr/ports/net/GeoIP# cd /usr/ports/www/nginx
root@gw:/usr/ports/www/nginx# make config

Читать полностью

Сайт espreso.tv «Hacked By smartBHT»

На выходных зашел на сайтец новостей espreso.tv и увидел вот такую занимательную картинку 🙂

espresso.tv "Hacked By smartBHT"

Через пару минут сайт уже выдавал стандартную ошибку nginx «403 — Forbidden» и еще через несколько минут сайт заработал в нормальном режиме 🙂
Интересненько, среди ручных крыс путлера нашлись и «колорадские хакеры», или какеры — не знаю как лучше назвать.
В одном я уверен: «То, что нас не убивает — делает нас сильнее» (Ф. Ницше). Так что желаю удачи в работе ресурсу espreso.tv и справедливого наказания для smartBHT.

Хай щастить! Читать полностью

apache-itk-mpm и виртуальный хостинг

Итак, рано или поздно возникает задача в духе: «А как бы нам организовать хостинг нескольких клиентов с их сайтами так чтобы они не имели друг к другу доступа и не было проблем с доступом к файлам через web/ftp/ssh?». Тут уже обычный стандартный apache не справляется и нужно городить некую более сложную конфигурацию. К счастью, задача эта не уникальна и поэтому давным давно есть готовые решения. Одним из них есть модификация apache2 под названием apache-itk-mpm. Он позволяет запускать от имени определенного в конфигах системного пользователя некий виртуалхост апача. Тоесть получаем чтото в духе некоего изолированного контейнера для нужного пользователя или ряда оных. Туманно объяснил, но по конфигам это более понятно. Итак, поехали! Читать полностью

FreeBSD — memcached + php5

Захотелось мне улучшить производительность связки PHP5 + MySQL + Apache22 на сервере с FreeBSD. Решил добавить в эту связку еще и memcached для улучшения отдачи сгенеренного php-шкой кода.
Делается крайне просто, все что нужно — уже есть в портах. Сначала ставим сам memcached:

root@black:~# cd /usr/ports/databases/memcached

И установим такой командой:

root@black:/usr/ports/databases/memcached# make install clean

Для автозапуска добавим в /etc/rc.conf строки:

memcached_enable="YES"
memcached_flags="-d -m 64 -u nobody -l 127.0.0.1"

Запустим сервис:

root@black:~# service memcached start

Идем дальше …. Читать полностью

Знакомимся с новым форматом графических файлов — Webp

Давно встречал статью о том что google якобы давно уже придумал для себя новый формат хранения собранных ботами гугла по инету графических файлов. Мол jpg сильно устарел и вообще алгоритм сжатия очень не эффективный и тд и тп. Но потом об этом както забылось, так как большого количества информации о новинке найти не удалось.
А сейчас вот случайно наткнулся опять на статью об этом формате не хабре, захотелось попробовать. Интерес подогрело наличие пакета с конверторами в официальных репозиториях Debian. Осталось дело за малым — поставить и проверить!
Устанавливается одним кликом мышки 🙂 Тьфу! Одним пинком клавы в рутовой консоли 🙂

root@deb:~# apt-get install webp

Читать полностью

Установка и настройка Apache + MySQL + PHP во FreeBSD 8.2

Установка apache2 из пакетов:

[root@gw ~]# pkg_add -r apache22

Для автозапуска добавим опцию в rc.conf

[root@gw ~]# echo 'apache22_enable="YES"' >> /etc/rc.conf

Установка MySQL 5.1 из портов Читать полностью