Category Archives: Web

Web

Прехвърляне на един WordPress към Друг

Идеята е следната:
Имам два домейна "sait1.com" и "sait2.com" . Идеята е информацията със снимките от "sait1.com" да се прехвърли в "sait2.com".

Sait1.com :
1. Прави се export на базата в xml файл.

Sait2.com:
1. Инсталира се плъгина за WordPress Import
2. Импортира се предварително създадения xml файл от "sait1.com"
3. Копират се снимките от "sait1.com" в "sait2.com" т.е.
/var/sait1.com/wp-content/uploads/ => /var/sait2.com/wp-content/uploads /
4. Инсталира се плъгина: Search and Replace
5. От плъгина "Search and Replace" се въвежда:
Search for: "sait1.com"
Replaced with: ""

PS: По този метод се прехвърля на 100% целия WordPress , а не само базата с линкове на снимките към стария сайт т.е.(вместо да се прехвърлят снимките на sait2.com се ползват
линкове от sait1.com).

Извод: Не ми харесва Import+Export функцията на WordPress.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Нов проект : сайт1.ком

Здравейте приятели, стартирахме нов проект : Класация на Българските сайтове: www.sait1.com .

Много сайтове участват в класацията, направете го и вие.
Просто е.
Регистрираш се и трупаш гласове така излизаш на първа страница и ще умножиш посещенията си многократно!

Sait1.com е най- голямата Българска класация, която работи по следния метод -- всеки сайт при регистрация получава уникален Идентификационен Номер и специален линк. Пример: http://sait1.com/in/1024 . Като 1024 е Идентификационния номер на сайта .

Регистрирай сайта си в: www.sait1.com

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Нов онлайн речник

Днес стартирахме един проект -- Онлайн речник -- re4nik.com . Речникът с изцяло уникален и модерен дизайн. Речникът е изцяло безплатен и лесен за ползване.

Тук всъщност има група от речници:

1. Българо-Английски речник
2. Английско- Български речник
3. Тълковен речник
4. Синонимен речник
5. Правописен речник

Не на последно място са :

Възможност за превод на текст на много езици
Съновник

Заповядайте в онлайн речник: re4nik.com

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Apache2 php5 -- Забрана на системни функции

Идеята е много проста ако някои  качи web shell на машината да не може да го ползва.

Ето го решението със suhosin:

File /etc/php5/apache2/conf.d/suhosin.ini

suhosin.executor.func.blacklist =system, exec, shell_exec, passthru,  ini_alter, dl, pfsockopen, openlog, syslog, readlink, symlink, link, leak, fsockopen, popen, escapeshellcmd, apache_child_terminate apache_get_modules, apache_get_version, apache_getenv, apache_note,apache_setenv,virtual

С php5 (Във virtualhost или в целия apache2.conf):

<IfModule mod_php5.c>
php_admin_flag safe_mode on
php_admin_value disable_functions "system, exec, shell_exec, passthru , ini_alter, dl, pfsockopen, openlog, syslog, readlink, symlink, link, leak, fsockopen, popen, escapeshellcmd, apache_child_terminate apache_get_modules, apache_get_version, apache_getenv, apache_note,apache_setenv,virtual"

</IfModule>

Аз лично ползвам вариант 1

PS:
Като цяло е добре да се добави и "set_time_limit", но не съм го добавил защото wordpress го ползва и ако има такъв сайт няма да може да обновява постовете си.

Премахнах и error_log, че : "[Wed May 30 22:04:51 2012] [error] [client xxx.xxx.xxx.xxx] PHP Warning:  error_log() has been disabled for security reasons in /path/file.php on line 306, referer: http://site.com"

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

WordPress Multisite Бележки

Готини плъгини за  WordPress Multisite е:

1. Multisite Plugin Manager
2. Hyper Cache Extended . Подкрепете Българаското. На адаша Мартин!
3. Diamond MultiSite Widgets
4. All in One SEO Pack
5. Akismet
6. Yet Another Related Posts Plugin
7. SEO Smart Links

За наспамени блогове от коментари могат да се премахнат лесно така:

delete from zna_comments where comment_approved!=1;
delete from zna_1_comments where comment_approved!=1;
delete from zna_2_comments where comment_approved!=1;
delete from zna_3_comments where comment_approved!=1;

Ако ПРЕКАЛЕНО много са наспамени т.е. 100% така:
delete from wp_comments;
delete from zna_1_comments;
delete from zna_2_comments;
delete from zna_3_comments;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Добавяне на коментари от facebook на сайта

Идеята е да се ползва системата за коментари на facebook:

1. Създава се приложение за коментари:

http://www.facebook.com/developers/createapp.php

App Display Name: example_comments

App Domain:example.com

Website-> Site URL: http://example.com

http://developers.facebook.com/tools/comments?id=191130727657303

2. Взима се кода

http://developers.facebook.com/docs/reference/plugins/comments/

<div id='fb-root'></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = '//connect.facebook.net/bg_BG/all.js#xfbml=1&appId=365185030181491';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class='fb-comments' data-href='http://firmi1.com' data-num-posts='2' data-width='640'></div>

3. Слага се и друг код

<meta property='fb:admins' content='100000589059407' />
<meta property='fb:app_id' content='365185030181433' />

$url="http://example.com/haha/url";
echo "
<br><br><b>Коментирай свободно:</b>
<br><br>";
get_facebook_comment($url,510);

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Автоматично обновяване на 10 WordPress блога за 10 секунди

Идеята е, че трябва да се обновят 10 блога на WordPress и то бързичко с идеята при следващ ъпдейт да става лесно.
Понеже системата е писана на php реших и скриптчет ода бъде на php . Ето го и него:

<?php
#############################################
$wordpress_root_dirs=array(
"/var/www/sait1.com/",
"/var/www/sait2.com/",
"/var/www/sait3.com/",
"/var/www/sait4.com/",
"/var/www/sait5.com/",
"/var/www/sait6.com/",
"/var/www/sait7.com/",
"/var/www/sait8.com/",
"/var/www/sait9.com/",
"/var/www/sait10.com/"
);

$BDIR="/tmp/backup_upgraded_wordpress";
$NDIR="$BDIR/latest_wordpress_files";

#############################################

function dhs_lr_str($a,$b,$c){$a=explode("$a",$c);$b=explode("$b",$a[1]);return addslashes(trim($b[0]));};
$count_wp_blogs=count($wordpress_root_dirs)-1;

@system("mkdir -p $NDIR");
chdir("$NDIR");

echo "
###########################################################################
######## Mass Wordpress Updater ver. 0.1 by amri -- www.mpetrov.net ########
###########################################################################
\n";

echo "Downloading Latest WordPress … \n";
system("wget -q http://wordpress.org/latest.zip -O $NDIR/latest.zip");
system("unzip -o -q $NDIR/latest.zip");

$count_upd_wp=0;
foreach ($wordpress_root_dirs as $RDIR)
{
$count_upd_wp++;
echo "Update Wordpress blogs $count_upd_wp/$count_wp_blogs\n";

$buf=file_get_contents("$RDIR/wp-config.php");

$DB_NAME=trim(dhs_lr_str("define('DB_NAME', '","'",$buf));
$DB_USER=trim(dhs_lr_str("define('DB_USER', '","'",$buf));
$DB_PASSWORD=trim(dhs_lr_str("define('DB_PASSWORD', '","'",$buf));
$DB_HOST=trim(dhs_lr_str("define('DB_HOST', '","'",$buf));
$DB_TABLE=trim(dhs_lr_str('$table_prefix  = \","'",$buf));
$WDIR="$BDIR/$DB_NAME";

@system("mkdir -p $WDIR");
chdir("$WDIR");

echo "Backup Old WordPress ($RDIR) DB: $DB_NAME\n";
system("mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $WDIR/$DB_NAME.sql");

echo "Backup Old WordPress ($RDIR) Files\n";
system("cp -Rp $RDIR/ $WDIR/wordress_files/");

echo "Replace Old WordPress($RDIR) Files\n";
system("cp -ar $NDIR/wordpress/* $RDIR/");

mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);mysql_select_db($DB_NAME);
$result = mysql_query("select option_value from ".$DB_TABLE."options where option_name='siteurl'");
$row = mysql_fetch_array($result);
$siteurl=stripslashes($row['option_value']);

$ch1=curl_init();
curl_setopt($ch1,CURLOPT_URL,"$siteurl/wp-admin/upgrade.php?step=1&backto=");
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);
$buf=curl_exec($ch1);
curl_close($ch1);
};
?>

Изходът е ето това:

###########################################################################
######## Mass WordPress Updater ver. 0.1 by amri -- www.mpetrov.net ########
###########################################################################

Downloading Latest WordPress …
Update WordPress blogs 1/12
Backup Old WordPress (/var/www/sait1.com/) DB: sait1DB
Backup Old WordPress (/var/www/sait1.com/) Files
Replace Old WordPress(/var/www/sait1.com/) Files
Update WordPress blogs 2/12
Backup Old WordPress (/var/www/sait2.com/) DB: sait2DB
Backup Old WordPress (/var/www/sait2.com/) Files
Replace Old WordPress(/var/www/sait2.com/) Files
Update WordPress blogs 3/12
Backup Old WordPress (/var/www/sait3.com/) DB: sait3DB
Backup Old WordPress (/var/www/sait3.com/) Files
Replace Old WordPress(/var/www/sait3.com/) Files
….

Може да го изтеглите от тук: wordpress_mass_upgrade

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

за Добруджа

Интересна публикация за Добруджа:

Заключена от долното течение на Дунав и Черно Море , в триъгълника между Балчик, Силистра и Дунавското устие, Добруджа е земята, на която през VII в. за пръв път са стъпили конниците на Аспарух и основали българската държава….

Източник:dobrudja-news.com

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

WordPress проблем с upload

Преместих блога на друга машина и като реших да кача тази снимка ми върна това съобщение:

“File.gif” не успя да бъде качен поради грешка
Неуспешно създаване на директория /var/www/wp-content/uploads/2011/12. Имате ли право да пишете в родителската ѝ категория?

Решението е просто да се каже какъв е абсолютния път на блога в базата:

update wp_options set option_value='/new_www/wp-content/uploads' where option_name='upload_path';

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

php засичане енкодинг на текст

function detect_encoding($string)
{
return strtolower(mb_detect_encoding("$string",'utf-8,windows-1251'));
}//End of detect_encoding($string)

$string="мартин петров";#stringa e windows1251;
echo detect_encoding($string);
//Shte wyrne windows-1251, ako stringa e utf-8 shte wyrne utf-8

 

function cp1251_to_utf8($s)
{
if ( mb_check_encoding("$s","cp1251") == 1){return iconv("cp1251","utf8",$s);}else { return $s; };
}
function utf8_to_cp1251($s)
{
if ( mb_check_encoding("$s","utf-8") == 1){return iconv("utf8","cp1251",$s);}else{return $s;}
}//End of utf8_to_cp1251($s)

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)