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.


Статиите на български се коментират на български, с кирилица. Статиите на английски — с латиница на английски.
Обидни коментари, нападки и всякакви несъдържателни текстове не стигат до публикация.
Преценете дали връщане на обсъждането на тема отпреди година и повече има смисъл.
Коментарите имат същите авторски права като статиите и са с препратка към страница, ако е дадено име и URL.
Статиите изразяват личната ми позиция и не ангажират никого. Всички коментари подлежат на одобрение от мен.
Накратко — грамотно, културно и доброжелателно написаните коментари се публикуват при първа възможност.
Другите дори не ги чета, не си правете труда :)
С тези уточнения, радвам се на вашите мнения!
 

Bulgaria Property News
Web design templates
seo india
Studio Progettazione Immagine
Cheap cigarettes

Фотоблог

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

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

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

perdolitical manager good job trachilic
money cash casinos