RSS Feed

Grudzień, 2011

  1. Vtiger 5.3, instalacja na home.pl i błąd przy logoucie

    Grudzień 10, 2011 by 0verlord

    Stawiam Vtigera 5.3 dla klienta. Pierwszy zgrzyt, to home.pl, ale poradziłem sobie łopatologicznie, tj. upload pliku do katalogu, phpshell i unzip. PHPShell, bo z jakiegoś powodu zapychanie plików po ftp na home.pl działa koszmarnie wolno. Tj. jak pcham jeden wielki plik, to bez problemów, pcha się błyskawicznie. Natomiast zapchanie archiwum pełnego małych pliczków trwa wieki.

    Instalator vtigerowy można sobie z miejsca odpuścić. Nie zadziała z kilku powodów:
    1. nie umie stworzyć bazy, co bym nie zmieniał i tak przerywa w połowie. Internet sugeruje wiele rozwiązań – w wersji 5.3 żadne mi nie zadziało.
    2. z jakiegoś powodu wykrywa katalog główny jako // (dwa slashe), potem próbuje czytać z tego katalogu, a że go nie znajduje – rzuca błędem. Konkretnie $root_directory = '/';
    3. defaultowo w podkatalogu nie ma katalogu tmp. Trzeba dodać. Ale jeżeli się tego nie walczyło z home.pl to się tego nie wie, więc instalator się wywali.

    Proponuję zatem rozwiązanie następujące:
    1. zainstalować sobie na normalnym linuxie i uruchomić instalator.
    2. odpowiedzieć na wszystkie pytania i skonfigurować sobie instalkę
    3. na home.pl wypakować czystą wersję i odpowiednio spreparować config.inc.php
    4. wgrać dumpa ze świeżej instalki, ale nie przez phpmyadmina (czyli przez web), bo też mi się to nie udało – import pluł, że plik jest za duży. Za duży, pewnie. 750kb to za dużo.
    5. skopiować pliki z lokalnej instalki:
    tabdata.php parent_tabdata.php user_privileges/sharing_privileges_cyferka.php i user_privileges/user_privileges_cyferka.php – jak tego nie skopiujemy, dostaniemy komunikat o braku któregoś z nich, najczęściej z numerkiem 1.
    6. odpalić i tadam.wav

    No i generalnie będzie działać, z kilkoma wyjątkami. Nie da się wylogować, bo się wysypie i kilka modułów administracyjnych też nie będzie działać – np. edytor konfiguracji. Przy logoucie error będzie wyglądał jak niżej:

    Warning: require_once(modules/VtigerBackup/VtigerBackup.php) [function.require-once]: failed to open stream: No such file or directory in /modules/Users/Logout.php on line 29

    Fatal error: require_once() [function.require]: Failed opening required 'modules/VtigerBackup/VtigerBackup.php' (include_path='/include/htmlpurifier/library:.:/:/usr/local/php/pear5') in /modules/Users/Logout.php on line 29

    i rzeczywiście – nie ma tego skrypciku.

    Tu mnie naprowadzili: http://forums.vtiger.com/viewtopic.php?t=40319

    Ten plik to jest część podstawowych modułów vtigera, i normalnie instalator je wypakowuje – o ile zakończy sukcesem cała akcję. Ale jak to zrobić na home?

    Curlftp naszym kolegą. Montujemy sobie katalog z witryną po ftpfs.
    Wypakowujemy sobie instalkę, wchodzimy do
    packages/vtiger/mandatory
    i to właśnie tam siedzi to, czego nam brakuje.
    Teraz część trudniejsza. Po odpakowaniu, archiwa z modułami zawierają dwa katalogi: modules i templates. Modulesy wypakowujemy do głównego katalogu ze stroną, a templates do ./Smarty/templates, wg schematu, np. dla ConfigEditor.
    ./Smarty/templates/modules/ConfigEditor/index.tpl
    Czyli w katalogu ./Smarty/templates/modules zakładamy katalog taki jak nazwa wypakowanego modułu.
    Można też prościej – w końcu instalowaliśmy lokalną wersję, żeby mieć bazę. Kopiujemy z lokalnie działającego vtigera katalog.
    Smarty/templates oraz
    modules/

    W końcu to te same pliki i ta sama wersja i tylko odpowiednio 2.3- i 20MB.

    Potem można sobie doinstalować np. polski język, np.stąd, ale to już po zalogowaniu przez managera modułów. Najlepiej zrobić to na końcu, ponieważ templejty, którymi będziemy mieszać, nadpisują niektóre pliki z tłumaczeniami.

    Amen.


  2. regulowanie przepustowości portu na switchu DES-3526

    Grudzień 6, 2011 by 0verlord

    Sprawa jest banalnie prosta, po zalogowaniu się na konto administracyjne i wybraniu portu ofiary, należy wykonać następujące polecenie:
    config bandwidth_control 20 rx_rate 20 tx_rate 20
    save

    tx i rx_rate są podawane w megabitach, więc powyższe polecenie tnie port do 20/20 megabitów.
    Prosto i szybko a i dokładność zadowalająca w sumie do przycinania większych segmentów. Przynajmniej tyle w tym ogólnie dość topornym pudełku. Ale sprawiedliwości trzeba przyznać, odkąd go sklikałem i wstawiłem, ani razu nie wygenerował dziwnego problemu.


  3. LMS i odzyskiwanie z backupu

    Grudzień 2, 2011 by 0verlord

    Sytuacja jak zazwyczaj: pada mi host z lmsem, backup się zrobił i odzyskał. Trzeba po prostu odzyskać, bez upgrade i innych takich tam sztuczek. No to jadę – przenoszę bazy, ale mysql < baza.sql rzuca permission denierem i wymaganiami super usera. Dokładnie takimi erorrami rzucało: Napotkano błędy w bazie danych!
    Zapytanie: CREATE FUNCTION lms_current_user() RETURNS int(11) NO SQL
    RETURN @lms_current_user;
    Błąd: You do not have the SUPER privilege and binary logging is enabled
    (you *might* want to use the less safe log_bin_trust_function_creators
    variable)
    Zapytanie: CREATE VIEW customersview AS SELECT c.* FROM customers c
    WHERE NOT EXISTS ( SELECT 1 FROM customerassignments a JOIN
    excludedgroups e ON (a.customergroupid = e.customergroupid) WHERE
    e.userid = lms_current_user() AND a.customerid = c.id)
    Błąd: FUNCTION lms.lms_current_user does not exist

    Przywróciłem bazę z doc/lms.mysql, ale nie pomogło, dalej pluło errorami z customerviewsem.
    Wujek google skierowął mnie tu.

    W skrócie: uwaliłem viewsy, wszystkie:
    CREATE VIEW nas AS
    SELECT n.id, inet_ntoa(n.ipaddr) AS nasname, d.shortname, d.nastype AS type,
    d.clients AS ports, d.secret, d.community, d.description
    FROM nodes n
    JOIN netdevices d ON (n.netdev = d.id)
    WHERE n.nas = 1;

    CREATE VIEW vnodes_mac AS
    SELECT nodeid, GROUP_CONCAT(mac SEPARATOR ',') AS mac
    FROM macs GROUP BY nodeid;

    CREATE VIEW vnodes AS
    SELECT n.*, m.mac
    FROM nodes n
    LEFT JOIN vnodes_mac m ON (n.id = m.nodeid);

    CREATE VIEW vmacs AS
    SELECT n.*, m.mac, m.id AS macid
    FROM nodes n
    JOIN macs m ON (n.id = m.nodeid);

    CREATE VIEW customersview AS
    SELECT c.* FROM customers c
    WHERE NOT EXISTS (
    SELECT 1 FROM customerassignments a
    JOIN excludedgroups e ON (a.customergroupid = e.customergroupid)
    WHERE e.userid = lms_current_user() AND a.customerid = c.id);

    i dodałem funkcję:
    CREATE FUNCTION lms_current_user() RETURNS int(11) NO SQL RETURN @lms_current_user;.

    Wszystko oczywiście po dodaniu bazy i usera do niej.Chciałem też odpowiednio okomentować w blogu z linka przydatne informacje, a tutaj niespodzianka:

    WordPress database error: [INSERT command denied to user 'xxx'@'localhost' for table 'wp_comments']

    Życie. Więc podziękuję tu:

    Thenks meeeen, I loveeee youuuuu 😀 (i napraw sobie zapomnianego worpdressa ;-))

    EDIT: wszystkie viewsy trzeba skasować, jak leci wszystkie, tj.

    DROP VIEW IF EXISTS nas;
    DROP VIEW IF EXISTS vnodes_mac;
    DROP VIEW IF EXISTS vnodes;
    DROP VIEW IF EXISTS vmacs;
    DROP VIEW IF EXISTS customersview;

    W sumie ciekawe, dlaczego dump nie odtworzył viewsów. Ale nie chce mi się szukać.