Adam Kucza » Internet

Adam Kucza

Żeby być sobą, trzeba być kimś...

Stanisław Jerzy Lec

blogger czy logger?

Archiwum: 'Internet' Kategorie


SugarCRM i problem DateTime w PHP 5.2.0

Autor: Adam Kucza o 30. styczeń 2007

Chcemy być „Up To Date”. Robimy aktualizację paczek na serwerach linux/unix. Okazuje się, iż najnowsza wersja PHP 5.2.0 posiada zmienioną nieco obsługę klasy DateTime, co idzie w parze pojawiającym się błędem np. w aplikacji Open Source Sugar CRM.

Fatal error: Cannot redeclare class DateTime in /home/www/sugarcrm/modules/Calendar/DateTime.php on line 29

Na szczęście na forum SugarCRM pojawiła się łatka o nazwie os_datetimefix.zip, umożliwiająca prawidłową obsługę tej klasy i jej podobnych wykorzystywanych w aplikacji.
Wystarczy ją rozpakować i odpowiednie pliki nadpisać w podkatalogach katalogu /modules/.
Nie zapomnijcie o kopii zapasowej plików oryginalnych!

Link do forum: http://www.sugarcrm.com/forums/showthread.php?t=16477&highlight=php+5.2.0+RC4+error

Powodzenia!

» wpis obejrzano 7003 razy przez 1639 internautów «

Napisany w Internet, PHP, SugarCRM | Comments Off

Kody Apache’a

Autor: Adam Kucza o 16. styczeń 2007

Ostatnio miałem problem ze prawidłową obsługa ErrorDocument, tj. zapisaniem w logu serwera httpd wpisu o kodzie 404.
Gdy mamy np. błędną stronę typu /index.php?page=NieMaTakiejStrony i wiemy, że faktycznie takiej strony nie ma, to samo ustawienie w httpd.conf:

ErrorDocument 404 /index.php?page=404

powodowało, że wyświetlała mi się przygotowana wcześniej w CMSie strona z treścią informacyjną o nieznalezieniu strony, natomiast w logach apache’a widziałem wpis typu:

/index.php?page=404 200 OK

Problem polegał na tym, że widząc informację o błędzie, w logu serwera www zapisywała się informacja, że nie był to błąd.
Musiałem zastosować małą sztuczkę. W httpd.conf ustawiłem:

ErrorDocument 404 /404.php

Czyli plik inny aniżeli jeden spośród stron dynamicznych ładowanych z contentu. Jego źródło wygląda następująco (tylko 2 linijki):

header(”HTTP/1.0 404 Not Found”);
echo file_get_contents(”/index.php?page=404″);

Czyli najpierw wysyłam do serwera www nagłówek z kodem 404 Not Found, a następnie wyświetlam treść strony, do której poprzednio prowadziła użytownika aplikacja CMS.
Dzięki tej sztuczce w logach apache’a mamy wpis

/index.php?page=NieMaTakiejStrony 404 -

Czyli użytkownik widzi informację o nieznalezieniu strony, a w logach apache’a zapisuje się info o błędzie strony.

Po takim tricku jesteśmy szczęśliwi.

Poniżej zamieszczam listę kodów błędów - napewno komuś się przyda.

Successful Client Requests
200 - OK
201 - Created
202 - Accepted
203 - Non-Authorative Information
204 - No Content
205 - Reset Content
206 - Partial Content

Client Request Redirected
300 - Multiple Choices
301 - Moved Permanently
302 - Moved Temporarily
303 - See Other
304 - Not Modified
305 - Use Proxy

Client Request Errors
400 - Bad Request
401 - Authorization Required
402 - Payment Required (not used yet)
403 - Forbidden
404 - Not Found
405 - Method Not Allowed
406 - Not Acceptable (encoding)
407 - Proxy Authentication Required
408 - Request Timed Out
409 - Conflicting Request
410 - Gone
411 - Content Length Required
412 - Precondition Failed
413 - Request Entity Too Long
414 - Request URI Too Long
415 - Unsupported Media Type

Server Errors
500 - Internal Server Error
501 - Not Implemented
502 - Bad Gateway
503 - Service Unavailable
504 - Gateway Timeout
505 - HTTP Version Not Supported

Czasami się przydaje.

» wpis obejrzano 6569 razy przez 1715 internautów «

Napisany w Apache, Internet | Comments Off

Linki permanentne w WordPress

Autor: Adam Kucza o 10. styczeń 2007

Całe dwa dni zajęło mi szukanie błędu nieprawidłowego działania funkcji linków permanentnych, jaką oferuje najnowszy WordPress 2.0.6.

Aplikacja automatycznie tworzy plik .htaccess w katalogu, w którym została zainstalowana.
Oto treść tego pliku:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

W ustawieniach ogólnych Odnośników wybrałem Oparty na dacie i nazwie publikacji.
Sprawdzam…. nie działa, co robić?

Zarzuciłem google.pl :)

Szukam i szukam, szukam i szukam i tak naprawdę zapomniałem, że samo włączenie RewriteEngine On nic nie daje.

Mam ustawionego Apache’a na domenach wirtualnych, gdzie każda domena ma swój odrębny katalog oraz swój odrębny httpd.conf.

Okazało się, że nie ustawiłem jednej istotnej rzeczy…

Order allow,deny
Allow from all
AllowOverride All

Eh… człowiek uczy się całe życie… :) Powodzenia!

» wpis obejrzano 5011 razy przez 976 internautów «

Napisany w Internet, Wordpress | Comments Off