| Joomla в DOM.BG |
|
|
|
| Автор plamen5rov | |
| 08 февруари 2006 | |
|
Тексът по-долу е публикуван от гост на форума с ник dom.BG и хвръля доста светлина по проблемите на инсталирането на Джумла на сървърите на въпросната хостинг-компания. Оригиналния постинг по темата можете да прочетете на http://www.joomla-bg.com/index.php?option=com_smf&Itemid=44&?topic=2460.msg6364;topicseen#msg6364 Здравейте,Joomla има два проблема при инсталиране на хостинг в dom.BG, ето какви са те, причините и как да се решат. 0. Факти а) PHP се изпълнява като CGI б) safe_mode е ON, но няма влияние поради горния факт в) от а) следва, че всеки скрипт може безпроблемно да създава, променя и трие файлове, тъй като се изпълнява с привилегиите на потребителя. Не е необходимо да се променят на 777 и други подобни. 1. Грешка Internal 500 error при някои дейности след инсталация (инсталирането е безпроблемно, ако се следват стъпките и се въвежда правилна информация в съответните полета). Причина: факт а) и следния ред от файл includes/joomla.php: header( 'HTTP/1.1 301 Moved Permanently' ); който би работил само, ако PHP е модул на уеб сървъра. Ако се изпълнява като CGI коректното е: header( 'Status: 301 Moved Permanently' ); Решение: по един от трите начина да се замени реда от файл includes/joomla.php: header( 'HTTP/1.1 301 Moved Permanently' ); с: а) header( 'Status: 301 Moved Permanently' ); б) да се коментира или изтрие // header( 'HTTP/1.1 301 Moved Permanently' ); (този ред не е осоебно важен, при Location: статусът по подразбиране е "302 Moved Temporarily", което е със същия ефект.) в) header( (php_sapi_name()=='cgi'?'Status:':'HTTP/1.1').' 301 Moved Permanently' ); (това е коректен код, за да работи Joomla с PHP, работещо по който и да е от двата начина - модул или CGI. Не са го направили така, тъй като от даден момент PHP функцията header() сменя "HTTP/x.x" със "Status:", но по този начин правят несъвместим Joomla с някои версии PHP). 2. Грешка Failed to create directory "..." при инсталиране на нов компонент. Причина: бъг в Joomla, водещ до "//" на края на път. Във файла administrator/includes/admin.php функцията mosMakePath при $path='' добавя излишно наклонена черта към $base и се получава път с две наклонени черти, маха се едната, остава другата и mkdir() в някои версии на PHP връща грешка (в някои версии работи). Решение: да се замени проблемния ред от файл administrator/includes/admin.php: $path .= $parts[$i] . '/'; с: $path .= $parts[$i] . ($parts[$i] != ''?'/':''); (когато $parts[$i] е празно да не добавя '/') ------- И двата проблема са в Joomla и явно не са забелязани, тъй като на някои конфигурации и версии на PHP не се проявяват. И така, накратко, за да работи коректно Joomla, най-лесно трябва: 1. да се коригира във файл includes/joomla.php реда header( 'HTTP/1.1 301 Moved Permanently' ); с header( (php_sapi_name()=='cgi'?'Status:':'HTTP/1.1').' 301 Moved Permanently' ); 2. да се коригира във файл administrator/includes/admin.php реда $path .= $parts[$i] . '/'; с $path .= $parts[$i] . ($parts[$i] != ''?'/':''); Успех. |
| Следваща > |
|---|
| Начало |
| Помощ |
| Статии |
| Въпроси |
| Инсталиране |
| Разработки |
| Търсене |
| За сървъра |
| Обща помощ |
| Модули |
| Ботове |
| Менюта |