Търсенето в Linux на файлове като цяло си е доста лесно с командата find която разполага с вградени инструменти намирането на файлове по големи от определен размер например:


find / -type f -size +10M

По горният пример ще ни намери всички файлове по големи от определен размер което до някъде е приемливо но нас като цяло ни интересува целият път на файлът отделно че ако опитате по горният пример, ще получите доста съобщения за грешки заради проблеми с достъпа или файлове забранени за четене. В общи линии решаването на съответните 2 проблема става лесно с допълването на по горната команда по следният начин:

find / -type f -size +10M -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }'

 

 

Да сменяш домейн във WordPress си е известна болка. Напоследък ми се наложи да направя няколко такива и вече нещата се случва спортно бързо 😀 . Ако мога да сумаризирам стъпките са 2 – естествено без местенето на файловете, настройките ако се сменя изцяло хостинга.

1. Промяна на старото URL със новото – тука нещата са тривиални. Отваряте си wp-config.php файлът и във него поставяте следните 2 реда


define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Като замествате http://example.com със вашият нов.

2. До тук добре вече сайтът се отваря url-тата работят но каченото съдържание като картинки, документи и прочие не се вижда. Тука вече се налага по груба намеса. Трябва да се заместят старите url-та със новите във базата данни. Това беше ужасно неприятен процес особено за начинаещи потребители, които не се справят добре със SQL синтаксисът, но вече има доста приятен скрипт searchreplacedb2, който прави всичко неприятно вместо вас. Използването му е тривиално – качвате го във основната директория където се намира wordpress страницата ви и го отваряте през browser-а си. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия wp-config.php и след това ще ви пита за новото и старото url. След последната стъпка ще се наложи да поизчакате при мен отнемаше средно 40сек -50сек.

Това е във общи линии нищо трудно или супер сложно.

От миналата седмица закупихме Fantastico Deluxe инсталатора, който по мое скромно мнение е един от най приличните за CPanel сървъри. Инсталирахме го тествахме и всичко мина гладко. Днес един клиент ми съобщи за проблем с енкодинга на wordpress инсталация. Прегледах нещата и веднага лъсна проблема базите бяха с енкодинг по подразбиране Latin1 вместо UTF8 като се предполагаше. Още по забавното е, че в phpmyadmin-а пише че се използва UTF8 по подразбиране, драма. Реших да прегледам файловете на Fantastico-то да видя дали няма някъде където мога да окажа настройките за базите данни по подразбиране на пръв поглед не видях нищо. След това нещо ме текна да видя какво има в my.conf-а и какво да видя нямаше съответните настройки във конфигурация и всичко си пали на каквото му е зададено по подразбиране. Mysql сървъра е хардкоднат да ползва UTF8 ако не е конфигуриран с други настройки и Fantastico-то явно е с Latin1 ( което е доста глупаво решение). Решението както винаги е тривиално добавят се 2 реда в [mysqld] часста за да се окаже UTF8 като кодировка по подразбиране и всичко заспива 🙂

character-set-server=utf8
collation-server=utf8_general_ci

Нямам никаква идея поради каква причина съм пропуснал тези настройки при положение че си играх да правя няколко „фини“ настройки на mysql-а.

Enhanced by Zemanta

Official Iceweasel Icon, used in Debian Package

Използвам Debian от почти 5-6 години вече. Едно от нещата което винаги ме е смущавало е, че хората от Debian team-а са заместили Firefox с Iceweasel. Причината е съвсем идеологическа – тъй като Debian-ци държат да имат напълно 100% свободна дистрибуция а някой компоненти като шрифтове и други неща са собственически в Firefox се използва fork-а в който е освободен от тези неща. Понякога „Ледената Невестулка“ се е държала странно, но никога не съм имал 100% ясно доказателство, че маргинално е различен browser. Поне така беше до вчера. Вчера си направих html5 test на browser-а ми и установих неприятния факт, че правя 10-15 точки по малко от стандартната версия. Изключително неприятно, веднага сверих версиите ми бяха еднакви 18.0.1. От тук нататък нещата са ясни, че ще се завърна към стандартната версия но се чудя защо важни компонентни не работят както се очаква и това не е споменато. Като цяло доста се дразня на фанатизирани идеолози които ще предпочетат 100% отворено решение което дори и да не работи толкова добре колкото трябва ще бъде основно. Това е като да загубя основната производителност на GPU-то за да използвам свободния драйвер за Nvidia вместо този който ми предлага производителя – лично аз не мога да си позволя подобна загуба на производителност. Та нека да се върнем на миграцията от единия на другия browser. Като цяло е доста простичка ако мога да я изброя в няколко стъпки ще наблегна на най важните

  1. Сваляне на правилната версия за вашата архитектура има значение дали ще ползвате x86 или x64 версията за плъгините като флаш и някой други който вече са инсталирани на системата ви. Ако не сте сигурни каква е архитектурата ви може да проверите с uname -m командата в козолата.
wget ftp://ftp.mozilla.org/pub/firefox/releases/$VERSION/linux-$(uname -m)/en-US/firefox-18.0.1.tar.bz2 -O /tmp/firefox.tar.bz2
  1. Разархивиране на browser-a това може да го направите където си искате /home /opt или където душа ви сака лично аз предпочтох /opt
tar jxfv /tmp/firefox.tar.bz2 -C /opt/
  1. Добавяне на линк към стария изпълним файл към новата локация на browser-а
ln -s /opt/firefox/firefox /usr/bin/firefox
  1. добавяне на линк за plugin-ите към новата локация за да можем да гледаме flash клипове и прочие
ln -s /usr/lib/mozilla/plugins /opt/firefox/plugins
  1. обновяване на broser-a по подразбиране
update-alternatives --install  /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 100
  1. и добавяне на запис за новата програма във вашата система
echo '[Desktop Entry]
Name=Firefox
GenericName=Web Browser
Comment=Surf the internet
Exec=/opt/firefox/firefox %u
Terminal=false
Icon=/opt/firefox/icons/mozicon128.png
Type=Application
Categories=Application;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox-bin
StartupNotify=true' > /usr/share/applications/firefox.desktop

В общи линии това са стъпките който трябва да следваме. Понеже аз съм мързели и не ми се прави всичко на ръка всеки път си направих следния скрипт.

#!/bin/bash

VERSION='18.0.1'

if [ $EUID -ne 0 ]
then
echo -en "�33[1;31mERROR: Must be a 'root'!!! nUse 'su' or 'sudo ./ff_install' :) �33[0m n"
exit
fi

wget ftp://ftp.mozilla.org/pub/firefox/releases/$VERSION/linux-$(uname -m)/en-US/firefox-18.0.1.tar.bz2 -O /tmp/firefox.tar.bz2

tar jxfv /tmp/firefox.tar.bz2 -C /opt/
chown $1:$1 -R /opt/firefox
mv /usr/bin/firefox /usr/bin/firefox-iw
ln -s /opt/firefox/firefox /usr/bin/firefox
ln -s /usr/lib/mozilla/plugins /opt/firefox/plugins

update-alternatives --install  /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 100

echo '[Desktop Entry]
Name=Firefox
GenericName=Web Browser
Comment=Surf the internet
Exec=/opt/firefox/firefox %u
Terminal=false
Icon=/opt/firefox/icons/mozicon128.png
Type=Application
Categories=Application;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox-bin
StartupNotify=true' > /usr/share/applications/firefox.desktop

Важно нещо което пропуснах е че директорията където се намира версията на firefox-а трябва да е на настоящия ви потребител за да може да надграждате версиите без проблеми. Затова горния скрипт трябва да се стартира със атрибут вашия потребител.

./ff_install your_user_name

Както писах наскоро моите хора от Debian преминават на multiarch support. Това само по себе си е хубаво нещо доста неща ще вървят по нормално например някой проблеми с wine на x64 архитектурата ще отпаднат. Понеже моята система е доста по сложно конфигурирана по принцип е sid (unstable) обаче се ползват пакети и от тестинг и с multiarch-а нещата се смазват. Крайно неприятно при това. Та днес ми се наложи да си почистя системата от всички i386 зависимости за да може да палне както хората 🙂

В общи линии процедурата е изключително тривиална. Почистваме пакетите забраняваме i386 архитектурата и живеем щастливо 😉 как се случва това със следната команда по долу. Т.е те са 2, в случай че на някой му е интересно колко пакети е успял да нашие покрай всичките неща дето си е качил реално втората почиства системата.


dpkg -l | grep i386
apt-get remove --purge .*:i386

До тук всичко е ясно с чистичка система сме. Остана само да забраним архитектурата дето ни мачка системата


dpkg --remove-architecture i386

apt-get update

Здравей чист живот.  Ако някой ден не ме мързи ще седна да си напиша pin-овете за приоритети на пакетите като хората че да не се мачка и multiarch-а но като цяло нямам много голямо желание да го правя предпочитам чиста x64 система пред  множество повтарящи се библиотеки.