Quantcast
Channel: Блога на Мартин
Viewing all 292 articles
Browse latest View live

Търсене на текст във всички php-та (рекурсивно)

$
0
0

Идеята е, че на един приятел му се е заразила vps-а с един куп iframes … и целта беше да се открият файловете където се съдържаше съответния iframe. ето как се показват всичките заразени php-ta:

find $PWD -name \*.php | xargs grep "<iframe name=Twitter scrolling=auto frameborder=no align=center height=87 width=39 src=http://mwola.com/post.php?id=326988></iframe>"


Теглене на файлове с wget

$
0
0

Идеята е от конкретна директория на сайт да се изтеглят нейните файлове. Не директории преди или след това, а само файловете от текущата директория:

wget -e robots=off -r -np -nH -nd –cut-dirs=3 -R index.html http://example.com/dir/

Upgrade на Ubuntu 11.04 Natty

$
0
0

Upgrade на Ubuntu 11.04 Natty

Необходимо е да променим хранилищата:

sudo sed -i 's,http://.*ubuntu.com,http://old-releases.ubuntu.com,g' /etc/apt/sources.list

Промяне е следната:

Файл: /etc/apt/sources.list
deb http://bg.archive.ubuntu.com/ubuntu/ natty universe main multiverse
deb http://bg.archive.ubuntu.com/ubuntu/ natty-updates universe main multiverse

deb http://security.ubuntu.com/ubuntu natty-security universe main multiverse

deb http://extras.ubuntu.com/ubuntu natty main
deb-src http://extras.ubuntu.com/ubuntu natty main

Променя се на :

deb http://old-releases.ubuntu.com/ubuntu/ natty universe main multiverse
deb http://old-releases.ubuntu.com/ubuntu/ natty-updates universe main multiverse

deb http://old-releases.ubuntu.com/ubuntu natty-security universe main multiverse

deb http://old-releases.ubuntu.com/ubuntu natty main
deb-src http://old-releases.ubuntu.com/ubuntu natty main

Обновяваме информацията за пакетите и обновяваме пакетите

apt-get update && apt-get upgrade && apt-get dist-upgrade

Промяна на посоката на бутоните на ubuntu

$
0
0

За Ubuntu 12.10 и по-стари версии

В терминала изпълняваме: gconf-editor
След това: Apps -> Metacity -> General
Намираме: button_layout
Сменяме стойността на: menu:minimize,maximize,close

Magento 1.3 на PHP 5.4- Проблеми и случки

$
0
0

magentoИдеята е по- стара версия на Magento да работи на php 5.4 :) . От тук идват и следните проблеми :) :

Грешка: Fatal error: Method Varien_Object::__tostring() cannot take arguments in /lib/Varien/Object.php

1) /lib/Varien/Object.php (Line 484)
заменете __toString
със __invoke

2) /app/code/core/Mage/Core/Controller/Request/Http.php (Line 274)
заменете split
със explode

3) app/code/core/Mage/Admin/Model/User.php (Line 374)
заменете split
със explode

Грешка:Can't retrieve entity config: core/store_group

Решение: Заменяме файловете в папката lib/Varien/SimpleXML с новите файлове от последната версия на Magento

Грешка:
PHP Fatal error: Call-time pass-by-reference has been removed in …

Решение/Пример:

//Грешно
myFunc(&$arg);               # Deprecated pass-by-reference argument
function myFunc($arg) { }

//Правилно
myFunc($var);                # pass-by-value argument
function myFunc(&$arg) { }

Downgrade на php5.4 към php 5.3 /Debian 7

$
0
0

Файл:  /etc/apt/sources.list:

deb http://ftp.de.debian.org/debian/ squeeze main

премахваме php 5
apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs`

Виждаме какви версии можем да инсталираме:

apt-cache showpkg php5

Provides:
5.4.4-14 —
5.3.3-7+squeeze14

Инсталираме пакетите ;)
apt-get install php5=5.3.3-7+squeeze14 php5-cli=5.3.3-7+squeeze14 php5-common=5.3.3-7+squeeze14 php5-mysql=5.3.3-7+squeeze14 libapache2-mod-php5=5.3.3-7+squeeze14

VIM: Премахване на излишните разстояния

$
0
0

vimИдеята е разстоянията в началото на всеки ред да бъдат премахнати с vim, разбира се.

Много сложно се прави :)

 

:%le

 

и това е :) )

Преди:
Example line
This is part of the parsed line
Thats goes one
End of line

Сега:
Example line
This is part of the parsed line
Thats goes one
End of line

Взимане на всички url адреси на продукти от joomla

$
0
0

Идеята от сайт с joomla да експортирам данните в друг сайт. От админ панела спрях friendly url-тата и видях, че тия продукти са с item_id=212 , продуктите от базата(и самия сайт, че има броячт които се вижда)  видях, че са около 350 и затова слагам нацелване до 10 000 :) след като видя, че има голяма поредица неуспешни го спирам :) и така събирам всичките на 100% :)

root@gama:# cat joomla_get_products.php
<?php
$myFile = "products_url.txt";
$fh = fopen($myFile, 'a') or die("can't open file");

$ch1=curl_init();

for ($i=1;$i<=10000;$i++)
{
$url="http://www.site.bg/index.php?option=com_mtree&task=viewlink&link_id=$i&Itemid=212";
curl_setopt($ch1,CURLOPT_URL,"$url");
curl_setopt($ch1,CURLOPT_CONNECTTIMEOUT,20);
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch1, CURLOPT_TIMEOUT, 30);
curl_setopt($ch1, CURLOPT_REFERER,"");
curl_setopt($ch1, CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)");
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, 1);
$buf = curl_exec($ch1);

$buf=preg_replace('#\r?\n#', ' ', $buf);$buf = preg_replace('/\s\s+/', ' ', $buf);

preg_match_all("/<title>(.*?)<\/title>/",$buf,$matches);
$error=$matches[1][0];

if ($error=="404 -- Страницата не е намерена")
{
echo "Error: $i\n";
}
else
{
echo "$url\n";
fwrite($fh, "$url\n");
};
};//End of for ($i=1;$i<=10000;$i++)

?>


Skype core dump на Mint 17

$
0
0

Проблема е наличен и при Ubuntu

Fix

/home/$user$/.Skype to /home/$user$/.Skype_bak

Разреждане на мравчена киселина

$
0
0

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

Милилитри [умножени по] градуси [разделено] на търсения процент

Пример: Имаме 1 литър 85% мравчена киселина и искаме да я разредим до 60%

(1000 мл. * 85%)/60% = 1416.66~ мл. общо количество
т.е. водата която трябва да добавим е 416 мл. или като формула:

(1000 мл. МК/85%)+(416мл.Вода)= 1416мл. разтворена мравчена киселина от 60%

PS: Формулата важи и за ракия ;)

Vmware при обновяване на ядрото

$
0
0

Когато обновим ядрото vmware няма да работи. За да заработи :)

1.  sudo apt-get install build-essential linux-headers-$(uname -r)

2. sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

3. sudo vmware-modconfig --console --install-all

Prestashop- премахване на малките снимки в категориите

$
0
0

Използваме: свободната системата за онлайн магазини Prestashop .

Когато натиснем на някои категории с под категории ни извежда снимки на под категориите.

prestashop_premahvane_thumbnains_kategorii_1

Аз обаче искам да не ми излизат тези картинки(налични или не)
т.е. искам да се листват само продуктите т.е.:

prestashop_premahvane_thumbnains_kategorii_2

За да се постигне това се едитва : themes/default-bootstrap/category.tpl

1. Преди {if isset($subcategories)} (на ред 73) добавяме: {*

2. Преди {if $products} (на ред 101) добавяме *}

На практика коментираме показването на тъмбнейлите :)

Инсталиране на Windows XP на флашка(usb) от Widows XP

$
0
0

Имаме наличен Windows XP и задача да се инсталира Windows XP на лаптоп без CD. За целта се използва някаква програма Rufus , чрез която ще инсталиране Windows XP на USB или флашка :) . Ето и как става :) хаха много сложно :)

rufus

1. Изтегляте последната версия на rufus от тук: https://github.com/pbatard/rufus/downloads
2. Стартирате, избирате флашката на която ще се слага windows xp и след това iso с Windows XP
3. Избира се файлова система  NTFS .Старт и това е :)

 

Бърза обработка на снимки под terminal

$
0
0

Идеята е от терминал да се обработят снимки съответно "Бързо и лесно" :)

mogrify -resize 50% *.png
mogrify -resize 320x240 *.png
mogrify -resize 320x240! *.png
mogrify -resize x240 *.png
mogrify -resize 320x *.png
Разбира се кое какво прави ;)

PS: Говоря за масово обработване и затова не ползвам convert, че няма смисъл да се пишат цикли и т.н. като може да се ползва mogrify. По- рационално е просто…

Електронни таблици- проверка за дублирани клетки

$
0
0

Идеята е, че имаме списък с имейл адреси и фирми , но понеже има вероятност да бъдат дублирани затова се налага да ги премахнем. За целта използваме openoffice.Казвам "електронни таблици" защото това не е excel, но да и в excel също ще работи :)

Може да се премахне през mysql, но тук става по- лесно защото не е въпроса просто да се махнат дублиращите , а да се определи кои ред ще остане като критериите не са особено ясни( т.е. не са известни всички вариации на колоните и затова се налага човешки интелект . Затова не може да се автоматизира така лесно).

Вместо куп обяснения, ще има малка шепа снимки:

excel_dublirani_tablici_1

Фиг. 1

excel_dublirani_tablici_2

Фиг. 2

excel_dublirani_tablici_3

Фиг. 3

excel_dublirani_tablici_4

 

Фиг. 4

excel_dublirani_tablici_5

Фиг. 5

Става ясно, че калкулира дублите и оцветява тези стойности които са по- големи от 1 ;)

 

 

 


Prestashop- Order | Fatal error: Allowed memory size of XX bytes exhausted

$
0
0

prestashopСистемата е prestashop и проблема е, че когато се направи поръчка (order) излиза бял екран (blank page). След debug(показване на грешките) се видя следното:


Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in /home/arogans/public_html/classes/CartRule.php on line 263

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 89 bytes) in /home/arogans/public_html/classes/db/DbPDO.php on line 101

Проблема очевидно е, че се ползва повече memory_limit от колкото е позволено. В този момент е позволено да се ползва 512 MB което не е никак малко.

Разгледах за решения от други колеги, но решението беше да се увеличи на повече. Пример: Имаме разрешен 128 MB memory_limit и за да решим проблема трябва да го увеличим на 256MB . До кога с това "решение" … ? Както и да е за мен това не е решение, а по- скоро задълбочаване на проблема.

Както и да е понеже не съм разцъквал особено prestashop направих следното(Изчистих следните таблици, че всяка таблица имаше няколко милиона реда):

truncate ps_connections;
truncate ps_connections_page;
truncate ps_connections_source;
truncate ps_guest;
truncate ps_pagenotfound;
truncate ps_page_viewed;
truncate ps_referrer_cache;
truncate ps_date_range;

Проблема не се оправи :) , но все пак се оптимизира сайта и работи далеч по- бързо от преди;

Проблема се оказа в следното: В таблицата където са описани ваучерите имаше изкл. голям брой редове(автоматично се генерират от фейсбук приложение което явно е прекалило с броя ). За да се реши проблема тествах да премахна първо неактивните ваучери т.е. изтеклите:

delete FROM ps_cart_rule WHERE date_to < NOW();

, но това не помогна. За целта премахнах всички ваучери:

truncate ps_cart_rule;

Вярно е, че ваучерите ги няма, но всичко си работи. Сега ще се генерират наново НЕОБХОДИМИЯ БРОЙ ВАУЧЕРИ и всичко ще си е наред :)

PS: Не препоръчвам употребата на готови системи, но няма как те също имат предимстава… макар и не толкова колкото custom системите.

Postfix + SPF Policy сървър (Debian)

$
0
0

apt-get update && apt-get install postfix-policyd-spf-perl -y

vim /etc/postfix/master.cf


policy-spf  unix  -       n       n       -       -       spawn
user=nobody argv=/usr/bin/perl /usr/sbin/postfix-policyd-spf-perl
vim /etc/postfix/main.cf

smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,check_policy_service unix:private/policy-spf

Важно: check_policy_service да се намира непосредствено след permit_mynetworks

Как да разархивираме ZIP файл разбит на няколко части под Линукс

$
0
0

Имаме архивирана папка "site" разбита на 2 части от по 15 MB т.е. "site.z01" и "site.zip"

Когато опитаме обаче:

unzip site.z*;

Archive:  site.z01
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of site.z01 or
        site.z01.zip, and cannot find site.z01.ZIP, period.

За да се получи правим следното :) :

cat site.z* > combined.zip && unzip combined.zip;

Това е :)

Копиране на таблица и нейното съдържание в MySQL

$
0
0

Идеята е таблицата "articles" да бъде копирана като "articles_bg" + съдържанието в таблицата "articles":

Ето го и сложното решение от две заявки:

CREATE TABLE articles_bg LIKE articles; INSERT articles_bg SELECT * FROM articles;

Намаляване на html output-а през php

$
0
0

Идеята е да се премахнат някои излишни байтове в output html през php

Без обяснения, а директно с пример:

<?php
ob_start();
echo "line 1

line 4

line 6

line 10";

$search = array(
'/\>[^\S ]+/s', //strip whitespaces after tags, except space
'/[^\S ]+\</s', //strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);

$output = ob_get_contents();

$output = preg_replace($search, $replace, $output);

ob_end_clean();
echo $output;exit;

?>

Вижда се, че вместо да се листнат 10 реда(в сорса разбира се) се листват 4 реда ;)

Viewing all 292 articles
Browse latest View live