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
sadmin
Този диск е 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
Идеята е много проста ако някои качи 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
Идеята е, че трябва да се обновят 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 за хостинг. Пичовете са готини и съпорта им е много добре!
Един приятел си записал паролата от много време в Internet Explorer за една услуга, обаче днес сяда на друга машина и съответно :) не може да влезе защото е забравил паролата. Идеята е да си вземе паролата от старата машина и я запомни вече.
Приложението се казва IE PassView и е windows-ско разбира се.
До колкото гледах някои windows антивирусни го репортват като проблемно приложение, но от софтуерната компания казват че не е за притеснение(абе дали е или не незнам). За случая върши работа взима се паролата и се форматира машината(това разбира се не значи 100% безопасност. Най- добре е дори да няма никаква Интернет връзка за всеки случай).
Ето и как изглежда приложението:
IE PassView може да се изтегли от ТУК
PS: Приложението е свободно или freeware.