Toon posts:

include_path en virtual hosts

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een probleem op mijn webserver. Ik kan niet includen odat het path niet goed ingesteld staat. Nu is de vraag als ik het path instel (wat ook even een punt is om hier te bespreken) of ik dan geen problemen krijg met mijn virtual hosts. Ik bedoel dus of het path ook voor die hosts wel naar het goede path zal verwijzen.

Alles draait dus op een Raq550 :D

Graag jullie mening

[ Voor 5% gewijzigd door Verwijderd op 05-08-2003 20:35 ]


Verwijderd

Topicstarter
please verhuizen naar PW |:(

  • TaZz
  • Registratie: Juni 2000
  • Laatst online: 28-07 12:43

TaZz

Nostalgist

Misschien dat ik een domme vraag stel, maar wat is een Raq550 :?
Heb het inmiddels opgezocht en ben weer wat wijzer :)

Maar wat voor webserver draait daar nu precies op?

Verwijderd

Topicstarter
er draait gewoon apache op met PHP...... op een Raq550 draait een RedHat distro special ontworpen...... RH7.0

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 11:38

Snow_King

Konijn is stoer!

Ik snap toch echt je vraag niet...

Gaat dit over PHP, Perl?
geef eens wat meer duidelijk info...

Verwijderd

Topicstarter
het path in mijn php.ini............ include_path

PHP natuurlijk, ik weet niet wat jij met perl op een Raq550 wil doen :)

[ Voor 45% gewijzigd door Verwijderd op 05-08-2003 22:41 ]


  • TaZz
  • Registratie: Juni 2000
  • Laatst online: 28-07 12:43

TaZz

Nostalgist

Als het goed is geldt het voor al je hosts op die webserver als je wat in je php.ini wijzigt.
Maar dat kun je toch zo uitproberen lijkt me?

Verwijderd

Topicstarter
ja maar het werkt dus niet nu. Ik kan een bestand dat in dezelfde map als een bestand.php staat niet includen. Dit komt door het path neem ik aan. Als ik namelijk de hele URL voor het te includen bestand zet dan werkt het wel.

Verwijderd

hoe staat je path nu dan?

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 11:38

Snow_King

Konijn is stoer!

Zo staat het in mijn php.ini op een Debian Linux server
code:
1
2
3
4
5
6
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"


Snap echt niet wat het te maken heeft met je Apache VH, staat Safemode aan?

Verwijderd

je include_path kan je nat als je gewone path uitbreiden.
het kan een lijst van verschillende directories zijn gescheiden door een dubbele punt voor UNIX en een puntkomma voor windows.
DUS path:path:path (UNIX) of path;path;path (WINDOWS)
Niet vergeten te beginnen met een enkele punt als huidige directorie.
DUS .:path:path:path of .;path;path;path

Verwijderd

Topicstarter
Jij hebt ze dan dus ook niet gedefinieerd ?? Met Apache ?? Ik praat hier over PHP maar iemand vroeg wat voor een webserver erop draaide dus vertel ik dat even :)

Verwijderd

Topicstarter
Verwijderd schreef op 05 August 2003 @ 23:05:
je include_path kan je nat als je gewone path uitbreiden.
het kan een lijst van verschillende directories zijn gescheiden door een dubbele punt voor UNIX en een puntkomma voor windows.
DUS path:path:path (UNIX) of path;path;path (WINDOWS)
Niet vergeten te beginnen met een enkele punt als huidige directorie.
DUS .:path:path:path of .;path;path;path
Aha, nu snap ik het path1;path2 verhaal :) maar weet jij misschien waarom het standaard niet werkt ?? op mijn Windows draaide alles wel goed standalone....... nooi problemen gehad met includen eigenlijk allen op een Linuxbak waar die site nu op staat....

Verwijderd

