Solving File Upload Corruption Issues with Ubuntu 10.04

Ostatnio zaktualizowaliśmy serwer do najnowszej wersji Ubuntu Lucid Lynx 10.04 LTS. Wszystko śmiga świetnie jednak wystąpił problem z plikami przesyłanymi na serwer, które po przesłaniu przez HTTP uszkadzały się (najlepiej było to widoczne na grafikach, które posiadały „skazy”). Przez kilka dni nie mogliśmy znaleźć przyczyny tego problemu, szukaliśmy praktycznie wszędzie. Okazało się iż problem spowodowany był przez BUG w bibliotece apache’a (libapache2-mod-fcgid 1:2.3.4-2).

Rozwiązaniem w chwili obecnej jest downgrade do starszej wersji biblioteki (1:2.2-1).

Poniżej przedstawiam kroki jakie trzeba wykonać by to zrobić:

Nowy serwer

Od 6 marca jesteśmy w posiadaniu nowego serwera, który jak każdy nowy serwer sprawia trochę kłopotów :) (kochane kłopoty). Wszystko zaczęło się od tego że po wykupieniu root serwera nie otrzymałem do niego dostępu, czekałem na email dobry tydzień. W międzyczasie posłałem kilka rozpaczliwych emaili do serwerowni ale bez odzewu, dopiero email przesłany przez stronę www dał rezultat w postaci odpowiedzi, która zawierała informację, że na razie serwer nie zostanie udostępniony ponieważ są kłopoty z podpięciem go do power panelu (taki webowy system zarządzania). W końcu wpadłem na podstępny pomysł by wyłudzić hasło do serwera z zastrzeżeniem że Power Panel nie jest mi potrzebny. Udało się to dopiero po przefaksowaniu ksera dowodu osobistego :D

WebServ instalacja

W poprzedniej części dowiedzieliśmy się, że do postawienia strony potrzebny jest nam serwer. Aby nie wydawać pieniędzy najlepiej postawić serwer na webserwie, którego konfigurację opiszę poniżej.

Do rozpoczęcia pracy potrzebna jest nam instalka Webserva i trochę czasu. Webserva instalujemy w domyślnej konfiguracji, jedyne co musimy wybrać to wersja PHP oraz MySQL. Robimy to tak jak przedstawiono na obrazku:

webserv1-300x233

Lighttpd – testowy serwer www

Jak pewnie wiecie od rana dzisiaj serwer zamulał strasznie. Było to spowodowane wykorzystaniem przez apachea całej dostępnej pamięci RAM. Przyczyna problemu jest nieznana jednak podejrzewam że ma to związek z nieoptymalnym skryptem, który może zdestabilizować pracę całego serwera. Niestety jeśli chodzi o apachea takie problemy mogą się powtarzać dlatego postanowiłem zmienić serwer www. Ogólnie przetestowałem kilka opcji (nginx oraz lighttpd). Oba rozwiązania są szybkie i wydajne jednak lighttpd bardziej przypadł mi do gustu.