Archief - PHP: .htaccess php variabelen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

PsyKi

Legacy Member
Ik heb het volgende probleem:

Bij het schrijven van enkele php sites, gebruik ik pear (http://pear.php.net). Ik gebruik shared hosting, en heb pear zelf geinstalleerd op mijn webspace.

Telkens ik nu een pear class wil gebruiken, moet ik, bij de include, het volledige pad opgeven. Voorbeeld:
PHP:
require_once('/opt/www/clementk/web/pear.psyki.be/PEAR/HTML/Template/IT.php');
ipv.
PHP:
require_once('HTML/Template/IT.php');
Natuurlijk niet echt handig. Via mijn hosting, krijg ik natuurlijk geen write toegang tot php.ini of httpd.conf.

De andere opties zijn dus:
1) altijd de volledige include doen (zoals hierboven)
2) in elk script het volgende plaatsen:
PHP:
ini_set('include_path',ini_get("include_path") . ":" . "/opt/www/clementk/web/pear.psyki.be/PEAR"
3) die variabele aanpassen in de .htaccess. Dit moet dan maar 1 x gebeuren voor die directory en onderliggende, en dus niet in elk script.

De eerste 2 werken, maar uiteraard wil ik het laatste gebruiken.
Na veel prutswerk, blijft het nog altijd mislopen.

Ik gebruik de volgende .htaccess:
PHP:
php_value include_path ".:/usr/share/php:/opt/www/clementk/web/pear.psyki.be/PEAR"

Als ik dit doe willen de pagina's niet laden: error 500: fout in de htaccess dus.

Na wat zoekwerk blijkt dat ik die regel tussen tags moet plaatsen:
PHP:
<IfModule mod_php5.c>
  php_value include_path ".:/usr/share/php:/opt/www/clementk/web/pear.psyki.be/PEAR"
</IfModule>
(ook php4 en php3 voor de zekerheid geprobeerd)
Dit geeft geen fouten, maar doet ook niets. Geen resultaat. Hij veranderd het include path niet. Het is alsof hij die module niet laadt, en dus ook die regel niet uitvoert.

Wat doe ik hier mis???
Ik gebruik linux hosting, dus het scheidingsteken vor de directories is wel degelijk : ), en het is php5.

EDIT: mijn excuses voor de enorm lange post

[Scratch]

Legacy Member
Ben je zeker dat je host toelaat op php values te veranderen in .htaccess?

dJeez

Legacy Member
PsyKi zei:
3) die variabele aanpassen in de .htaccess. Dit moet dan maar 1 x gebeuren voor die directory en onderliggende, en dus niet in elk script.
4) De ini_set methode toepassen en die ini_set zetten in een script dat je sowieso al in (quasi) elk script include. Dan moet je het ook slechts op 1 plaats aanpassen.

BTW De reden waarom het niet werkt via .htaccess zou kunnen zijn dat PHP niet als module wordt geladen door je hosting provider, maar dat ze gebruik maken van vb. FastCGI. De php_value zetten zorgt in dat geval voor een Internal Server error aangezien Apache die syntax dan niet herkent.

PsyKi

Legacy Member
[Scratch];7722477 zei:
Ben je zeker dat je host toelaat op php values te veranderen in .htaccess?

hmmmz, goede vraag idd, geen idee. Even gezocht iop de site van de host (priorweb), nergens te vinden..

dJeez zei:
BTW De reden waarom het niet werkt via .htaccess zou kunnen zijn dat PHP niet als module wordt geladen door je hosting provider, maar dat ze gebruik maken van vb. FastCGI. De php_value zetten zorgt in dat geval voor een Internal Server error aangezien Apache die syntax dan niet herkent.

Hmmmz, kan ik deze dan bij een andere module zetten, die zowiezo ALTIJD geladen wordt? Is er een manier om te controleren of ze idd FastCGI of iets dergelijks gebruiken? Ik heb SSH toegang.

Anders even een mailtje sturen naar priorweb.
Of, jah, gewoon die ini_set methode overal includen he...

Bedankt voor de replies. ;)

dJeez

Legacy Member
Priorweb gebruikt bij mijn weten idd FastCGI. Je kan dat checken door de phpinfo() functie eens uit te voeren in een script, als je daar helemaal bovenaan bij Server API als waarde CGI/FastCGI ziet staan kan je niet via .htaccess gaan werken om de waarde van de php vars te wijzigen, de enige optie is dan te werken via PHP functies (die je dus in elke script moet zetten of op z'n minst includen).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan