Category Archives: sadmin

sadmin

OpenCart Shit

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

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)

Инсталиране на Opencart 1.5.1.3 + Български език

Тази публикация ще обясни в 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. Това е всичко. Пиете по една биричка за добре свършената работа.

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

FTP Рекурсивно променяне на пермишъните

Днес трябваше да помогна на един приятел да му сложа 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 Клиенти и при това Свободен(коРЕМ<сиално казано: БЕЗПЛАТЕНО).

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

Date проблем с php на host.bg

В български хостинг провайдър 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 за хостинг. Пичовете са готини и съпорта им е много добре!

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

Показване на записаните пароли в IE с IE PassView

Един приятел си записал паролата от много време в Internet Explorer за една услуга, обаче днес сяда на друга машина и съответно :) не може да влезе защото е забравил паролата. Идеята е да си вземе паролата от старата машина и я запомни вече.

Приложението се казва IE PassView и е windows-ско разбира се.

До колкото гледах някои windows антивирусни го репортват като проблемно приложение, но от софтуерната компания казват че не е за притеснение(абе дали е или не незнам). За случая върши работа взима се паролата и се форматира машината(това разбира се не значи 100% безопасност. Най- добре е дори да няма никаква Интернет връзка за всеки случай).

Ето и как изглежда приложението:

 

 

 


IE PassView може да се изтегли от ТУК

PS: Приложението е свободно или freeware.

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

Моето vimrc

Това е моето vimrc което си ползвам:

cat ~/.exrc

syn on
colorscheme evening
set backspace=2
set nocompatible
set ruler
set history=50
set tabstop=2 shiftwidth=2 expandtab
set noai
set noautoindent

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)

Postfix бележки

Изтриване на всички писма от/до MAILER-DAEMON в опашката:

mailq | grep MAILER-DAEMON | awk '{print $1}' | tr -d '*' | postsuper -d --

Изтриване на всички писма в опашката:

postsuper -d ALL

В лог-а на postfix извеждаше:

….
Dec  4 21:32:09 mash postfix/qmgr[4892]: 888AB46267A0: from=<>, size=5961, nrcpt=1 (queue active)
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: mail for [127.0.0.1]:10024 is using up 4001 of 4001 active qu
eue entries
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: you may need to reduce amavis connect and helo timeouts
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: so that Postfix quickly skips unavailable hosts
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: you may need to increase the main.cf minimal_backoff_time and maximal_backoff_time
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: so that Postfix wastes less time on undeliverable mail
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: you may need to increase the master.cf amavis process limit
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: please avoid flushing the whole queue when you have
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: lots of deferred mail, that is bad for performance
Dec  4 21:32:09 mash postfix/qmgr[4892]: warning: to turn off these warnings specify: qmgr_clog_warn_time = 0

Поправка:

vim /etc/postfix/master.cf

Преди:
amavis unix -- -- -- -- 2 smtp

Сега:
amavis unix -- -- -- -- 250 smtp

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 vhost списък

Извеждане на списъка на всички виртуални хостове (работещи) в apache2:

pff:/var# apache2 -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:*                    is a NameVirtualHost
default server example.com (/etc/apache2/sites-enabled/000-default:2)
port * namevhost example.com (/etc/apache2/sites-enabled/000-default:2)
port * namevhost example1.com (/etc/apache2/sites-enabled/000-default:49)
port * namevhost example2.com (/etc/apache2/sites-enabled/000-default:73)
port * namevhost example3.com (/etc/apache2/sites-enabled/000-default:91)
Syntax OK

isp2:/var# apache2 -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:*                    is a NameVirtualHost
default server isp2.dcable.net (/etc/apache2/sites-enabled/000-default:2)
port * namevhost isp2.dcable.net (/etc/apache2/sites-enabled/000-default:2)
port * namevhost enciklopedia.info (/etc/apache2/sites-enabled/000-default:49)
port * namevhost eseta.org (/etc/apache2/sites-enabled/000-default:73)
port * namevhost gubite.com (/etc/apache2/sites-enabled/000-default:91)
port * namevhost grimirane.com (/etc/apache2/sites-enabled/000-default:109)
port * namevhost pletivo.org (/etc/apache2/sites-enabled/000-default:127)
port * namevhost jenata.org (/etc/apache2/sites-enabled/000-default:144)
port * namevhost mladok.com (/etc/apache2/sites-enabled/000-default:161)
port * namevhost testove.dcable.net (/etc/apache2/sites-enabled/000-default:179)
port * namevhost obiavi.dcable.net (/etc/apache2/sites-enabled/000-default:198)
port * namevhost pchelite.info (/etc/apache2/sites-enabled/000-default:216)
port * namevhost webdesign7.net (/etc/apache2/sites-enabled/000-default:232)
port * namevhost xn--80abls2bib.name (/etc/apache2/sites-enabled/000-default:248)
port * namevhost xn--80abjcmfj6a9b.name (/etc/apache2/sites-enabled/000-default:265)
Syntax OK

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