Category Archives: sadmin

sadmin

Xmms на Debian Squeeze

File: /etc/apt/sources.list

deb http://www.pvv.ntnu.no/~knuta/xmms/squeeze ./
deb-src http://www.pvv.ntnu.no/~knuta/xmms/squeeze ./

apt-get update && apt-get install xmms -y

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

Монтиране на Диск над 2TB под Linux

Този диск е 3TB , не че има значение :)

Ето го и метода:

# fdisk -l /dev/sdb
Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0×00000000
Disk /dev/sdb doesn’t contain a valid partition table

# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted!

(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted)

(parted) mkpart primary ext3 0 100%

(parted) quit

mkfs.ext3 /dev/sdb1

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)

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)