PDA

Zobacz pełną wersję : Przywracanie po akeebie



Szymad
29-11-2012, 10:43
Witam,
zainstalowałem joomlę na localhoscie (serwer Apache z XAMPPa, ściągałem wczoraj). Zrobiłem przywrócenie z Akeeby, po czym strona nie chodziła.
Strona znajduje się tutaj:


C:\xampp\htdocs\joomla1

z poziomu adresu jest to


localhost/joomla1/

Ponieważ nie działała mi witryna, wymieniłem wartości. Ustawiłem

public $live_site = '/joomla1/'; w pliku configuration.php

Przekształciłem funkcje:

public static function clean($path, $ds = DIRECTORY_SEPARATOR) {
$path = trim($path);
if (empty($path)) {
$path = JPATH_ROOT;
} else {
// Remove double slashes and backslashes and convert all slashes and backslashes to DIRECTORY_SEPARATOR
$path = preg_replace('#[/\\\\]+#', $ds, $path);
}
return $path;
}

na


public static function clean($path, $ds = DIRECTORY_SEPARATOR) {
$path = trim($path);
if (empty($path)) {
$path = '/';
} else {
// Remove double slashes and backslashes and convert all slashes and backslashes to DIRECTORY_SEPARATOR
$path = preg_replace('#[/\\\\]+#', $ds, $path);
}
//echo $path."<br />";//don't echo path
return $path; }


oraz


public static function check($path, $ds = DIRECTORY_SEPARATOR) {
if (strpos($path, '..') !== false) {
// Don't translate JError::raiseError(20, 'JPath::check Use of relative paths not permitted');
jexit();
}
$path = JPath::clean($path);
if ((JPATH_ROOT != '') && strpos($path, JPath::clean(JPATH_ROOT)) !== 0) {
// Don't translate
JError::raiseError(20, 'JPath::check Snooping out of bounds @ ' . $path);
jexit();
}
return $path;
}

na


public static function check($path, $ds = DIRECTORY_SEPARATOR) {
if (strpos($path, '..') !== false) {
// Don't translate
JError::raiseError(20, 'JPath::check Use of relative paths not permitted');
jexit(); }
/** if (strpos($path, JPath::clean(JPATH_ROOT)) !== 0) {należy zmienić na:if (strpos($path, JPath::clean('/')) !== 0) {
*/
$path = JPath::clean($path);
$posSlash = strpos($path, JPath::clean('/'));
if ($posSlash !== 0) {
if($posSlash==2){
echo "<strong>Warning: </strong>Your website is running on Windows on localhost, because JPATH_ROOT begins with Windows style address: <strong>".PATH_ROOT."</strong>";
}else{ // Don't translate
JError::raiseError(20, 'JPath::check Snooping out of bounds @ ' . $path);
jexit(); }
//echo "JPATH_ROOT = " . JPATH_ROOT .", value " . strpos($path, JPath::clean('/')); }
return $path;
}

No i strona ruszyła, ale nie zaplecze. W zapleczu jest problem z adresem, ponieważ atrybut akcji forumularza logowania odnosi się do /joomla1/index.php, a nie do /joomla1/admnistrator/index.php

Jak więc to naprawić?

trzepiz
29-11-2012, 10:51
w pliku configuration.php
Przekształciłem funkcje:
Nie wiem w jakim pliku coś zmieniałeś - ale na pewno nie w configuration.php.
Poza tym nie ma potrzeby zmieniać $path na localhost

Rozwiązaniem problemu może być dostosowanie ustawień XAMPP do wymagań Joomla! lub pobranie JAMP (http://jamp.joomla.pl)(który wszystkie je spełnia). Możesz pobrać testową wersję JAMP i sprawdzić czy wszystko będzie poprawnie działało.

Szymad
29-11-2012, 11:00
Zmieniłem konfigurację w configuration.php, natomiast funkcje zmieniałem tutaj (przyjmij / jako miejsce gdzie jest joomla):

/libraries/joomla/filesystem/path.php

$path zmieniłem na / czyli tam, gdzie jest localhost. Przyrócenie z $path = '/'; na $path = JPATH_ROOT; nie pomaga (chodzi o metodę statyczną, publiczną o nazwie "clean" w klasie JPath, przypisanie wartości do $path znajdziesz w okolicach linii 210 w pliku path.php)

Zaplecze działało przed przywróceniem z Akeeby.

Szymad
29-11-2012, 11:46
Zauważyłem dodatkowo, że przekierowuje mnie z adresu localhost/joomla/ na www.localhost/joomla Nie ma tego ani w .htaccess ani web.config. Jak to zmienić?

Karol99
29-11-2012, 17:08
Zamiast wozić się z modyfikacjami J!, które potem przy przenoszeniu strony na serwer trzeba będzie odkręcać, lepiej pójdź za radą trzepiza - JAMP (albo Bitnami - zupełnie za free)