2015-06-17 4 views
0

Я пытаюсь настроить наш старый сайт OSCommerce на моей локальной машине. Я следовал these instructions, но при попытке открыть сайт локально я получаю несколько ошибок.Перемещение OSCommerce на локальный сервер

Я использую osCommerce 2.2-MS2. Моя локальная версия PHP - 5.5.9, а удаленный сервер, на котором установлен OSC, - это PHP-версия 5.3.2.

Когда я перехожу на http://dev.osc.local/ Я получаю следующую ошибку. Анализировать ошибки (!): Ошибка синтаксиса, неожиданный конец файла в /var/www/osc/index.php на линии 690 линия 690 является последней линией index.php и:

<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> 

Когда я иду на http://dev.osc.local/admin Я получаю FATAL ERROR: register_globals отключен в php.ini, включите его!

Я попытался добавить файл .htaccess в корневую папку и папку администратора, но он не сработал. .htaccess

# $Id: .htaccess 1739 2007-12-20 00:52:16Z hpdl $ 
# 
# This is used with Apache WebServers 
# 
# For this to work, you must include the parameter 'Options' to 
# the AllowOverride configuration 
# 
# Example: 
# 
# <Directory "/usr/local/apache/htdocs"> 
# AllowOverride Options 
# </Directory> 
# 
# 'All' with also work. (This configuration is in the 
# apache/conf/httpd.conf file) 

# The following makes adjustments to the SSL protocol for Internet 
# Explorer browsers 

#<IfModule mod_setenvif.c> 
# <IfDefine SSL> 
# SetEnvIf User-Agent ".*MSIE.*" \ 
# nokeepalive ssl-unclean-shutdown \ 
# downgrade-1.0 force-response-1.0 
# </IfDefine> 
#</IfModule> 

# If Search Engine Friendly URLs do not work, try enabling the 
# following Apache configuration parameter 

# AcceptPathInfo On 

# Fix certain PHP values 
# (commented out by default to prevent errors occuring on certain 
# servers) 

# php_value session.use_trans_sid 0 
php_value register_globals 1 

UPDATE

на основе edmondscommerce ответа я искал <? с регулярным выражением <\?[\s] и нашел более 2000 событий.

Я также обновил application_top.php файл включает:

if (($session_started == true) && (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false)) { 
    extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS); 
} 

Я не уверен, куда поместить этот код в файле, и я не уверен, если он конфликтует с разделом ниже.

// check if sessions are supported, otherwise use the php3 compatible session class 
    if (!function_exists('session_start')) { 
    define('PHP_SESSION_NAME', 'osCsid'); 
    define('PHP_SESSION_PATH', $cookie_path); 
    define('PHP_SESSION_DOMAIN', $cookie_domain); 
    define('PHP_SESSION_SAVE_PATH', SESSION_WRITE_DIRECTORY); 

    include(DIR_WS_CLASSES . 'sessions.php'); 
    } 
+1

Похож на несовместимость с вашей версией PHP. 'register_globals' был удален в PHP 5.4 –

+0

@HoboSapiens, спасибо, что я использую PHP 5.5.9, а удаленный сервер, на котором установлен OSC, - это PHP 5.3.2. Можете ли вы все равно подумать об этом? – Holly

+1

Если ваше приложение требует 'register_globals', и оно больше не существует, то нет, я не могу думать об обходном пути, отличном от установки более низкой версии PHP. И я не сразу знаю, где вы его получите. –

ответ

1

Если посмотреть на недавней копии интернет-магазина вы увидите эту строку в application_top.php, который делает то, что требуется для OSC работать без необходимости регистровых глобалов:

extract($_SESSION, EXTR_OVERWRITE + EXTR_REFS); 

Этот будет извлекать переменные сеанса в фактические переменные $, которые затем могут быть использованы в другом месте.

После этого вам нужно будет прокомментировать или удалить строку, которая фактически проверяет, разрешено ли использование глобальных регистров, чтобы избавиться от вашей ошибки.

Если вы вставляете это в свое приложение сверху, то оно должно работать или, по крайней мере, решать большинство ваших проблем.

Другая ошибка, возможно, связана с отключением открытых коротких тегов PHP. Ваш лучший выбор здесь - выследить и удалить стили PHP-тегов и заменить их соответствующими <?php тегами

+0

спасибо, но это не помогло, но я не понимаю, как именно применить эту строку кода. См. Обновление к моему вопросу выше. Я нашел более 2000 записей ' Holly

+0

. Ищите его, за которым следует пробел – edmondscommerce

+0

Я искал его с пробелом, т. Е.' <\? [\ s] ' – Holly

Смежные вопросы