00m.Ru
21Июн/141

Импорт статей из WordPress в Joomla

Всем привет, возникла необходимость переехать с WordPress'а на Jooml'у, пораскинув мозгами, осознав, что несколько сотен материалов перегнать вручную из одной CMS'ки в другую не так то быстро.

"Лень - сестра таланта." - Это как раз про нас...

10 мин и SQL запрос готов:
 

SET @var:=57; -- Это счетчик, в поле asset_id
INSERT INTO joomla_base.www_content
SELECT "",(@var:=@var+1),post_title,"",SUBSTRING(post_content, 1, 200), -- 200 Это количество символовов в вступительном тексте
post_content,"1","8",post_date,"734","", -- 734 Это юзер от которого посты, 8 - это группа в которую добавляем(например новости)
"0000-00-00 00:00:00","0","0","0000-00-00 00:00:00","0000-00-00 00:00:00","0000-00-00 00:00:00",
'{"image_intro":"","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}',
'{"urla":false,"urlatext":"","targeta":"","urlb":false,"urlbtext":"","targetb":"","urlc":false,"urlctext":"","targetc":""}',
'{"show_title":"","link_titles":"","show_tags":"","show_intro":"","info_block_position":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":"","show_publishing_options":"","show_article_options":"","show_urls_images_backend":"","show_urls_images_frontend":""}',
"1","0","","","1","0",
'{"robots":"","author":"","rights":"","xreference":""}',
"0",'*',"" FROM wordpress_base.wp_posts WHERE (post_status="publish" AND post_content != "");

Пробовать ИСКЛЮЧИТЕЛЬНО на тестовых базах
P.S. Joomla! 3.2.3, WordPress 3.1.2

Метки записи: , , , 1 комментарий
16Фев/140

Защищаем Joomla от брутфорса при помощи bruteblock’a

Заметил на сервере в логах Jooml'ы неудачные авторизации в файле error.php, Joomla сама рапортует о неудачных попытках в этот файл в моем случае конфигурация сервера была FreeBSD 10 + Nginx+PHP-FPM+MySQL+chroot. Файл error.php лежал по пути /usr/local/www/example.org/log/error.php, на сервере так же установлен bruteblock который служил стражем против брутфорса sshd демона о его настройке говорить не буду статей на просторах инета достаточно, предположим что у Вас он установлен и настроен...

Bruteblock работает с syslog'ом и берет все неудачные попытки авторизации из него же, встал вопрос о перенаправлении вывода из файла error.php в syslog и попалась мне утилитка входящая в состав UNIX систем под названием logger с ее помощью мы перенаправим файл error.php в syslog для этого добавим строчку в cron запускаем "crontab -e" и прописываем:

* * * * * /usr/bin/logger -f /usr/local/www/example.org/log/error.php -t joomla -p auth.info && /bin/cat /dev/null > /usr/local/www/example.org/log/error.php

после этого наш файл error.php будет каждую минуту скидываться в syslog с тегом joomla приоритетом auth.info и обнулятся что бы в следующий раз не импортировать уже существующие записи, теперь в логе /var/log/auth.log должны появляться записи:

Feb 16 18:12:42 example joomla: 2014-02-16 14:11:44 INFO 1.2.3.4 Joomla FAILURE: Username and password do not match or you do not have an account yet. ("admin")
Feb 16 18:12:42 example joomla: 2014-02-16 14:12:26 INFO 1.2.3.4 Joomla FAILURE: Username and password do not match or you do not have an account yet. ("aaaa")
Feb 16 18:12:42 example joomla: 2014-02-16 14:12:29 INFO 1.2.3.4 Joomla FAILURE: Username and password do not match or you do not have an account yet. ("aaaa")
Feb 16 18:12:42 example joomla: 2014-02-16 14:12:32 INFO 1.2.3.4 Joomla FAILURE: Username and password do not match or you do not have an account yet. ("aaaa")
Feb 16 18:12:42 example joomla: 2014-02-16 14:12:34 INFO 1.2.3.4 Joomla FAILURE: Empty password not allowed ("aaaaa")
Feb 16 18:12:42 example joomla: 2014-02-16 14:12:37 INFO 1.2.3.4 Joomla FAILURE: Username and password do not match or you do not have an account yet. ("aaaaaa")
Feb 16 18:12:42 example joomla: 2014-02-16 14:12:40 INFO 1.2.3.4 Joomla FAILURE: Username and password do not match or you do not have an account yet. ("aaaa")

OK, идем дальше

теперь создаем конфиг для bruteblock'а  /usr/local/etc/bruteblock/joomla.conf с содержимым:

regexp = joomla.*INFO.(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).Joomla FAILURE.*
max_count = 4
within_time = 600
reset_ip = 3600
ipfw2_table_no = 1

и добавим в файл /etc/syslog.conf обработчик

auth.info;authpriv.info | exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/joomla.conf

перезапускаем syslog

# /etc/rc.d/syslogd restart
Stopping syslogd.
Waiting for PIDS: 3855.
Starting syslogd.

и наслаждаемся результатом... теперь если кто то попытается ввести неверный логин и пароль 4 раза в течение 10 минут, то он будет полностью отрезан от сервера на один час... посмотреть заблокированные IP адреса можно командой:

# ipfw table 1 list
1.2.3.4/32 1392563442
4.3.2.1/32 1392563562
1.2.4.3/32 1392564766

очистить список заблокированных:

# ipfw table 1 flush

По аналогии можно реализовать и на других CMS системах