Я пытаюсь настроить наш старый сайт 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');
}
Похож на несовместимость с вашей версией PHP. 'register_globals' был удален в PHP 5.4 –
@HoboSapiens, спасибо, что я использую PHP 5.5.9, а удаленный сервер, на котором установлен OSC, - это PHP 5.3.2. Можете ли вы все равно подумать об этом? – Holly
Если ваше приложение требует 'register_globals', и оно больше не существует, то нет, я не могу думать об обходном пути, отличном от установки более низкой версии PHP. И я не сразу знаю, где вы его получите. –