/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP koder crasher HTTPD
Fra : philaweb


Dato : 18-09-05 19:18

For nogle dage siden installerede jeg min første Unix boks på min Mini
Mac. Langt det meste har kørt godt indtil nu, men jeg har altså et
problem med helt bestemte PHP koder som serveren af en eller anden grund
ikke parser.

For det første ved jeg ikke om det er den rigtige gruppe jeg skriver i.
For det andet er jeg ikke sikker på hvad der er årsag til problemet, da
mine Unix og PHP færdigheder kun er på brugerniveau.

Mac'en kører Apache 1.3.33 med PHP 4.3.11, hvilket er default for MacOS
X 10.4.2 serveren. Så jeg har altså ikke pillet ved konfigurationen.

Problemet:

1. Kan ikke få environment variables til at virke på PHP baserede sider.
Dvs. alle koder med et '$' dollartegn foran bliver ikke parset, undtagen
i Wordpresss installationerne, som sjovt nok virker upåklageligt.

Det skal lige tilføjes, at mine PHP sider virker fint på de forskellige
webhosts jeg benytter. Spørgsmålet er så bare om det skyldes mine Apache
server indstillinger eller om MacOS X serveren kræver en anden slags PHP
kodning?
--

venlige hilsener...

Philaweb


MacOS X 10.4.2 server ~ Mini Mac - siden 15. september 2005.

 
 
Thomas Lindgaard (19-09-2005)
Kommentar
Fra : Thomas Lindgaard


Dato : 19-09-05 08:47

philaweb wrote:

> 1. Kan ikke få environment variables til at virke på PHP baserede sider.
> Dvs. alle koder med et '$' dollartegn foran bliver ikke parset, undtagen
> i Wordpresss installationerne, som sjovt nok virker upåklageligt.
>
> Det skal lige tilføjes, at mine PHP sider virker fint på de forskellige
> webhosts jeg benytter. Spørgsmålet er så bare om det skyldes mine Apache
> server indstillinger eller om MacOS X serveren kræver en anden slags PHP
> kodning?

Hvordan fortæller du, at der nu kommer noget PHP-kode? Med '<?' eller
med '<?php'? Problemet kan skyldes, at din maskine ikke accepterer short
open tags (kig i php.ini hvis det er tilfældet).

--
Mvh.
/Thomas

philaweb (19-09-2005)
Kommentar
Fra : philaweb


Dato : 19-09-05 12:20

Thomas Lindgaard skrev:

> Hvordan fortæller du, at der nu kommer noget PHP-kode? Med '<?' eller
> med '<?php'? Problemet kan skyldes, at din maskine ikke accepterer short
> open tags (kig i php.ini hvis det er tilfældet).

En af de sider som ikke virker for mig er en simpel User-Agent detector:

<html>
<title>User Agent Detector</title>
<body>
<?php
print "User agent: $HTTP_USER_AGENT";
?>
<br />
<?php
print "Language: $HTTP_ACCEPT_LANGUAGE";
?>
<br />
<?php
print "Remote address: $REMOTE_ADDR";
?>
<br />
<?php
print "Referer: $HTTP_REFERER";
?>
</body>
</html>

Som du kan se, så bruger jeg ikke short open tags - jeg vidste ikke
engang hvad det er. :) Er ikke særlig ferm til PHP.

Ovenstående kode skriver "User agent, Language, Remote address, Referer"
på side outputet, men serverens oplysninger bliver altså ikke vist.

--

venlige hilsener...

Philaweb


MacOS X 10.4.2 server ~ Mini Mac - siden 15. september 2005.

Leonard (19-09-2005)
Kommentar
Fra : Leonard


Dato : 19-09-05 12:55

philaweb <philaweb@.slettes.dk> wrote:

>print "User agent: $HTTP_USER_AGENT";

>Ovenstående kode skriver "User agent, Language, Remote address, Referer"
>på side outputet, men serverens oplysninger bliver altså ikke vist.

