Apache2 + SuPHP och Phpmyadmin?

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Jan 2006

Apache2 + SuPHP och Phpmyadmin?

Hej alla glada,

Håller på att sätta upp SuPHP så det fungerar. Problemet är bara att http://localhost/phpmyadmin inte fungerar, då detta är en symlink + att filerna ägs av "root".

Hur löser jag detta? Jag vet att jag kan sätta min_uid och min_gid på 0, så PHP som ägs av "root" kan köras, men detta fungerar fortfarande inte. Tror att det beror på att det är en symlink -> /usr/share/phpmyadmin.

Nån som kan ha en aning?

Gigabyte-P35-DS4 | Intel Core 2 Quad Q6600 [3 GHz] | 2x1GB Corsair XMS-6400@800Mhz | Nvidia Geforce 460 GTX [975/2000 MHz] | Intel 320 Series 80 GB SSD | | SETI@Home Team: Sweclockers.com

Trädvy Permalänk
Medlem
Plats
local
Registrerad
Feb 2004

Använder du FollowSymLinks i din apache konfiguration?

Lägg till

Options FollowSymLinks

Mellan dina <Directory> taggar i apache konfigurationen. Använder du .htacess filer går det även bra att lägga Options FollowSymLinks där också.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Jan 2006

Yes, det gör jag.

Men kolla, vore superbussigt om nån orkade hjälpa mig här... behöver PhpMyAdmin och PhpPgAdmin, så både jag och andra kan använda det.

Har lagt till SuPHP-modulen i den globala konfigurationen i Apache2. (Går ju för varje enskild virtuell domän, men det är jobbigt) /etc/apache2/mods-enabled/suphp.conf ser ut så här.

<IfModule mod_suphp.c> AddHandler x-httpd-php .php .php3 .php4 .php5 .phtml suPHP_AddHandler x-httpd-php suPHP_Engine on </IfModule>

Och /etc/suphp/suphp.conf ser ut så här.

[global] ;Path to logfile logfile = /var/log/suphp/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=www-data ;Path all scripts have to be in docroot = / ; Security options allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path = /bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-php=php:/usr/bin/php5-cgi ;Handler for CGI-scripts x-suphp-cgi=execute:!self

Vad betyder nu detta? Jo, alla PHP-filer i systemet körs i filens användare. Så är index.php ägd av "sunnis" så körs skriptet som "sunnis" istället för "www-data". Det blir mer säkert och "sunnis" blir glad, då genererade filer blir ägda av "sunnis".

Inga PHP-filer som ägs av root får köras. Och det är ju också bra... men PhpMyAdmin ägs ju av root. Hur förbigår man detta? /usr/share/phpmyadmin ägs ju av root. Så... nån ledtråd? =/

Gigabyte-P35-DS4 | Intel Core 2 Quad Q6600 [3 GHz] | 2x1GB Corsair XMS-6400@800Mhz | Nvidia Geforce 460 GTX [975/2000 MHz] | Intel 320 Series 80 GB SSD | | SETI@Home Team: Sweclockers.com

Trädvy Permalänk
Medlem
Plats
local
Registrerad
Feb 2004

aha fiffig modul de där Ska genast testa den, visste inte att det fanns något liknade.

Men till problemet: Varför kan du inte helt enkelt byta ägare på phpmyadmin? Kanske lite ful lösning men det känns som att det borde fungera.

Har ingen aning om det här fungerar men testa med att lägga till en ytterligare <Directory> tagg i din VirtualHost. I Directory taggen som går till /usr/share/phpmyadmin så skriver du
suPHP_UserGroup foouser bargroup (Byt ut till en användare och grupp som du vill köra phpmyadmin som)

Då ska den som jag har fattat det som tvinga phpskripten att köras som en användare som du själv anger. Funkar dock bara om SuPHP är kompilerat med force eller paranoid flaggorna

http://www.suphp.org/Documentation-Module-Configuration.en.ht...

Är dock väldigt tveksam om det fungerar.

Edit: Googlade lite och hittade detta --> http://adterrasperaspera.com/blog/2008/01/01/debianubuntu-php...

Lägg bara helt enkelt till en extra Directory tagg (Som jag skrev tidigare) för phpmyadmin där du stänger av suPHP modulen.

<Directory /usr/share/phpmyadmin> suPHP_Engine off Action application/x-httpd-php /cgi-bin/php5 </Directory>

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Jan 2006

Jo. Den är trevlig. Somliga kör ju Debian/Ubuntu, och då är det bara köra detta dessutom.

apt-get install suphp-common libapache2-mod-suphp

Hmm, tack för din hjälp iaf. Burken som kör det kritiska låter jag vara, har en annan burk jag kan testa med, som kör exakt samma saker.

Dock kan jag säga att

<Directory /usr/share/phpmyadmin> suPHP_Engine off Action application/x-httpd-php /cgi-bin/php5 </Directory>

Går bort direkt. Apache2 klagar på att det inte finns nåt som heter 'Action'. Men på något sätt ska det väl gå.. postar här om jag hittar en lösning, vilket jag nog komma göra.

EDIT: Fick göra en ful lösning på problemet... ändrade i /etc/suphp/suphp.conf till

[global] ;Path to logfile logfile=/var/log/suphp/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=www-data ;Path all scripts have to be in docroot=/ ; Security options allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=false ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=0 ; Minimum GID min_gid=0 [handlers] ;Handler for php-scripts x-httpd-php=php:/usr/bin/php5-cgi ;Handler for CGI-scripts x-suphp-cgi=execute:!self

Så nu är det ingen direkt säkerhet, men PHP körs åtminstone som användaren.

Gigabyte-P35-DS4 | Intel Core 2 Quad Q6600 [3 GHz] | 2x1GB Corsair XMS-6400@800Mhz | Nvidia Geforce 460 GTX [975/2000 MHz] | Intel 320 Series 80 GB SSD | | SETI@Home Team: Sweclockers.com

Trädvy Permalänk
Medlem
Plats
Brandbergen, Haninge
Registrerad
Jul 2005

Vad händer då om någon användare "råkar" få en fil som ägs av root och köra den?

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Jan 2006

Iofs, men det tilläts redan _före_ jag la in SuPHP. Det är väl standard i PHP5?

Gigabyte-P35-DS4 | Intel Core 2 Quad Q6600 [3 GHz] | 2x1GB Corsair XMS-6400@800Mhz | Nvidia Geforce 460 GTX [975/2000 MHz] | Intel 320 Series 80 GB SSD | | SETI@Home Team: Sweclockers.com