je hebt dus geen verwijzing want er staat een puntkomma aan het bgin van de regel, wat zoveel wil zeggen als REM (in good old DOS).
Dus een remark. Wil je dit path gebruiken moet je de ; weghalen en de server opnieuw starten.(Naders leest 'tie zijn php.ini niet)

Verwijderd

Topicstarter
Dara heb je gelijk in, maar bij een standaard install op windows staat ie ook geREMd dat vind ik zo vreemd

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Verwijderd schreef op 05 August 2003 @ 22:42:
ja maar het werkt dus niet nu. Ik kan een bestand dat in dezelfde map als een bestand.php staat niet includen. Dit komt door het path neem ik aan. Als ik namelijk de hele URL voor het te includen bestand zet dan werkt het wel.
Ik heb dit ook eens gehad, maar kon het niet oplossen (volgens mij is het nog zo, maar tegenwoordig geef ik altijd het volledige pad op door er in php iets van get_cwd() voor te zetten)... Ik had idee dat dit door mijn versie van PHP kwam, of misschien door een veiligheidsoptie in PHP?

Als iemand er een oplossing voor heeft hoor ik die ook graag :)

edit:
overigens staat in mijn config WEL als eerste include path een . en begint de regel niet met ;

[ Voor 8% gewijzigd door BRAINLESS01 op 05-08-2003 23:17 ]


Verwijderd

Bij mij draait ie ook op windows, maar ik moest wel 2 modules toevoegen aan de httpd.conf van Apache, nl.
LoadModule php4_module "d:/service/php-432/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Verwijderd schreef op 05 augustus 2003 @ 23:14:
Bij mij draait ie ook op windows, maar ik moest wel 2 modules toevoegen aan de httpd.conf van Apache, nl.
LoadModule php4_module "d:/service/php-432/sapi/php4apache2.dll"
AddType application/x-httpd-php .php
zonder die modules werkt PHP helemaal niet... met andere woorden, als PHP werkt zijn die regels (of de andere 2, want er zijn 2 mogelijkheden om PHP te installeren) toegevoegd

Verwijderd

Topicstarter
_BRAINLESS schreef op 05 August 2003 @ 23:17:
[...]

zonder die modules werkt PHP helemaal niet... met andere woorden, als PHP werkt zijn die regels (of de andere 2, want er zijn 2 mogelijkheden om PHP te installeren) toegevoegd
Dat klopt :)

Verwijderd

Natuurlijk, stom van me. 8)7
Maar ik ken wel een installatie die goed werkt.
Ik zal eens proberen na te gaan wat de truc is hiervoor

Verwijderd

Topicstarter
Verwijderd schreef op 05 augustus 2003 @ 23:23:
Natuurlijk, stom van me. 8)7
Maar ik ken wel een installatie die goed werkt.
Ik zal eens proberen na te gaan wat de truc is hiervoor
Op een linux-bak ? dus ook met includen enzo ?? Ik zit namelijk met het feit dat ik een probleem ga krijgen als ik virtual hosts aan ga maken. Ik zal dan voor iedere virtual host een path aan oeten maken neem ik aan en dan maar niet te hopen dat ze dezelfde bestandsnamen gaan gebruiken om te includen |:(

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
* supakeen volgt dit topic niet meer, kan de TS even duidelijk aangeven wat hij wil :?

Verwijderd

Ik heb op zo'n systeem geprogrammeerd.
We hoefden daar nooit van die moeilijke trucen uit te halen.
Ik hoorde hem wel een over een virtual path, maar precies weten doe ik ook niet zo.
Ik kan die beheerder wel eens vragen of'íe een beetje info wil sharen

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
zmn schreef op 05 August 2003 @ 23:26:
* BRAINLESS01 volgt dit topic niet meer, kan de TS even duidelijk aangeven wat hij wil :?
zijn vraag is: waarom wil het includen van een bestand dat in DEZELFDE directory als het php bestand dat word uitgevoerd niet lukken? (en nog meer: hoe zorg ik dat het wel werkt :))

het include path staat in mijn php.ini trouwens een paar regels onder het voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
include_path = ".:/usr/local/lib/php"


misschien is dat bij de TS ook zo, dan is zijn config wel goed... hoe dan ook, bij mij is hij goed en werkt het dus ook niet!

Verwijderd

Topicstarter
Is idd vrijwel hetzelfde... mijn info.php geeft iig dit:

.:/usr/lib/php

als include_path aan

Verwijderd

Ik heb die beheerder een mailtje gestuurd, zodra ik wat weet zal ik het hier posten.

Verwijderd

Topicstarter
Verwijderd schreef op 05 August 2003 @ 23:50:
Ik heb die beheerder een mailtje gestuurd, zodra ik wat weet zal ik het hier posten.
Tof !!

Verwijderd

Als je de volgende code boven in je php bestand zet, dan zou je iig foutmeldingen moeten krijgen.
error_reporting(E_ALL);
Wel in php.ini display_errors = On zetten

Verwijderd

Topicstarter
Wat wil je met die foutmeldingen bereiken dan ?? Die heb ik nu ook al :(

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 11:38

Snow_King

Konijn is stoer!

Ok,

ik begrijp het dus goed.....

je hebt map: /var/www/mijn_site/
Je hebt daar 2 bestanden: foo.php en index.php

je roept index.php op en die doet dan include("foo.php"); dat werkt niet?
right?

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Snow_King schreef op 06 August 2003 @ 06:05:
Ok,

ik begrijp het dus goed.....

je hebt map: /var/www/mijn_site/
Je hebt daar 2 bestanden: foo.php en index.php

je roept index.php op en die doet dan include("foo.php"); dat werkt niet?
right?
yep klopt, php begint dan te zeuren dat 'foo.php' niet kan worden gevonden in het include_path dat in php.ini is aangegeven, maar in php.ini staat bij het include_path ook . (wat volgens de documentatie 'huidige directory' moet betekenen). Dus: hoewel de configuratie goed is gaat hij toch zeuren dat er iets niet goed is.

Verwijderd

Topicstarter
Yeps en volgens mij komt dit omdat het op een Linux-bak anders gaat dan op een windows machine...... alleen een linux-bak heeft hier last van is mijn ervaring !

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 11:38

Snow_King

Konijn is stoer!

nee, wat ik hier boven liet zien

code:
1
2
3
4
5
6
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"


Zo staat het op mijn Debian Linux server, werkt allemaal goed!

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Snow_King schreef op 06 August 2003 @ 19:07:
code:
1
2
3
4
5
6
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
jij hebt ook de verkeerde gekopieerd... de regel die van toepassing is staat hier waarschijnlijk 3 of 4 regels onder :) (die waar geen puntkomma voor staat).

Ik bedacht me net dat het iets met versies te maken kan hebben... ik zal eens kijken welke versies ik exact draai, maar in ieder geval Apache 2.x... ik weet dat het met mijn oude setup (Apache 1.3.x en een oude versie van php) WEL gewerkt heeft!

Misschien is dat wat..?
edit:

Mijn config: Apache/2.0.42 (Unix) PHP/4.3.1 (ja ik weet dat het oud is en dat het waarschijnlijk zwaar onveilig is... who cares, dat los ik later wel op! :))

[ Voor 13% gewijzigd door BRAINLESS01 op 06-08-2003 21:09 ]


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 11:38

Snow_King

Konijn is stoer!

Ik draai Apache 1.3.27 en php 4.2.3

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

; The root of the PHP pages, used only if nonempty.
doc_root =

; The directory under which PHP opens the script using /~usernamem used only
; if nonempty.
user_dir =

; Directory in which the loadable extensions (modules) reside.
; extension_dir = ./

; Whether or not to enable the dl() function.  The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
enable_dl = On


Alles wat in mijn php.ini staat over include_path

Verwijderd

Topicstarter
Snow_King schreef op 06 August 2003 @ 21:15:
Ik draai Apache 1.3.27 en php 4.2.3

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

; The root of the PHP pages, used only if nonempty.
doc_root =

; The directory under which PHP opens the script using /~usernamem used only
; if nonempty.
user_dir =

; Directory in which the loadable extensions (modules) reside.
; extension_dir = ./

; Whether or not to enable the dl() function.  The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
enable_dl = On


Alles wat in mijn php.ini staat over include_path
Niet geset dus bij jou..........

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Verwijderd schreef op 06 augustus 2003 @ 21:30:
[...]


Niet geset dus bij jou..........
inderdaad... maar het is wel Apache 1.3.x en niet 2.x :)

Verwijderd

Topicstarter
Dit draai ik:

Apache Version Apache/1.3.20

