Jump to content
Sign in to follow this  
kzone

Installation de Prestashop sous Linux

Recommended Posts

bonjour à tous,

Après avoir configurer des nouveaux modules sous Window, nous avons voulu basculer ces mêmes modules sous un *nux (un Debian) et il est apparu quelques problèmes de reconnaissance de varaible et de localisation de fichiers.

premièrement il existe une différence dans la lecture des majuscules et minuscules entre les 2 systèmes , avec par exemple "servicesav" et "Servicesav" qui sont 2 mêmes fichiers pour window (lors de parsage de répertoire par exemple avec un readdir) ... il n'est pas possible d'ailleurs d'avoir ces 2 fichiers dans un même répertoire !!! ;-)

Mais sous Linux ce sont bien 2 fichiers distincts et cela pose des problèmes lors de l'utilisation des recherches de fichiers comme par exemple autoload() (voir ficher config.inc.php)

par exemple :
fonctionne sous windows :

global $smarty;
global $cookie;

include('../../config/config.inc.php');
include('../../header.php');


if (!$cookie->isLogged())
   Tools::redirect('authentication.php?back=my-account.php');


$customer = new Customer($cookie->id_customer);
$contact = new ServiceContact();



l'instanciation d'un objet ServiceContact est tout à fait possible sans devoir indiquer le chemin du fichier de description de la classe ; mais sous Linux ce fichier n'est pas trouvé ...
Selon la définition de la fonction autoload du config.ini.php :

if (!class_exists($className, false))
       require_once(dirname(__FILE__).'/../classes/'.$className.'.php');



... et il cherche donc dans le répertoire classes le fichier ServiceContact.php (noter les majuscules) ...sous windows si le chier se nomme servicecontact.php ou ServiceContact.php ... pas de problème c'est le même pour lui ...

Mais pas sous Linux ... :coolsmile:

il faut le préciser à presta :

require_once(_PS_MODULE_DIR_.'servicecontact/servicecontact.php');



Il n'existe aucune documentation concernant le nommage de fichier ce qui devient vite problématique sous Linux car une majuscule fait planter l'application ...

Il existe donc un problème récurent de nommage des fichiers sous linux qui empeche les applications de tourner ...
pour l'instant nous avons un problème concernant l'utilisation d'un objet $customer qui sous Window renvoie bien les valeurs des attributs ($customer->id_gender par ex.) mais sous Linux aucune valeur n'est retournée ...

Comme il n'y a pas d'erreur , juste aucune valeur retournée, il n'existe pas non plus de trace pour trouver à quel endroit chercher ...

quelques conseils si certain on réalisé une install sous un *nux !

Il serait bien d'optimier le code de Presta lors de parsage de répertoire à la recherche de fichier (pour la config , la traduction, ...) pour le sytème Linux et d'indiquer de ne pas tenir compte des "uppercase" ..
merci

++

Share this post


Link to post
Share on other sites

Euh....

Tu rigoles ? :D

J'ai plus de 50 sites tous sous Linux (quelle idée d'aller héberger un site php sous Windows...).

Concernant le nommage de fichier, c'est au développeur de faire attention! Quand tu développe en PHP, c'est pareil!!! Les Majuscules sont importantes!

$coucou != $CouCou;
// Voilà bien 2 variables DIFFERENTES !!



Pour ton problème de "customer", je n'ai pas de soucis sur mes installations et mes modules... Tu as bien uploadé tous les fichiers?

Donc je le répète, c'est au développeur de faire attention à ce qu'il écrit! Si tu veux charger le module "servicecontact" pour tu demandes le module "ServiceContact" ? :)

Ce sont des petites choses qui font partie de la vie sous php (et unix) mais qui deviennent vite un automatisme ;)

Share this post


Link to post
Share on other sites

Tiens autre question du même ordre .... PS Windows différent sous Linux
Pourquoi on a les dates affiché par smarty en anglais sur le serveur Debian alors qu'elles sont en français sur celle de test (EasyPHP sous XP) ?

Y a un paramètre langue sur le serveur qui doit bien être forcement différent... mais lequel et ou le changer ?

Share this post


Link to post
Share on other sites

salut pierre yves ...

non je rigole pas :P

Ben chez moi il y a longtemps que j'ai balancé Windows pour un Ubuntu et un Mandriva ... y'a pas photos !

Mais le fait d'avoir écrit le code sous windows ( :sick: ) et de les passer sous une Debian tel quels me posent quelques petits soucis ...
Mais si tu n'as aucun problème pour tes sites sous linux , cela me rassure ... mais faut que je "débugge" mon code maintenant ! j'ai comme l'impression que c'est un problème de $cookie ...

enfin bon j'espère que je vais m'illuminer assez vite :exclaim: et que l'eureka viendra rapidement
merci

Share this post


Link to post
Share on other sites

n'empeche que cela ne change pas le problème si le client installe sa Presta sous window et que quelque temps après
il décide de basculer sous Linux ..

Il ne sera pas possible de porter tel quel son site et les modifs risquent de ne pas être une partie de plaisir ..
;-)

bien entendu que $coucou et $Coucou ne sont pas les meme en Php ...mais ce n'est pas le problème non plus

concernant ServiceContact avec les majuscule c'est Prestashop qui "impose" cet orthographe dans la syntaxe (il m'a fallu remonter à l'autoload pour voir d'ou venait le problème) ... m'enfin !

Share this post


Link to post
Share on other sites

oui , mais justement pour éviter ce genre de probléme , je n'utilise que des minuscules pour tous mes noms de fichiers
et bien sûr sans espace ;-)

mais bon .. y'a tout de même un couac ... moi peut-etre :coolsmile:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More