Jeg kan ikke huske hvorfor, men du skal sikkert skrive
$_SERVER[HTTP_USER_AGENT'] for at få noget ud af server-arrayet.

--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/

Bent Stigsen (19-09-2005)
Kommentar
Fra : Bent Stigsen


Dato : 19-09-05 15:49

Leonard wrote:
> philaweb <philaweb@.slettes.dk> wrote:
>
>>print "User agent: $HTTP_USER_AGENT";
>
>>Ovenstående kode skriver "User agent, Language, Remote address, Referer"
>>på side outputet, men serverens oplysninger bliver altså ikke vist.
>
> Jeg kan ikke huske hvorfor, men du skal sikkert skrive
> $_SERVER[HTTP_USER_AGENT'] for at få noget ud af server-arrayet.

Ja det er rigtigt. Det er p.g.a. en default indstilling i php.ini, som
blev ændret af sikkerhedshensyn.

http://dk2.php.net/register_globals

/Bent

philaweb (19-09-2005)
Kommentar
Fra : philaweb


Dato : 19-09-05 22:21

Bent Stigsen skrev:

>> Jeg kan ikke huske hvorfor, men du skal sikkert skrive
>> $_SERVER[HTTP_USER_AGENT'] for at få noget ud af server-arrayet.
>
>
> Ja det er rigtigt. Det er p.g.a. en default indstilling i php.ini, som
> blev ændret af sikkerhedshensyn.
>
> http://dk2.php.net/register_globals

Bingo!

Det lader til den PHP kode jeg har skrevet per default ikke overholder
standard PHP opsætninger. Der er noget kode der skal skrives om.

Tak for hjælpen! :)


--

venlige hilsener...

Philaweb


MacOS X 10.4.2 server ~ Mini Mac - siden 15. september 2005.

Bent Stigsen (20-09-2005)
Kommentar
Fra : Bent Stigsen


Dato : 20-09-05 16:09

philaweb wrote:
[snip]
> Det lader til den PHP kode jeg har skrevet per default ikke overholder
> standard PHP opsætninger. Der er noget kode der skal skrives om.
[snip]

Du kan muligvis komme let omkring det, bare ved at tildele værdier til
et stribe variable i toppen af hvert script.
Altså :
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
....
o.s.v.

Men det er nok en god ide under alle omstændigheder at kigge koden
igennem. Med register_globals bliver GET, POST, o.a. værdier med samme
navn skrevet til samme variabel. Det kan sikkert godt "udnyttes" på en
ret uheldig måde, og gøre det lidt af et detektivarbejde at udrede.


/Bent

Michael Rasmussen (19-09-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 19-09-05 11:21

philaweb skrev:

> Mac'en kører Apache 1.3.33 med PHP 4.3.11, hvilket er default for MacOS
> X 10.4.2 serveren. Så jeg har altså ikke pillet ved konfigurationen.

Den medfølgende Apache på OS X leveres med præinstalleret PHP, men
bemærk at PHP _ikke_ er aktiveret som standard. Du skal derfor manuelt
aktivere det i Apache's konfiguration, hvilket er ganske nemt.

Hvis du ikke føler dig helt hjemme i Terminal, kan du med fordel hente
en grafisk teksteditor, som TextWrangler[1], og bruge den i stedet.

Tjek om PHP er aktiveret ved at gøre følgende:

1. Åben Apache's konfigurationsfil.
Sørg for du er logget ind som en bruger der må administrere computeren,
start Terminal og skriv følgende (udskift "pico" med "edit", såfremt
TextWrangler er installeret og ønskes brugt i stedet):

sudo pico /etc/httpd/httpd.conf

Tryk på Enter og indtast din adgangskode (den vises ikke), efterfulgt af
endnu et tryk på Enter.

2. Find linjerne der skal rettes; med pico editoren kan du taste Ctrl-W
og skrive "php" efterfulgt af Enter for at søge. Tast Ctrl-W og Enter
indtil de rette linjer dukker op.

Fjern # foran linjen der begynder med:
#LoadModule php4_module [...]

og # foran denne linje:
#AddModule mod_php4.c

3. Gem filen og genstart Apache.
Med pico kan du taste Ctrl-X efterfulgt af Y og Enter for at gemme
ændringerne. Genstart af Apache kan enten gøres grafisk via
Systemindstillinger (Stop/Start), eller med Terminal-kommandoen:

sudo apachectl restart

Nu er PHP aktiveret i din Apache.

Følgende side tror jeg i øvrigt du kan få stor glæde af:
<URL: http://mundy.org/blog/index.php?p=40 >

Og tillykke med din Mac Mini

1) TextWrangler: <URL: http://www.barebones.com/products/textwrangler/ >

--
Michael Rasmussen, mir (at) irczone.dk http://macintosh.irczone.dk
------------------------------------------------------------------------
»If you understand what you're doing, you're not learning anything.«
-- A. L.

philaweb (19-09-2005)
Kommentar
Fra : philaweb


Dato : 19-09-05 12:30

Michael Rasmussen skrev:

>> Mac'en kører Apache 1.3.33 med PHP 4.3.11, hvilket er default for
>> MacOS X 10.4.2 serveren. Så jeg har altså ikke pillet ved
>> konfigurationen.
>
>
> Den medfølgende Apache på OS X leveres med præinstalleret PHP, men
> bemærk at PHP _ikke_ er aktiveret som standard. Du skal derfor manuelt
> aktivere det i Apache's konfiguration, hvilket er ganske nemt.

Mange tak for den forklaring jeg har snippet ud. :)

PHP er aktiveret på min Mac. I de sidste par dage har jeg blandt andet
fundet de oplysninger du gav mig på nettet. Jeg har været inde i Server
Admin og aktiveret PHP, jeg har været i config filen og checket.

Som jeg skrev i mit oprindelige indlæg, så virker Wordpress fortrinligt,
og Wordpress er jo PHP baseret.

Jeg fatter ganske enkelt ikke hvad der kan være galt, da det PHP som
ikke virker, det virker på de to webhosts jeg også benytter mig af
(FreeBSD og Linux).

> Følgende side tror jeg i øvrigt du kan få stor glæde af:
> <URL: http://mundy.org/blog/index.php?p=40 >

Jeg vil checke den ud. :)

> Og tillykke med din Mac Mini

Tak. Jeg er da også meget glad for den. MacOS X 10.4.2 serveren har en
vældig brugervenlig API, men desværre så har det vist sig at der er en
brist i den medfølgende MySQL og PHP konfiguration, som jeg har udbedret
ved at opdatere til PHP 4.3.11

--

venlige hilsener...

Philaweb


MacOS X 10.4.2 server ~ Mini Mac - siden 15. september 2005.

Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408634
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste