Forum CMS Made Simple FR

Version complète : [Résolu]Réécriture d'URL erreur 404 Wamp 2.5 ?
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.12
#~ Url du site : localhost
#~ Hébergeur / Soft : ovh
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.12.0 Pohnpei_9910-Fr
#~ Modules Installés:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.5
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.9
#~ ModuleManager: 1.5.8
#~ News: 2.15.1
#~ Search: 1.7.12
#~ ThemeManager: 1.1.8
#~ TinyMCE: 2.9.13
#~ Captcha: 0.5.2
#~ FormBuilder: 0.8.1.1
#~ CGExtensions: 1.46.4
#~ CGSmartImage: 1.18
#~ Gallery: 2.0.2
#~ Information Configuration:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 64000000
#~ url_rewriting: mod_rewrite
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Information Php:
#~ phpversion: 5.5.12
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 32M
#~ upload_max_filesize: 64M
#~ session_save_path: c:/wamp/tmp (0777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Information Serveur:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.6.17
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

je réinstalle tout mon site et bien que tout mes menus apparaissent bien à l'écran... lorsque je clique sur un sous-menu, j'ai une erreur 404 !
Sur l’administration de mes gabarits de menu, lorsque je clique sur "Envoyer" tout semble bien se passer... C'est lorsque je clique sur "appliquer" que j'ai un envoi d'erreur :
Warning: Missing argument 3 for audit(), called in C:\wamp\www\TERROIRS\modules\MenuManager\action.edittemplate.php on line 47 and defined in C:\wamp\www\TERROIRS\lib\page.functions.php on line 435
Voici ces lignes...
sur action.editemplate.php, ligne 47 :
Code :
[== Indéfini ==]
        audit('',$this->GetName().' '.$newtemplate.' gabarit édité');

et sur page.function.php, ligne 435 :
Code :
[== Indéfini ==]
function audit($itemid, $itemname, $action)
{
  if( !isset($action) ) $action = '-- unset --';
  $db = cmsms()->GetDb();

  $userid = 0;
  $username = '';
  $ip_addr = '';
  if( $itemid == '' ) $itemid = -1;

  if (isset($_SESSION["cms_admin_user_id"]))
    {
      $userid = $_SESSION["cms_admin_user_id"];
      $ip_addr = cms_utils::get_real_ip();
    }
  else
    {
      if (isset($_SESSION['login_user_id']))
    {
      $userid = $_SESSION['login_user_id'];
      $username = $_SESSION['login_user_username'];
    }
    }

  if (isset($_SESSION["cms_admin_username"]))
    {
      $username = $_SESSION["cms_admin_username"];
    }

  if (!isset($userid) || $userid == "") {
    $userid = 0;
  }

  $query = "INSERT INTO ".cms_db_prefix()."adminlog (timestamp, user_id, username, item_id, item_name, action, ip_addr) VALUES (?,?,?,?,?,?,?)";
  $db->Execute($query,array(time(),$userid,$username,$itemid,$itemname,$action,$ip_addr));
}

Bien évidemment, je ne vois pas l'erreur...

Une piste ? Merci.

Bonne journée.
Et ce n'est pas tout...

J'ai voulu ajouter une UDT conseillée ici ...
Elle est refusée - cause, Le code entré est invalide... :
Code :
[== Indéfini ==]
if (!function_exists(human_filesize)) {
    function human_filesize($bytes, $decimals = 0) {
        $sz = 'BKMGTP';
        $factor = floor((strlen($bytes) - 1) / 3);
        return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
  }
}
$config = cmsms()->getConfig();
$filename1 = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part1.pdf";
$filename2 = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part2.pdf";
$filename3 = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part3.pdf";
if (file_exists($filename1)){
    echo "Téléchargements";
    echo "<p><a target='_blank' href="/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part1.pdf\">Extraits de l'ouvrage partie 1 (".human_filesize(filesize($filename1)).")</a></p>";
}
if (file_exists($filename2)) {
    echo "<p><a target='_blank' href="/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part2.pdf\">Extraits de l'ouvrage partie 2 (".human_filesize(filesize($filename2)).")</a></p>";
}
if (file_exists($filename3)) {
    echo "<p><a target='_blank' href="/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part3.pdf\">Extraits de l'ouvrage partie 3 (".human_filesize(filesize($filename3)).")</a></p>";
}

Là, j'avoue que je suis un peu dérouté... alors que tout semblait Ok en repartant sur un CMSMS à jour et vierge !?!

...
Merci d'éditer ce dernier message qui n'a rien à faire ici. Un problème à la fois.
Bizarre cette erreur, elle a été corrigée en 1.11.1.
Note que si tu attends la version 2.0, ça se résoudra tout seul, car il n'y aura plus de MenuManager :lol:.
Le problème de l'erreur 404 ne provient pas du cms, mais de la configuration du serveur wamp. Je suis en train d'étudier la question.
[edit]En attendant, enlève le fichier .htacces et modifie le config.php en ajoutant un # devant la ligne #$config['url_rewriting'] = "mod_rewrite";
C'est cela qui génère l'erreur, je cherche à la résoudre.
[/edit]
L'erreur warning ne devrait pas avoir d'influence et n'apparaît plus avec l'affichage des erreurs désactivé.
Ok, le rewrite_module n'est pas activé par défaut.
Clic gauche sur wamp, apache -> modules apache clic sur la flèche de défilement (en bas), trouve rewrite_module et clic pour l'activer.
->Redémarrer les services
Je l'avais écrit dans un des commentaires de la vidéo, mais ce n'est pas suffisant, j'ai ajouté un popup.
Bonjour,

Citation :Ok, le rewrite_module n'est pas activé par défaut.
Merci, c'était cela...
Mea culpa, donc l'erreur vient de moi ; cette subtilité m'atant échappé pendant le suivi de ton tuto.
Désolé. :/

Tout fonctionne maintenant, super ! Big Grin

Ce qui m'a permis de constater quelques "panneaux ! de signalement" dans le défilement des modules apaches, notamment :
-auth_form_module-cache_socache_module-macro_module-proxy_wstunnel_module

et également dans les extensions php :
- php_enchant- php_opcache

Ce qui me donne à méditer sur les éventuelles tuiles qui vont sans doute me tomber sur le nez !? Rolleyes
Qu'en penses-tu ?

--------------------

Citation :Merci d'éditer ce dernier message qui n'a rien à faire ici.
Oui, effectivement, il n'a rien à faire là... toutes mes excuses.
Qu'entends-tu par "éditer". Ceci signifierait qu'il y a moyen de le supprimer du post ou plutôt de le réécrire dans un nouveau post ?

Bonne journée
Hem ! Hem ! ...

Le problème est revenu !... Sad

J'ai donc enlevé le fichier htaccess et ajouté un "#" devant "$config['url_rewriting'] = 'mod_rewrite';" dans config.php ...

Et ça fonctionne.

Mais tout cela ne me dit rien de bon ! Je pense à la mise en ligne prochaine ! ... Rolleyes
Pour éditer le message -> modifier, puis supprimer le contenu, en ne laissant qu'un [edit].
Pour tes panneaux de signalement : http://forum.wampserver.com/read.php?1,128133
Citation :Le problème est revenu
Hein ! Tu ne peux de nouveau plus aller à une autre page que index.php avec le rewrite_module activé ?

Fais une vérification des points suivants : http://forum.wampserver.com/read.php?1,88043
Super... pour les modules Apache...
Citation :Pour tes panneaux de signalement : http://forum.wampserver.com/read.php?1,128133
En revanche, recherche infructueuse pour les extensions PHP...

Citation :Fais une vérification des points suivants : http://forum.wampserver.com/read.php?1,88043

J'ai fait les vérifications... à priori, pas de problème...

-------------------
Citation :Hein ! Tu ne peux de nouveau plus aller à une autre page que index.php avec le rewrite_module activé ?

Si !... ça marche ! mais avec ces modifications que tu m'avais conseillées :

Fichier htaccess enlevé et j'ai ajouté un "#" devant "$config['url_rewriting'] = 'mod_rewrite';" dans config.php ...

Voilà où j'en suis à cette heure...
Merci
Un peu de recherche et tu aurais trouvé avec ces mots clés : php_enchant wamp.
Je pense que de toutes façons, tu n'auras pas besoin de ces modules.
Citation :Si !... ça marche ! mais avec ces modifications que tu m'avais conseillées :

Fichier htaccess enlevé et j'ai ajouté un "#" devant "$config['url_rewriting'] = 'mod_rewrite';" dans config.php ...
Non, avec ces modifications, tu n'es plus en mode rewriting (plus d'urls propres). Je ne sais pas ce que tu as pu faire, mais je n'arrive pas à reproduire ton problème.
Je voudrais que tu réessayes sans les modifs (donc avec .htaccess et "mod_rewrite") en vérifiant bien que le module_rewrite php est activé dans wamp. Vide le cache du cms et du navigateur.
Citation :Je voudrais que tu réessayes sans les modifs (donc avec .htaccess et "mod_rewrite") en vérifiant bien que le module_rewrite php est activé dans wamp. Vide le cache du cms et du navigateur.
Bon... eh! bien, voilà...
J'ai tout remis en place : .htaccess et config.php ; module_rewrite est activé... le cache cms vidé et celui du navigateur...
Et c'est reparti pour un tour :
J'ai droit à ma page d'accueil avec tous les menus et sous-menus accessibles mais ERREUR lorsque je clique sur n’importe lequel d’entre eux !!!
avec ce message :
Citation :Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.
Apache/2.4.9 (Win64) PHP/5.5.12 Server at terroirs Port 80

Et à tout hasard... Lorsque je passe la souris sur un lien, j'ai bien en bas de Firefox une url propre qui s'affiche dans une bulle ... et d'autre part, si ça peut aider : la barre d'adresse m'indique : http://nom_du_site/ et pas localhost/...

Voilà Rolleyes
Normal que ça n'affiche pas localhost puisque tu as créé un virtualHost terroirs77.
Si tu as un internal server error, c'est généralement ton fichier .htaccess. Colle-le ici, ainsi que \wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf, C:\Windows\System32\drivers\etc\hosts et config.php.
Citation :More information about this error may be available in the server error log.
Apache/2.4.9 (Win64) PHP/5.5.12 Server at terroirs Port 80
Les logs serveur se trouvent dans wamp/logs. Toujours intéressant pour trouver les erreurs, merci d'y faire un tour.
Server at terroirs : pas terroirs77 ?
J'ai réussi à reproduire ton erreur. C'est effectivement l'.htaccess. Je parie une sculpture que tu as écrit ceci : RewriteBase /terroirs77.
En fait, cette commande indique que le cms est dans un sous-dossier de la racine du serveur. Ce serait le cas si tu n'avais pas créé de VirtualHost, car ton Nameserveur serait alors localhost, qui a sa racine à wamp/www. Comme le NameServeur terroirs77 a sa racine dans wamp/www/terroirs77, tu reçois une internal server error puisqu'il cherche le dossier wamp/www/terroirs77/terroirs77.
Modifie la commande en RewriteBase / ou commente la ligne et tout sera nickel Smile
Bonjour,

Bingo !!!! Heu... donc, j'ai paumé une sculpture !?

J'ai commenté la ligne dans l'.htaccess :
Code :
[== Indéfini ==]
Options +FollowSymLinks
RewriteEngine on
#RewriteBase /TERROIRS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Et c'est nickel !
(au fait... ce n'est plus terroirs77 mais TERROIRS).
J'aurais préféré réécrire la bonne commande en Rewritebase... mais la logique m'échappe depuis une bonne heure Rolleyes !

Citation :En fait, cette commande indique que le cms est dans un sous-dossier de la racine du serveur. Ce serait le cas si tu n'avais pas créé de VirtualHost, car ton Nameserveur serait alors localhost, qui a sa racine à wamp/www. Comme le NameServeur TERROIRS a sa racine dans wamp/www/TERROIRS, tu reçois une internal server error puisqu'il cherche le dossier wamp/www/TERROIRS/TERROIRS.

J'ai bien compris la démonstration mais la connexion (dans ma "tête") ne se fait pas...

Code :
[== Indéfini ==]
Fichier .htaccess :

Options +FollowSymLinks
RewriteEngine on
RewriteBase /TERROIRS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

------------------------------

extrait du Fichier httpd-vhosts.conf :

# Site TERROIRS.

<VirtualHost *:80>
  DocumentRoot "C:/wamp/www/TERROIRS"
  ServerName TERROIRS
  ServerAlias www.TERROIRS
  <Directory  "C:/wamp/www/TERROIRS/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>


-------------------------------

extrait du Fichier hosts :

# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost
127.0.0.1                   activate.adobe.com
127.0.0.1                   practivate.adobe.com
127.0.0.1                   lmlicenses.wip4.adobe.com
127.0.0.1                   lm.licenses.adobe.com

127.0.0.1       localhost
127.0.0.1       TERROIRS
127.0.0.1       lesArtsDuCoin
127.0.0.1       terroirs77
127.0.0.1       StCyr
::1 localhost
::1 lesArtsDuCoin
::1 TERROIRS
::1 terroirs77
::1 StCyr

-------------------------------

Fichier config.php

<?php
# CMS Made Simple - Fichier de configuration
# Documentation : /doc/CMSMS_config_reference.pdf
#
$config['dbms'] = 'mysqli';
$config['db_hostname'] = 'localhost';
$config['db_username'] = 'root';
$config['db_password'] = '';
$config['db_name'] = 'terroirs2015';
$config['db_prefix'] = 'cms_';
$config['timezone'] = 'Europe/Paris';
$config['url_rewriting'] = 'mod_rewrite';
?>

...
un truc m'échappe que j'ai devant les yeux ...
La directive RewriteBase (terme exact et non pas commande comme je l'avais écrit) n'est nécessaire que si on utilise le module mod_rewrite, et encore sous certaines conditions. Avec l'utilisation des hôtes virtuels (obligatoires depuis Wamp 2.5 et d'office sur la plupart des hébergeurs en ligne : lire attentivement l'introduction de ce document), cette directive ne devrait jamais être utilisée. En gros, cette directive ne te sera jamais nécessaire à moins de créer un autre site dans un site et ne pas configurer l'hôte virtuel autreSite (ex : installer un cms dans www/TERROIRS/autreSite).

Remplace le mot nameServeur dans mon explication par le mot correct : ServerName.
Regarde attentivement ton httpd-vhosts.conf, en particulier les lignes DocumentRoot. Elles indiquent la racine principale de l'arborescence des documents visible depuis Internet.
Si tu ajoutes RewriteBase /TERROIRS dans un .htaccess situé dans C:/wamp/www/TERROIRS, cette directive va indiquer au module mod_rewrite qu'il doit utiliser les documents situés dans C:/wamp/www/TERROIRS/TERROIRS pour la réécriture d'URL, dossier qui n'existe pas, et créer ainsi une erreur.
>Avec l'utilisation des hôtes virtuels (obligatoires depuis wamp 2.5)
petite précision avec un W(Windows)AMP ou un L(Linux)AMP
c'est surtout depuis apache 2.4.x qu'il est obligatoire d'utiliser VirtualHost, mais c'était possible et conseillé avec apache 2.2
Merci de cette précision Jean-Claude Smile
@Jean-Claude Ravi
Pourrais-tu éditer le titre de ton message : [Résolu]Réécriture d'URL erreur 404 Wamp 2.5 ?
Citation :Si tu ajoutes RewriteBase /TERROIRS dans un .htaccess situé dans C:/wamp/www/TERROIRS, cette directive va indiquer au module mod_rewrite qu'il doit utiliser les documents situés dans C:/wamp/www/TERROIRS/TERROIRS pour la réécriture d'URL, dossier qui n'existe pas, et créer ainsi une erreur.
Oui... j'avais bien compris cette explication. En revanche je m'obstinais sur le "RewriteBase" de l'.htaccess dont j'avais compris qu'il était indispensable. Je tourne donc en boucle depuis 6 heures du matin.
Citation :En gros, cette directive ne te sera jamais nécessaire à moins de créer un autre site dans un site et ne pas configurer l'hôte virtuel autreSite (ex : installer un cms dans www/TERROIRS/autreSite).
Donc, j'abandonne cette directive qui ne me sert à rien. Smile
Bon, en même temps j'ai lu tous les doc en lien sur ce post... et "normalement" je devrais avoir acquis quelques notions de plus !? Rolleyes
Je pose [résolu) ou bien je suis loin du compte ?

Un très grand merci à vous pour toutes ces précisions.

Bien cordialement
Tu es encore très, très loin du compte, tout comme moi, pour maîtriser un serveur web, mais que cela ne t'empêche pas de clôturer le post en modifiant le titre comme demandé dans mon message précédent.
Je t'ai trouvé un superbe tuto en français pour mieux comprendre les bases fondamentales obligatoires afin de t'y retrouver dans le monde du développement web.
Ah ! merci je regarde ça... dès que j'ai un peu de temps.

Merci... sympa Big Grin Big Grin
Bonjour
Le problème de l'erreur 404 ne provient pas du cms, mais de la configuration du serveur wamp.
Heureusement, vous avez résolu le problème
Merci pour cette précision... Wink