Идеята е да се направи Dump на таблиците от конкретна база без съдъръжанието т.е. само структурата на таблиците. Ето как става:
mysqldump -uUSER -d -p DB > DB.sql
Идеята е много проста ако някои качи 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"
Opencart имат "Супер" DB структура и по- точно полетата "key" и "group"
mysql> describe oc_setting;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| setting_id | int(11) | NO | PRI | NULL | auto_increment |
| store_id | int(11) | NO | | 0 | |
| group | varchar(32) | NO | | NULL | |
| key | varchar(64) | NO | | | |
| value | text | NO | | NULL | |
| serialized | tinyint(1) | NO | | NULL | |
+------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
Готино а ?
Проблема тук е следния, че в магазина на OpenCart е добавен Български език само на FrontEnd без админ панела, а един колега е сетнал Български език и за админ панела. При това положение излиза следната грешка:
"Notice: Error: Could not load language bulgarian! in /…/public_html/shop/system/library/language.php on line 39"
Е решението е да се фиксне в базата както аз направих:
update oc_setting set value='en' where setting_id=24303;
PS: Поста е как да се фиксне тази грешка, но не се стърпях да напиша колко "добре" са подбрани имената на колоните в таблицата oc_setting
Готини плъгини за 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;
Идеята е да се ползва системата за коментари на 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);
Идеята е, че трябва да се обновят 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
Тази публикация ще обясни в 10 стъпки как се инсталира opencart 1.5.1.3 и българският пакет на потребителската част:
1. Прави се Потребител и парола в MySQL ( ДА НЕ СЕ ПОЛЗВА ROOT)
2. Всички файлове от папката upload се качат в главната root директория примерно "public_html"
3. Изпълняват се тия права:
chmod 0755 or 0777 image/
chmod 0755 or 0777 image/cache/
chmod 0755 or 0777 image/data/
chmod 0755 or 0777 system/cache/
chmod 0755 or 0777 system/logs/
chmod 0755 or 0777 download/
chmod 0755 or 0777 config.php
chmod 0755 or 0777 admin/config.php
4. Инсталира се през уеб инсталатора
5. Изтрива се папката install
6. Изтегля се http://www.opencart.com/index.php?route=extension/extension/info&extension_id=4193&filter_search=bulgarian&filter_license=0&filter_download_id=23&sort=e.date_modified&order=DESC
Превода е само за потребителската част, но не смятам, че е проблем. Има и пълен пакет за потребителската и административната част за 10$. Ако някои не може да се справи с англисйкия на админ панел смятам, че е редно да плати 10 $, все пак 10 долара не са никак много.
7. Разархивира се сваления файл и съдържанието му се кача в и "catalog\language" .
8. Настройки на езика от административния панел (http://example.com/admin/):
От административния панел на магазина se изберa System -> Localisations -> Languages -> Insert.
Попълват се полетата:
Language Name: Bulgarian
Code: BG
Locale: bg.UTF-8,BG,bulgarian
Image: bg.png
Directory: bulgarian
Filename: bulgarian
Status: Enabled
Sort Order: 1
9. Променяте Sort Order на английския език на "2"
10. Това е всичко. Пиете по една биричка за добре свършената работа.
Днес трябваше да помогна на един приятел да му сложа opencart + някакви модули там. Голям шит е да се инсталира каквото и да е през контрол панел , но както и да е все пак през фтп(няма ssh тоя хостинг план) обаче ги ръчнало с 700 и съответно не работи. Това opencart има 91919191 под директории това нещо беше абсурдно на ръка да ги променям . Щях да цъкам през "ftp" без графични приложения ама не става. Междо другото понеже съм натнат в къщи се сетих да споделя какво направих, че може да е полезно на някои.
Когато си нат и се опитваш да се вържеш към ftp през конзолен ftp клиент се получава следното:
current_user@current_user:~$ ftp ftpmashina.com
Connected to ftpmashina.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 7 of 50 allowed.
220-Local time is now 11:39. Server port: 21.
220-This is a private system -- No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (ftpmashina.com:current_user): ftpuser
331 User ftpuser OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
500 I won't open a connection to 10.10.10.3 (only to 77.85.229.10)
ftp: bind: Address already in use
Изпълнява се просто:
passive
и всичко се оправя.
Това не е нещо ново и интересно просто реших, че може да е полезно на някои.
Все пак не ми се пише скриптче рекурсивно да ги разцъка всичките папки файлове затова ще ползвам вече графичен фтп клиент . Любимият ми:
Filezilla
С това графично приложение което си работи перфектно под Debian( като гледам има го и за Windows сигурно и там ще работи добре) много лесно се прави рекурсивна промяна на пермишъните на папки и файлове.
PS: Filezilla е сериозен фаворит при Графичните FTP Клиенти и при това Свободен(коРЕМ<сиално казано: БЕЗПЛАТЕНО).
В български хостинг провайдър host.bg когато се изпълни date() през php и връща следната грешка:
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EET/2.0/no DST' instead in /path/file.php on line 9
Решенеито е просто: Преди използването на date() да се добави:
date_default_timezone_set('Europe/Sofia');
Проблема може да се реши и с error_reporting, но предпочитам по- горното решение.
PS: Препоръчвам host.bg за хостинг. Пичовете са готини и съпорта им е много добре!
Интересна публикация за Добруджа:
Заключена от долното течение на Дунав и Черно Море , в триъгълника между Балчик, Силистра и Дунавското устие, Добруджа е земята, на която през VII в. за пръв път са стъпили конниците на Аспарух и основали българската държава….
Източник:dobrudja-news.com