PHP Version 4.0.6

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Verwijderd schreef op 06 August 2003 @ 21:36:
Dit draai ik:

Apache Version Apache/1.3.20

PHP Version 4.0.6
da's niet eerlijk... dan werkt het soms met 1.3.x ook niet :)

misschien toch een config fout dan... (security?)

Verwijderd

Topicstarter
Ik heb de install met wat PKG's in uitzondering geheel standaard gelaten. Iig aan die PKG's ligt het niet :)

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Mijn installatie is buiten PHP en virtual hosts geheel standaard...

Verwijderd

Topicstarter
Nou dan maar eens kijken wat Herbabear ons kan melden straks :)

Verwijderd

Sorry guys, ik krijg nog geen respons van die beheerder.
Ik denk dat'íe met vakantie is :'(

Verwijderd

Ik heb wel op het net het volgende gevonden.
http://forums.devshed.com/t65242/s.html

Mogelijk dus toch rechten op de directorie

Verwijderd

Topicstarter
Zou je toch wel gaan denken he ?? Ik vond verschillende dingen afgelopen tijden maar iedere keer hetzelfde en niemand die het op kon lossen.

Ik ben zelf ook even wat paths gaan proberen maar zonder enig resultaalt. Ik dacht aan iets van .:usr/local/include maar helaas ook niet. .:usr/lib/php (ofzo) mocht ook niet baten...... I'm desparate....... |:(

Verwijderd

Topicstarter
Iedere keer dat ik mijn include_path wijzig en apache opnieuw opstart blijf ik in mijn info.php .:/usr/local/include als include_path zien.... waarom wijzigt deze niet ?

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
misschien omdat je browser de pagina in z'n cache heeft staan en niet de moeite neemt om nog een keer die pagina op te vragen? anders zou het een bug zijn (of je past het verkeerde bestand aan)...

Verwijderd

Topicstarter
Ik kan refreshen todat ik een ons weeg :s maarja dat helpt dus niet, ik kan wel het path aanpassen op een manier dat er komt te staan UNIX ipv een geheel path.

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
Ik heb al een hele tijd niet meer geprobeerd om met php aan de slag te gaan omdat mijn MySQL server het niet meer deed (en nog geen tijd/zin gehad het te repareren). Dus ik wilde nu even gaan testen wanneer ik het probleem nou precies krijg, maar helaas (of eigenlijk niet :))... HET LUKT NIET! Ik ben dus mijn oude scriptjes eens gaan doorlezen en merk dat ik het probleem met name had als ik bestanden in een andere directory probeerde te includen (wel het goede pad aangeven) of als ik 'file_exists' gebruikte, dit werkt nu allebij wel gewoon goed.

Na wat testen heb ik de fout er wel weer uit gekregen, maar ik heb totaal geen idee waarom...

de code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
echo "attempting to include test2.php: ";

require_once("test2.php");
echo "<br>2: ".require_once("../test2.php");
echo "<br>3: ".require_once("./test/test2.php");

$f = fopen("test2.php", r);
while (!feof($f)) {
    echo fgets($f, 1024);
}
fclose($f);

echo file_exists("../test2.php");
echo "<br>".file_exists("./test/test2.php");

?>


wat ik veranderd heb:

PHP:
1
echo "<br>3: ".require_once("./test/test2.php")."<br>";


Na de verandering werkt het NIET meer, daarvoor wel. Verder lijkt hij ook meer dan alleen het goeie bestand te includen, met meerdere bestanden die hetzelfde heten in verschillende directories gaat hij de fout in.

edit:

een kleine doch niet onbelangrijke update:
Ik heb 4 bestanden in een structuur alsvolgt:

/test2.php
/test/test.php
/test/test2.php
/test/test/test2.php

test.php is het bestand dat ik gebruik om alle 3 de test2.php bestanden te includen.

Als ik in test.php
PHP:
1
require_once("test2.php")
edit:
uitvoer, dan opent hij de test2.php die in DEZELFDE directory staat, en include die.

tot zo ver gaat alles goed.

Dan doet hij alles perfect tot het moment dat hij bij de volgende regel aankomt die ook een bestand include, ongeacht welke. Hij include dan EERST test2.php die in de 'root' van mijn domein staat, en DAARNA gaat hij de regel waarin require_once staat uitvoeren. Je krijgt dus een volledig foute pagina te zien. Ik ga eens kijken of ik dit verder kan uitwerken, maar er klopt bij mij in ieder geval geen hout meer van :)

[ Voor 37% gewijzigd door BRAINLESS01 op 08-08-2003 20:48 ]


Verwijderd

Topicstarter
Mhhhh ook vreemd dus, maar bij mij werkte het dus altijd wel op een windows configuratie en op een linuxbak niet meer :S

Rara wat is er gebeurd met het include_path en werkt dat include_path eigenlijk wel op een linux-bak :?

Verwijderd

Gelezen in het PHP manual.
http://nl.php.net/manual/nl/function.include.php
Het zou bovenstaande mogelijk verklaren.

Omdat include() een speciale taal constructie is, ben je verplicht deze te omgeven met een statement blok als het include() statement zich in een conditionele constructtie bevind.


/* Dit is FOUT en zal niet werken zoals het bedoeld is */

if ($condition)
include($file);
else
include($other);

/* Dit is GOED. */

if ($condition) {
include($file);
} else {
include($other);
}

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 08-09 09:30
ik heb geen condities in mijn bestandje gebruikt... maar misschien mag je include en require niet in een statement met iets anders gebruiken?

dus niet zo:
PHP:
1
2
3
4
echo require_once("test2.php");

// test2.php
blablabla


maar zo:
PHP:
1
2
3
4
5
6
7
<?php
require_once("test2.php")

// test2.php:
<?php
echo "blablabla";
?>


??

[ Voor 9% gewijzigd door BRAINLESS01 op 08-08-2003 23:35 ]


Verwijderd

Topicstarter
Verwijderd schreef op 08 August 2003 @ 23:18:
Gelezen in het PHP manual.
http://nl.php.net/manual/nl/function.include.php
Het zou bovenstaande mogelijk verklaren.

Omdat include() een speciale taal constructie is, ben je verplicht deze te omgeven met een statement blok als het include() statement zich in een conditionele constructtie bevind.


/* Dit is FOUT en zal niet werken zoals het bedoeld is */

if ($condition)
include($file);
else
include($other);

/* Dit is GOED. */

if ($condition) {
include($file);
} else {
include($other);
}
Zo doe ik het ook en toch blijf ik er dan bij dat het in die server-software zit 8)7

Verwijderd

Ik heb antwoord gekregen van de beheerder waar ik het eerder over had.
Op mijn vraag of er bijzondere trucen uitgehaald zijn op de server tbv het includen van php-bestanden was het antwoord NEE.
Mogelijke oorzaak van het niet includen zou vlgs. hem zijn de safe_mode. Waarschijnlijk staat dit aan.

Verwijderd

Topicstarter
Verwijderd schreef op 10 August 2003 @ 00:36:
Ik heb antwoord gekregen van de beheerder waar ik het eerder over had.
Op mijn vraag of er bijzondere trucen uitgehaald zijn op de server tbv het includen van php-bestanden was het antwoord NEE.
Mogelijke oorzaak van het niet includen zou vlgs. hem zijn de safe_mode. Waarschijnlijk staat dit aan.
Stond uit bij mij, maar weet je welke php-versie hij gebruikte ??

Verwijderd

Voor zover ik kan zien 4.0.12

Verwijderd

PHP: 4.1.2
Apache: 1.3.27

Vraagje van de beheerder.
Kun je wat niet werkende code mailen.

Verwijderd

Topicstarter
Verwijderd schreef op 12 August 2003 @ 23:16:
PHP: 4.1.2
Apache: 1.3.27

Vraagje van de beheerder.
Kun je wat niet werkende code mailen.
Kan maar heeft geen zin want de code is goed........ ik hbe inmiddels een upgrade gedaan naar PHP 4.2.3 maar nu hbe ik een mysql.sock probleem..... normaal is via een symlink op te lossen....... helaas, bij deze versie dus niet........

Verwijderd

Topicstarter
Tis al opgelost...... na een update naar 4.2.3 en nog wat problemen met een .sock en rechten werkt het super :) THNX allen !
Pagina: 1