Php ne marche pas...

piercemac

Membre actif
22 Juillet 2004
193
9
PACA
Bonsoir,

J'espère ne pas faire de doublons, mais j'ai fait une recherche, sans l'ombre d'une réponse:confused: .
En fait php ne fonctionne pas sur mon mac. Là ou c'est surprenant, c'est qu'il ne fonctionne pas non plus s'il est installé sur le serveur de mes pages perso., alors que dans ce cas, ce n'est pas mon ordi qui execute le script, mais le serveur. Je précises que tout marchait nikel sous PC et que j'ai activé php sur mon mac, sans constater le moindre changement:( .
Je prend un exemple, d'un script qui m'interresse :

fichier : compteur.php
Bloc de code:
<?php
header("content-Type: image/png");
$image = imagecreate(60,20);
// Configuration

$fichier = "nbvisiteur.dat"; // fichier contenant la valeur du compteur
$fond = imagecolorallocate($image,156,207,255); // rvb (rouge,vert,bleu) ici bleu de mon site
$texte = imagecolorallocate($image,0,0,0); // noir
$affichezero = "oui"; //si oui le compteur sera de la forme : 0001 si non : 1

// Programme

// lecture de la derniere valeur
 if(!($lefichier = @fopen($fichier ,"r")))
  {

  if(!($lefichier = @fopen($fichier ,"w")))
   {
       ImageString($image,5,1,0,"erreur",$texte);
       imagepng($image);
       imagedestroy($image);
       exit;
   }

   fclose($lefichier);
   $nbvisiteur = 0000;
  }
 else
  {
   $nbvisiteur = fgets($lefichier, 20);
   fclose($lefichier);
  }

// augmentation du compteur
 $nbvisiteur++;

// ecriture de la valeur
 if(!($lefichier = @fopen($fichier ,"w")))
  {
   ImageString($image,5,2,0,"erreur",$texte);
   imagepng($image);
   imagedestroy($image);
   exit;
  }
 else
  {
   fputs($lefichier ,$nbvisiteur);
   fclose($lefichier);
  }

 if ($affichezero == "oui")
  {$cara = "0";}
 else
  {$cara = " ";}

// creation de l'image (plus d'info sur www.ilovephp.com)
 $phrase = "";
 $i=1;
 while ($i<1000000)
  {
   if ($i>$nbvisiteur) {$phrase .= "$cara";}
   $i = $i * 10;
  }
 $phrase .= "$nbvisiteur";
 ImageString($image,5,4,2,$phrase,$texte);
 imagepng($image);
 imagedestroy($image);
?>

Fichier index.htm (qui appelle compteur.php) :
<html>
<head>
<title>Acceuil-Crypting</title>
</head>

<BODY bgcolor="#99ccff" alink="#000000" link="#000000" vlink="#000000" >
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div align="center"><font face="Arial">Nombre de visites : </font></div>
<div align="center"><img src="compteur.php"></div>
</body>

</html>

Enfin il y a le fichier qui contient le nombre de visites : nbvisiteur.dat

Quand je lance le fichier index (ce qui se passe sur le serveur, et qui donne le même résultat d'alleurs), un carré bleu avec un point d'interrogation dedant s'affiche (comme quand un page ne trouve pas une image). Quand je lance compteur.php, je vois le code dans le navigateur (Safari).

Et c'est pareil pour un autre script de restriction d'acces. Assez embêtant quand c'est le script qui contient les login et les mots de passe et qu'il est affiché (ou affichable) avant d'être executé, et donc ne s'auto-protège pas.

Dans tous les cas, tous mes scripts en php ne fonctionnent pas (sauf celui de restriction d'accès, qui lui ne fonctionne que sur serveur), qu'ils se trouvent distants (sur serveur), ou sur mon ordinateur. Sur mon PC ils fonctionnaient pourtant, sans que le moidre système de serveur soit installé dessus (comme apache).

J'ai beau chercher, essayer de mettre le script entre des bornes html (on sais jamais puisque c'est toujours du html que retourne un serveur), je n'arrives à rien. Désolé si c'est bidon, pourtant j'ai éssayé:rose:

Merci d'avance pour vos réponses:) .
 
iMatthieu a dit:
Salut,

Comment as-tu activé php ? Il y a deux # à enlever dans le fichier /etc/httpd/httpd.conf (loadmodule.. et addmodule...)

Si tu connais pas le terminal (et le superuser root), je te conseillerais plutôt le package d'entropy (pour l'instant le site a l'air de merder)
Merci pour ta réponse:)


Oui j'ai activé le php comme tu l'indiques. En effet je connais assez mal le terminal et je

ne me suis jamais servit du superuser root:siffle: .


Le site ne fonctionne pas pour l'instant comme tu me l'a indique.:(


Mais comment se fait il que ce soit si compliqué d'executer des scripts sous mac (censé

être plus simple que PC:confused: ) alors que sous PC ça fonctionne tout seul sans

aucun package à installer. Puisque le php est executé par le serveur distant qui nous

renvoie alors du html, ce compteur devrait fonctionner lors qu'il se trouve sur les

serveurs de free (compatibles php), ce n'est pas le cas. Lorsque je charge la page index,

c'est comme si le script n'était pas executé.

A propos, peut tu m'indiquer à quoi sert le package que tu m'as indiqué (installation serveur?) ?


Merci pour ton aide.
 
J'avais mal compris, le problème est autre tu ne devrais jamais voir le code source de tes pages php... C'est chez l'hebergeur qu'il faut voir, car que ce soit depuis mac ou pc, les sources seront dispo.

Essaies d'afficher les sources html pour voir si ce point d'intérogation n'est pas une erreur d'encodage (essaies de changer l'encodage dans safari si c'est ça). C'est sûrement parce que tu n'as pas toute ta structure html (head, body, ... et le charset défini)
 
iMatthieu a dit:
J'avais mal compris, le problème est autre tu ne devrais jamais voir le code source de tes pages php... C'est chez l'hebergeur qu'il faut voir, car que ce soit depuis mac ou pc, les sources seront dispo.

Essaies d'afficher les sources html pour voir si ce point d'intérogation n'est pas une erreur d'encodage (essaies de changer l'encodage dans safari si c'est ça). C'est sûrement parce que tu n'as pas toute ta structure html (head, body, ... et le charset défini)

En effet je ne devrais jamais voir le code source sauf si je le demande, mais même sur

mon mac : sur le PC ça marchait bien...le script était executé correctement, qu'il se

trouve sur le HDD ou sur un serveur.


Il se trouves que le problème a légèrement varié (ce qui n'aide pas pour le reconnaitre:()

: j'ai éssayé avec un autre compte toujours chez free, et cette fois le compteur est

visible, le code source n'est plus affiché si on réclame le fichier compteur.php ; mais le

script n'est toujours pas executé : le compteur reste à zéro et le fichier nbvistes.dat n'est

pas incrémenté.


Voici l'adresse du dossier où j'ai placé les trois fichiers du compteur pour tester.

Pourrrais-tu me dire s'il fonctionne avec toi? (si il te préfères, on sais jamais:D )


Sinon, la structure html y est comme indiqué au premier post, sauf pour le charset, je ne

sais pas ce que c'est:siffle: (formatage des touches spéciales du mac?)
 
Merci pour la réponse:)

truk2oof a dit:
dans ton script, a aucun moment on ne change le nombre de visiteur dans le fichier... forcement le compteur n'augmente pas...

Bin, sur mon Pc ce script fonctionnait. Et c'est exactement le même. Je ne connais pas le

php (pas encore:D ) mais cette partie du code (le php a l'air de ressembler au C, que

j'aborde), n'indique t-elle pas justement une incrémentation ? :confused: (pris du 1er

post, fichier compteur.php) :

Bloc de code:
// augmentation du compteur
 $nbvisiteur++;

sinon ton problème pour tester le php en local, si c'est juste pour tester tes pages (pas pour héberger), te fais pas chier, utilise MAMP (mamp.info)

Je regardes ça tout de suite, le temps de le télécharger:up: :D . C'est quand même

dingue pour un système comme Mac OS X, réputé pour sa simplicité, d'être incapable

d'interpréter du php non ?:mouais:
 
Alors :

surtout pas MAMP (grosse daube d'après beaucoup de monde), prend plutôt entropy si tu veux tester tes scripts en local.

Le charset c'est l'encodage que tu utilises, ça se spécifie dans le head (mais ce n'est pas le problème) :
Bloc de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		[B]<meta http-equiv="content-type" content="text/html; charset=utf-8" />[/B]
		<title></title>

	</head>
	<body>

	</body>
</html>
Là je dirais plutôt que ton script n'a pas accès en écriture au nbvistes.dat, tu devrais pouvoir régler ça en écriture pour tous avec ton client ftp (ou chmod 777). Pour tous ne signifie pas les visiteurs de ton site web je te rassure. Essaies un clique droit sur ton fichier puis "accès" ou "propriétés".. qqch dans ce goût
 
Je ne suis pas très fort en matière de serveur:siffle: , mais je constate toutefois que ça ne

fonctionne pas:( . J'ai placé les scripts dans le dossier htdocs, les deux serveurs sont

démarrés, mais que je lance les fichiers du dossier htdocs (ça donne la même chose

qu'avant) ou que je les lances depuis safari avec l'adresse "http://localhost:8889/MAMP/

htdocs/compteur.php" (par exemple, mais j'en ai testé d'autres, même avec le port

8888), cela ne fonctionne pas. Lorsque j'utilise l'adresse "http://localhost:8889/MAMP/

htdocs/compteur.php", safari me retourne "4

5.0.19?*R@)Jw<,¢dbA\.kS>zo=#ÿBad handshake". Il y a un problème : je ne parle pas chinois:D :D )
 
iMatthieu a dit:
Alors :

surtout pas MAMP (grosse daube d'après beaucoup de monde), prend plutôt entropy si tu veux tester tes scripts en local.

Le charset c'est l'encodage que tu utilises, ça se spécifie dans le head (mais ce n'est pas le problème) :
Bloc de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		[B]<meta http-equiv="content-type" content="text/html; charset=utf-8" />[/B]
		<title></title>

	</head>
	<body>

	</body>
</html>
Là je dirais plutôt que ton script n'a pas accès en écriture au nbvistes.dat, tu devrais pouvoir régler ça en écriture pour tous avec ton client ftp (ou chmod 777). Pour tous ne signifie pas les visiteurs de ton site web je te rassure. Essaies un clique droit sur ton fichier puis "accès" ou "propriétés".. qqch dans ce goût

:D :D :D Tu as posté avant que je réponde. Alors je vire MAMP. Je vais essayer ce que tu m'a dit.
 
iMatthieu a dit:
Tu peux télécharger transmit (démo)

Ensuite tu te connectes, tu cliques sur ton fichier, raccourcis pomme+i, et là sous autorisations tu coches tout ou tu mets 777 (qui te cochera tout).

Je suis PRESQUE sûr que c'est ça :)

J'ai éssayé avec http://web2ftp.fr/ , Cyberduck, et Transmit. Le chmod des fichiers est 644 , mais impossible de les modifier:( :
La commande n'a pas pu être exécutée:
'SITE': command unrecognized.
Erreur -142: remote chmod failed

J'ai même éssayé de changer les droits du dossier où je les ai stockés au cas ou ça soit dépendant hiérarchiquement des droits du dossier parent, mais cela me retourne aussi la même érreur.
 
iMatthieu a dit:
Ah ben le problème doit venir de là... tu peux essayé de le supprimer et le re-créé, si ça marche pas tu peux essayé avec le dossier parent..

Ca ne fonctionne pas:( . Merci quand même:)
Je vais essayer de mon ordi dès que le site que tu m'a indiqué sera accessible.
 
iMatthieu a dit:
Mamp est déconseillé (perso je l'ai jamais essayé) car il y a souvent des problèmes avec les mises à jour d'apple.

donc comme tu le dis plus haut, Mamp est une grosse daube... mais tu ne l'as jamais utilisé ! :rolleyes: :D

alors que c'est de loin la solution la plus simple pour faire du dev php/mysql sur mac sans se prendre la tete à configurer quoi que ce soit.

personellement, je l'utilise sans probleme sur 5 machines.... alors que mes serveurs en front tournent avec entropy, et je n'ai jamais eu de problêmes avec les updates apple.
de toute façon, Mamp n'installe RIEN dans le systême.
 
En fait j'ai dis "grosse daube d'après beaucoup de monde", c'est un sujet récent qui m'a fait dire ça.

C'est vrai que mamp a une liste alléchante de packages, mais peu sont nécessaires. T'installes php5 avec gd et mysql en deux packages, clique clique clique c'est bon :)

Sinon j'ai aussi un serveur qui héberge quelques sites grâce avec le package d'entropy, souvent recommandé sur les forums d'apple.

Il y a un package encore en beta qui semble prometteur : WebServerXKit, il inclut Ruby on Rails que j'arrive pas à faire tourner sur apache pour l'instant :mad:
 
Je m'incline je m'étais arrêté aux premières critiques. J'avais pas vu la partie où tu arrives et ensuite où ça part en mayo ;-)

Pour ne pas me fier à quelques commentaires, je viens de l'essayer rapidement. Et c'est vrai que ça à l'air de tourner niquel. Encore mieux, j'ai fais un bench et les performances sont équivalentes à celle de mon l'installe que j'ai compilée moi-même.

Alors je suis sûr le cul, même si c'est lourd, ça marche très bien et c'est extrêmement simple. :up: