Erinevus lehekülje "PHP käivitamine kasutaja õigustes" redaktsioonide vahel
P |
|||
3. rida: | 3. rida: | ||
Kahjuks v2imaldab see startida ainult cgi skripte selliselt. J2rgnev pala kirjeldab kuidas saada iga serveris asuv php tykk samuti k2ima | Kahjuks v2imaldab see startida ainult cgi skripte selliselt. J2rgnev pala kirjeldab kuidas saada iga serveris asuv php tykk samuti k2ima | ||
antud kasutaja 2igustes. Näites kasutatav PHP on 5 versioon, kuid kasutada võib ka 4. | antud kasutaja 2igustes. Näites kasutatav PHP on 5 versioon, kuid kasutada võib ka 4. | ||
+ | # on näidetes tähistatud käsuviip. | ||
'''tarkvara install''' | '''tarkvara install''' | ||
− | cd /usr/ports/www/apache2 | + | # cd /usr/ports/www/apache2 |
− | make | + | # make WITH_MODULES="suexec" install |
seej2rel installime php: | seej2rel installime php: | ||
− | cd /usr/ports/lang/php5 | + | # cd /usr/ports/lang/php5 |
− | make install clean | + | # make install clean |
PHP installeerimisel küsitakse täiendavaid parameetreid, valida tuleb CGI ja FastCGI tugi. | PHP installeerimisel küsitakse täiendavaid parameetreid, valida tuleb CGI ja FastCGI tugi. | ||
Apache moodulit pole vaja, kui täiendavalt paralleelselt seda ei plaani kasutada | Apache moodulit pole vaja, kui täiendavalt paralleelselt seda ei plaani kasutada | ||
− | ning siis fastcgi install | + | ning siis fastcgi install: |
− | |||
+ | # cd /usr/ports/www/mod_fastcgi | ||
+ | # make install clean | ||
see k2sk paigaldab apache koos suexeci'iga | see k2sk paigaldab apache koos suexeci'iga | ||
peale installi saame kontrollida olemasolu ja parameetreid selliselt | peale installi saame kontrollida olemasolu ja parameetreid selliselt | ||
− | + | # suexec -V | |
− | + | -D AP_DOC_ROOT="/usr/local/www/data" | |
− | + | -D AP_GID_MIN=1000 | |
− | + | -D AP_HTTPD_USER="www" | |
− | + | -D AP_LOG_EXEC="/var/log/httpd-suexec.log" | |
− | + | -D AP_SAFE_PATH="/usr/local/bin:/usr/local/bin:/usr/bin:/bin" | |
− | + | -D AP_UID_MIN=1000 | |
− | + | -D AP_USERDIR_SUFFIX="public_html" | |
Redaktsioon: 4. november 2006, kell 00:54
Apache suexec on programm mis lisati versioonis 1.2 ja annab apache kasutajatele v2imaluse k2ivitada cgi ja ssi programme kasutaja id'ga mis erinev kui veebiserver id. Noramaalselt toimivad k2ik skriptid veebiserveri 2igustes. Kahjuks v2imaldab see startida ainult cgi skripte selliselt. J2rgnev pala kirjeldab kuidas saada iga serveris asuv php tykk samuti k2ima antud kasutaja 2igustes. Näites kasutatav PHP on 5 versioon, kuid kasutada võib ka 4.
- on näidetes tähistatud käsuviip.
tarkvara install
# cd /usr/ports/www/apache2 # make WITH_MODULES="suexec" install
seej2rel installime php:
# cd /usr/ports/lang/php5 # make install clean
PHP installeerimisel küsitakse täiendavaid parameetreid, valida tuleb CGI ja FastCGI tugi. Apache moodulit pole vaja, kui täiendavalt paralleelselt seda ei plaani kasutada
ning siis fastcgi install:
# cd /usr/ports/www/mod_fastcgi # make install clean
see k2sk paigaldab apache koos suexeci'iga peale installi saame kontrollida olemasolu ja parameetreid selliselt
# suexec -V -D AP_DOC_ROOT="/usr/local/www/data" -D AP_GID_MIN=1000 -D AP_HTTPD_USER="www" -D AP_LOG_EXEC="/var/log/httpd-suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=1000 -D AP_USERDIR_SUFFIX="public_html"
Nagu n2ha soovib suexec ,et k2ik skriptid mida tema abil k2ivitatakse asuksid /usr/local/www/data
ei hakka DOC_ROOT muutma ja loome testi sinna.
konfiguratsioon apachel
muudame httpd.conf
LoadModule suexec_module libexec/apache2/mod_suexec.so
tekitasin veel konfi sellise sektsiooni
<IfModule mod_fastcgi.c> FastCgiWrapper /usr/local/sbin/suexec FastCgiConfig -singleThreshold 1 -pass-header HTTP_AUTHORIZATION </IfModule>
tekitame virtualhostid
<VirtualHost *:80> SuexecUserGroup katse katse ServerAdmin kasutaja@nimi.ee DocumentRoot /usr/local/www/data/katse ServerName www.nimi.ee ScriptAlias /php-fastcgi/ /usr/local/www/data/katse/ AddType application/x-httpd-fastphp .php Action application/x-httpd-fastphp /php-fastcgi/php5-fcgi </VirtualHost>
<VirtualHost *:80> SuexecUserGroup katse3 katse3 ServerAdmin kasutaja@nimi.ee DocumentRoot /usr/local/www/data/katse3/cgi-bin ServerName test.nimi.ee ScriptAlias /php-fastcgi/ /usr/local/www/data/katse3/cgi-bin AddType application/x-httpd-fastphp .php Action application/x-httpd-fastphp /php-fastcgi/php5-fcgi </VirtualHost>
Skript wrapperiks
varasemalt virtualhostis sidusime igas .php laiendi kindla cgi skriptiga mida suexeciga k2ivitame viimaks ehitame skripti enda mis k2ivitatuna suexeci abil kasutaja 2igustes stardib php enda ja sellekaudu ka veebi.
#!/bin/sh #PHPRC="/usr/local/etc/php.ini" export PHPRC PHP_FCGI_CHILDREN=4 export PHP_FCGI_CHILDREN exec /usr/local/bin/php-cgi
kopeerime selle faili kasutajate katse ja katse 3 kaustadesse
/usr/local/www/data/katse/cgi-bin/php5-fcgi/usr/local/www/data/katse3/cgi-bin/php5-fcgi
teeme chown mõlemale failile kasutaja õigusesse
chown katse:katse /usr/local/www/data/katse/cgi-bin/php5-fcgi
chown katse3:katse3 /usr/local/www/data/katse3/cgi-bin/php5-fcgi
testimine kasutamine
testimiseks saab teha skripti
< ?php print "hello world< p >\n"; system("id"); php? >
www.nimi.ee skripti vaadates
hello world uid=1004(katse) gid=1004(katse) groups=1004(katse)
test.nimi.ee
hello world uid=1009(katse3) gid=1009(katse3) groups=1009(katse3)
EENet 2006