|
|
|
| Помогите пожалуйста решить проблему.
Нужно установить скрипт интернет-магазина Shop-Script.
Установил и настроил всё по отдельности:
Apache HTTP Server 2.0.52 (C:\server\Apache2)
PHP 5.0.3 (C:\server\php)
MySQL 5.0.18-nt (C:\Program Files\MySQL\MySQL Server 5.0)
phpMyAdmin 2.7.0-pl2 (C:\server\www\phpMyAdmin)
По отдельности всё работает хорошо. Всмысле запускается без ошибок и Apache, и PHP с MySQL выводят тестовые странички как положено. phpMyAdmin тоже открывается в браузере без сбоев.
Создал в папке "C:\Program Files\MySQL\MySQL Server 5.0\data" папку "shop" (так просят в инструкции по установке скрипта).
1-й этап инсталляции:
-Адрес базы данных (хост): localhost
-Имя пользователя базы данных: root
-Пароль: root
-Название базы данных: shop
ЖМУ ДАЛЕЕ
2-й этап инсталляции:
-Логин (администратора в магазине): admin
-Пароль: 1234
-Установить демонстрационные данные (товары, покупки и т.д.): ДА
ЖМУ УСТАНОВИТЬ
Через некоторое время выдаёт на странице следующее (ошибка 1-ая):
---------------
Incorrect datetime value: '10/08/2003' for column 'add_time' at row 1 SQL query : insert into SS_discussions (DID, productID, Author, Body, add_time, Topic) values (1,47, 'dsfdsf', 'sdfdsfsd', '10/08/2003', 'sdfsdf').
---------------
При этом в папку "shop" записались файлы с расширением .frm, но установка-то так и не завершилась.
Снова возвращаюсь на первый этап инсталляции, ввожу всё то же самое, жму установить, выдаёт (ошибка 2-ая):
---------------
Table 'ss_system' already exists SQL query : CREATE TABLE SS_system (varName VARCHAR(255) NULL , value VARCHAR(255) NULL ) TYPE=InnoDB
---------------
Даже если папку shop всю очистить, всё-равно будет вылазить 2-ая ошибка. До тех пор, пока не создам новую папку (база данных как я понял), и не введу её в "Название базы данных:", тогда будет один раз снова ошибка номер 1, а затем опять всегда 2-ая. И все эти названия БД где-то сохраняются, даже если удалить папку shop, и снова её создать, сразу вылазиет 2-ая ошибка, ничего не создав в папке (файлов .frm всмысле).
Создаю папку shop2.
Снова устанавливаю, всё то же самое ввожу, но снимаю галочку с "Установить демонстрационные данные".
Жму УСТАНОВИТЬ, записав опять всякие .frm в "shop2", выдаёт страницу (ошибка 3-я):
---------------
Field 'affiliateID' doesn't have a default value SQL query : insert into SS_customers (Login, cust_password, Email, first_name, last_name, subscribed4news, custgroupID, addressID, reg_datetime, CID ) values ('admin','MTIzNA==', '-', '-', '-', 0, NULL, NULL, '2006-02-12 17:59:30', NULL )
---------------
По второму и следующих разах с этой же папкой снова выдаёт 2-ую ошибку.
Сам скрипт магазина точно рабочий, на ДЕНВЕРе его уже устанавливали (не я) и успешно.
Конфиги (привожу основные параметры, которые я мог задеть):
Apache HTTP Server 2.0.52 (httpd.conf)
ServerRoot "C:/server/Apache2"
ServerAdmin localhost@localhost
ServerName localhost:80
DocumentRoot "C:/server/Apache2/htdocs"
DirectoryIndex index.html index.html.var index.php
AddDefaultCharset WINDOWS-1251
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "c:/server/www"
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<Directory "C:/server/php">
Options ExecCGI
</Directory>
ScriptAlias "/php_dir/" "C:/server/php/"
Action application/x-httpd-php "/php_dir/php-cgi.exe"
PHP 5.0.3 (php.ini в папке Windows)
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
register_globals = Off
register_long_arrays = Off
extension_dir = "./ext/"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
MySQL 5.0.18-nt (My.ini)
[client]
port=3306
[mysql]
default-character-set=latin1
#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#*** INNODB Specific options ***
innodb_data_home_dir="C:/MySQL Datafiles/"
phpMyAdmin 2.7.0-pl2 (config.inc.php - файла этого сначала небыло, был только config.default.php, сделал его копию, и
переименовал в config.inc.php, вот в нём и пробовал тоже чего-то менять, из-под AceHTML 6 Pro)
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/';
$cfg['PmaNoRelation_DisableWarning'] = FALSE;
$cfg['blowfish_secret'] = '';
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'root';
$cfg['Servers'][$i]['only_db'] = '';
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['pmadb'] = '';
#и т.д., дальше не лез. | |
|
|
|
|
|
|
|
для: GetLow
(12.02.2006 в 17:05)
| | А у вас в качетсве таблицы по умолчанию установлена InnoDB, вы сможете только заголовки уничтожить, а сами таблицы нужно уничтожать SQL-запросом, так как они помещаются в единое табличное пространство. Поищите в коде 0/08/2003 - это не типичная форма записи даты для MySQL. Вы при установки MySQL InnoDB вместо MyISAM в качестве таблицы по умолчанию с умыслом выбирали или случайно? | |
|
|
|
|
|
|
|
для: cheops
(12.02.2006 в 19:09)
| | cheops Нет, InnoDB не трогал, по умолчанию. | |
|
|
|
|
|
|
|
для: GetLow
(12.02.2006 в 19:20)
| | В том и дело, что у вас выбран тип InnoDB, поэтому вы не можете удалить таблицу вручную из каталога данных - это возможно только в случае MyISAM. Разница в них не большая в вашем случае (InnoDB медленее в несколько раз, но надёжнее при больших объёмах), но все таблицы InnoDB хранятся в едином табличном пространстве (в одном файле то есть). | |
|
|
|
|
|
|
|
для: cheops
(12.02.2006 в 19:09)
| | Насчёт не типичной формы записи.
В установочных файлах скрипта в папке "core_functions" есть файлик такой, "datetime_functions.php". Я в PHP не разбираюсь, но вроде бы там что-то такое предусмотрено, вот его код:
<?php
/*****************************************************************************
* *
* Shop-Script PREMIUM *
* Copyright (c) 2005 WebAsyst LLC. All rights reserved. *
* *
*****************************************************************************/
// *****************************************************************************
// Purpose gets current date time in database format
// Inputs nothing
// Remarks
// Returns date base specific date time
function get_current_time() // gets current date and time as a string in MySQL format
{
return strftime("%Y-%m-%d %H:%M:%S", time());
}
//converts datetime provided as a string into a standard form (date format is defined in store settings)
function dtConvertToStandartForm( $datetime, $showtime = 0 )
{
// 2004-12-30 13:25:41
$array = explode( " ", $datetime );
$date = $array[0];
$time = $array[1];
$dateArray = explode( "-", $date );
$day = $dateArray[2];
$month = $dateArray[1];
$year = $dateArray[0];
if (!strcmp(_getSettingOptionValue("CONF_DATE_FORMAT"), "MM/DD/YYYY"))
$date = $month."/".$day."/".$year;
else
$date = $day.".".$month.".".$year;
if ($showtime == 1)
return $date." ".$time;
else
return $date;
}
//converts datetime provided as a string into an array
function dtGetParsedDateTime( $datetime )
{
// 2004-12-30 13:25:41 - MySQL database datetime format
$array = explode( " ", $datetime ); //divide date and time
$date = $array[0];
$time = $array[1];
$dateArray = explode( "-", $date );
return array(
"day" => (int)$dateArray[2],
"month" => (int)$dateArray[1],
"year" => (int)$dateArray[0]
);
}
//$dt is a datetime string in MySQL default format (e.g. 2005-12-25 23:59:59)
//this functions converts it to format selected in the administrative mode
function format_datetime($dt)
{
$dformat = (!strcmp(CONF_DATE_FORMAT,"DD.MM.YYYY")) ? "d.m.Y H:i:s" : "m/d/Y h:i:s A";
$a = @date($dformat, strtotime($dt));
return $a;
}
?> | |
|
|
|
|
|
|
|
для: GetLow
(12.02.2006 в 19:25)
| | Ну это практически ничего нам не даст, нужен файл, который производить установку.
PS Код лучше прикреплять в виде файла, а то тема очень быстро разрастётся. | |
|
|
|
|
|
|
|
для: cheops
(13.02.2006 в 02:50)
| | в архиве:
install.php - от скрипта shop-script
my.ini - конфиг mysql
php.ini - конфиг php
httpd.conf - конфиг apache2
config.inc.php - конфиг phpmyadmin
В файле "demo_database.sql", который упоминается в "install.php", действительно есть такие строчки:
---------
insert into DISCUSSIONS_TABLE(DID, productID, Author, Body, add_time, Topic) values(1, 47, 'dsfdsf', 'sdfdsfsd', '10/08/2003', 'sdfsdf');
---------
Но если устранить вторую ошибку, то всё-равно я так понял третья останется.
Причём откуда берутся эти данные (из 3-й ошибки: values ('admin','MTIzNA==', '-', '-', '-', 0, NULL, NULL, '2006-02-12 17:59:30', NULL)) я так и не нашёл. | |
|
|
|
|
|
|
|
для: GetLow
(13.02.2006 в 07:38)
| | Я думаю необходимо обратиться к разработчикам или попробовать развернуть скрипт на MySQL версии пониже, скажем 4.0.x... Код здорово перекрещен и по одному файлу сказать что-то трудно, вполне вероятно, что ошибку вызывает не этот скрипт, а какой-то другой, который вызывается из install.php. | |
|
|
|
|