a direct publicism site
personal pages of Yasen Pramatarov

Wordpress на dom.bg


Преди време Владо Герджиков имаше проблеми с доставчика на хостинг “dom.bg”. Понеже и аз съм също там (все още; засега май реших голяма част от проблемите и не ми е чак съвсем некомфортно, та може да остана до края на платения период…), реших да споделя един малък хак за хората с Wordpress.

На dom.bg PHP работи не като модул на уеб-сървъра, а като скрипт през CGI. Причините няма да коментирам - те си знаят защо са решили така. Не зная колега, който ще сложи PHP през CGI на такъв голям сървър, но все едно - това е положението.

Та един от основните проблеми при работата с dom.bg е именно този. Повечето готови системи, писани на PHP, най-често изобщо не правят проверка дали се работи през CGI. Обяснявам си го с предположението, че почти никой не би се сетил, че има публичен хостинг, който да пуска PHP през CGI. Нещо по-“екзотично” като Ruby например може и да се пусне, но пък PHP… Макар да си има модул и за Ruby. :)

При инсталиране на Wordpress на въпросния хостинг всичко минава правилно до момента, в който трябва да заредите сайта си. Тогава се връща грешка 500 (internal server error). Иначе администраторският интерфейс си работи, всички настройки и редактирания - също. Проблемът се появява при зареждане на основния сайт. Логовете на dom.bg не са видими от потребителя, можете да ги изискате с писмо до поддръжката, но в този случай не си правете труда. Ето решението…

Ако инсталирате Wordpress на акаунт към dom.bg (или изобщо някъде, където PHP работи през CGI, отворете файла /wp-includes/functions.php и намерете мястото със следните два реда:

@header(“HTTP/1.1 $header $text”);

@header(“Status: $header $text”);

Във версията, която днес инсталирах (2.0.2 - последната към момента) тези редове са с номера 2170 и 2171. Но с търсене ще ги намерите - единствени във файла са.

Това, което ще реши проблема ви, е закоментирането на първия от тези редове. Сложете коментар (“//”) пред реда, който изпраща HTTP/1.1 заглавка. Първият ред е за PHP като модул, а вторият - за PHP, изпълняван през CGI.

Не зная защо в самия код на Wordpress не са добавили точно на това място една кратка проверка как се изпълнява PHP и след това просто да се изпраща съответния ред. Може би това е възможно решение на бъг в Wordpress, но рядко бъркам и надничам в кода на WP, за да кажа със сигурност дали е бъг и дали трябва да се добави провеерка. Или може да минем само с тоози малък хак за такива “странни” хостинги като родния dom.bg. Ако някой има представа и му се занимава да чете по-подробно кода на WP, нека каже. Ако проверката е удачна, може да пратим на разработчиците поправката. Става дума за ред-два “if-then-else” проверка ;)

Приятно блогване ;)

Обратна връзка (trackback URL) към тази публикация:

http://yasen.lindeas.com/bg/trackback/141


Tags:
11 Март, 2006 - 13:05

 
 

Писане на коментар

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <small>
  • Новите редове и абзаците се оформят автоматично
  • Адресите на уеб-страници и на е-поща автоматично се изобразяват с препратки.
  • Adds typographic refinements.
  • Each email address will be obfuscated in a human readble fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.

Повече за възможностите за форматиране на текста

Cheap cigarettes
Life Insurance Tips
Make Money Fast - Work At Home
helio ocean
Cheap Macs, PCs, LCD TVs etc

Фотоблог

Случайна снимка

Ако сайтът ви е харесал, можете да ме почерпите с
или
през ePay

Скорошни коментари

perdolitical manager good job trachilic
money cash casinos