Nouvelle version de suPHP 0.6.0
Nouvelle version pour SuPHP 0.6.0. Télechargement du tarball sur le site officiel: http://www.suphp.org/Home.html
Pour rappel, suPHP est un module permettant de faire tourner PHP avec les droits de l'utilisateur et non plus les droits d'apache. Cela procure une plus grande sécurité pour l'exécution des scripts PHP.
Une partie de l'info du site officiel:
suPHP 0.6.0 has been released.
For this release suPHP has been completely rewritten. This in an (incomplete) list of only the most important changes:
* Complete code rewritten now using C++ instead of C
* Automake based build system
* suPHP is now reading its runtime configuration from a file
* Apache 1.3 module completely rewritten - now all modes are supported with Apache 1.3, too
* Support for concurrent use of different PHP version (e.g. 3, 4, 5)
This release was sponsored by Techno-vi - Wanix.
Thanks to the sponsor!
suPHP 0.6.0 compilation et installation
La compilation de la nouvelle version de suPHP (0.6.0) semble poser quelques soucis.
Avec les sources d'origine on obtient une erreur à la compilation, pour éviter cette erreur il faut modifier le fichier source: src/apache2/Makefile.in
Info sur http://lists.marsching.biz/pipermail/suphp/2005-June/000840.html
Before doing ./configure i added "-I/usr/include/apr-0" to AM_CFLAGS
(line 96 src/apache2/Makefile.in) then i did:
./configure --with-apache-user=apache --with-apxs=/usr/sbin/apxs2
make
And it compiles!
Ofcorse this is not a good solution, but with the little C experience i have it is the best i can come up with :-( sorry.
Gr. Steven
Après cette modif le ./configure, le make ne plante plus, par contre on obtient une erreur au début.
un apt-get install automake et tout se passe bien.
le make install semble se faire correctement par contre, lorsque l'on veut exécuter un script php, le navigateur ne reconnait pas le type mime et veut télécharger le fichier.
Dans la doc comprise dans le tarball, une nouvelle directive fait son apparition: suPHP_AddHandler à rajouter dans la conf apache
Mais pour pouvoir être reconnu par apache, il faudra modifier le script
src/apache2/mod_suphp.c ligne 316 et 317
RSRC_CONF | ACCESS_CONF au lieu de ACCESS_CONF
Bon, on recommence:
debian:~/suphp-0.6.0# make clean
debian:~/suphp-0.6.0# ./configure --prefix=/usr --with-apxs=/usr/bin/apxs2 --with-setid-mode=paranoid --with-apache-user=www-data --with-php=/usr/bin/php4-cgi --with-logfile=/var/log/apache2/suphp.log
debian:~/suphp-0.6.0# make
Fin du make
make[3]: Leaving directory `/root/suphp-0.6.0/src'
make[2]: Leaving directory `/root/suphp-0.6.0/src'
make[1]: Leaving directory `/root/suphp-0.6.0/src'
make[1]: Entering directory `/root/suphp-0.6.0'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/root/suphp-0.6.0'
On se lance:
debian:~/suphp-0.6.0# make install
Making install in src
make[1]: Entering directory `/root/suphp-0.6.0/src'
Making install in apache2
make[2]: Entering directory `/root/suphp-0.6.0/src/apache2'
make[3]: Entering directory `/root/suphp-0.6.0/src/apache2'
make[3]: Nothing to be done for `install-exec-am'.
/usr/bin/install -c -d '/usr/lib/apache2/modules'
/usr/bin/install -c -m 0755 .libs/mod_suphp.so '/usr/lib/apache2/modules'/mod_suphp.so
make[3]: Leaving directory `/root/suphp-0.6.0/src/apache2'
make[2]: Leaving directory `/root/suphp-0.6.0/src/apache2'
make[2]: Entering directory `/root/suphp-0.6.0/src'
make[3]: Entering directory `/root/suphp-0.6.0/src'
/bin/sh ../config/mkinstalldirs /usr/sbin
/bin/sh ../libtool --mode=install /usr/bin/install -c suphp /usr/sbin/suphp
/usr/bin/install -c suphp /usr/sbin/suphp
make install-exec-hook
make[4]: Entering directory `/root/suphp-0.6.0/src'
chmod u+s /usr/sbin/suphp
make[4]: Leaving directory `/root/suphp-0.6.0/src'
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/root/suphp-0.6.0/src'
make[2]: Leaving directory `/root/suphp-0.6.0/src'
make[1]: Leaving directory `/root/suphp-0.6.0/src'
make[1]: Entering directory `/root/suphp-0.6.0'
make[2]: Entering directory `/root/suphp-0.6.0'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/root/suphp-0.6.0'
make[1]: Leaving directory `/root/suphp-0.6.0'
debian:~/suphp-0.6.0# ls -la /usr/sbin/suphp
-rwsr-xr-x 1 root root 2330978 Jun 24 21:52 /usr/sbin/suphp
Désormais suPHP semble devoir fonctionner avec un fichier de conf
la compil devrait le placer dans /usr/etc/suphp.conf mais il n'en est rien il faudra le faire à la mano.
Pour info un exemple est fourni avec les sources, il suffit d'en faire la copie et de l'adapter.
On essaie:
debian:~/suphp-0.6.0# /etc/init.d/apache2 start
cela ne fonctionne toujours pas.
ajout du suPHP_AddHandler x-httpd-php dans le fichier de conf d'apache
debian:~/suphp-0.6.0# /etc/init.d/apache2 start
Génial ça fonctionne!!!!!! je n'y croyais plus.
Installation de php5-ming sous debian sarge
A l'installation du module ming de php5, le module ne monte pas.
Les logs apache donnent le message suivant.
[Thu Sep 15 10:45:11 2005] [error] [client xxx.xxx.xxx.xxx] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20041030/ming.so' - libming.so: cannot open shared object file: No such file or directory in Unknown on line 0,...
Pour résoudre le problème, voici ma solution.
apt-get install libming-dev
apt-get install libming php5-ming
Ne pas oublier d'ajouter la ligne suivante dans le php.ini si cela n'a pas été fait automatiquement par apt.
extension=ming.so
Un petit screen

Parfois il ne faut pas trop se poser de questions.
Ming sous Fedora Core 4
Ming ne semble pas être disponible sous la Fedora Core 4
Pour info la librairie Ming permet de générer des documents flash à la volée via des scripts php.
Pour le faire fonctionner, j'ai récupéré les modules sous debian sarge
Copie de :
========== Debian ========= | ======= Fedora Core 4 =========
cp /usr/lib/php5/20041030/ming.so | /usr/lib/php/modules/ming.so
cp /usr/lib/libming.so.0.3beta1 | /usr/lib/libming.so.0.3beta1
cp /usr/lib/libungif.so.4.1.3 | /usr/lib/libungif.so.4.1.3
Ensuite : sous Fedora.
cd /usr/lib
ln -s /usr/lib/libming.so.0.3beta1 libming.so.0
ln -s /usr/lib/libming.so.0 libming.so
ln -s /usr/lib/libungif.so.4.1.3 libungif.so.4
Pour php :
création du fichier /etc/php.d/ming.ini
; Enable ming extension module vient de debian
extension=ming.so
Restart d'apache : /etc/init.d/httpd restart
Pour voir : un bout du phpinfo()

En cadeau : Deux swf générés à la volée, les scripts ne sont pas de moi, pour le code c'est par ici.
http://www16.brinkster.com/gazb/ming/
Ils sont très connus: sokoban et invaders
Activation thème par défaut dans phpmyadmin
Le thème par défaut de phpmyadmin n'est pas vraiment top, pour choisir un autre thème il suffit d'ajouter dans le fichier de configuration config.inc.php les 2 lignes suivantes.
// le premier paramètre donne le chemin d'accès aux thèmes disponibles.
$cfg['ThemePath'] = 'themes';
// le second paramètre, c'est pour choisir le thème à utiliser par défaut.
$cfg['ThemeDefault'] = 'darkblue_orange';
Il reste à configurer la taille des caractères, là je n'ai pas trouvé. Comment afficher 95% per exemple?
Impossible de publier dans Mediawiki
Après installation de mediawiki, impossible de publier un article, page blanche après le post du formulaire. Les messages d'erreurs dans error_log.
PHP Warning: UtfNormal::loadData() [<a href='function.loadData'>function.loadData</a>]: open_basedir restriction in effect. File(/UtfNormalData.inc) is not within the allowed path(s): (/var/www/vhosts/xxxxxxxx/httpdocs:/tmp) in /var/www/vhosts/xxxxxxxx/httpdocs/mediawiki/includes/normal/UtfNormal.php on line 229, referer: http://plesk2.xxxxxxxx/mediawiki/index.php?title=Accueil&action=edit
PHP Warning: UtfNormal::loadData(UtfNormalData.inc) [<a href='function.loadData'>function.loadData</a>]: failed to open stream: Operation not permitted in /var/www/vhosts/xxxxxxxx/httpdocs/mediawiki/includes/normal/UtfNormal.php on line 229, referer: http://plesk2.xxxxxxxx/mediawiki/index.php?title=Accueil&action=edit
PHP Fatal error: UtfNormal::loadData() [<a href='function.require'>function.require</a>]: Failed opening required 'UtfNormalData.inc' (include_path='/var/www/vhosts/xxxxxxxx/httpdocs/mediawiki:
/var/www/vhosts/xxxxxxxx/httpdocs/mediawiki/includes:/var/www/vhosts/xxxxxxxx/httpdocs/mediawiki/
languages:.:') in /var/www/vhosts/xxxxxxxx/httpdocs/mediawiki/includes/normal/UtfNormal.php on line 229,
referer: http://plesk2.xxxxxxxx/mediawiki/index.php?title=Accueil&action=edit
Version MediaWiki: 1.9.3
Server version: Apache/2.0.54
PHP 5.0.4 (safe_mode On / Register_Global Off)
mysql 4.1.20
La solution: copier tous les scripts commençant par Utf du répertoire /mediawiki/includes/normal/ dans /mediawiki/includes/
Mise à jour suphp 0.6.3 avec etch
Il me restait une dernière machine en sarge avec suphp 0.6.2. Un passage en etch s'imposait, ainsi que la mise à niveau de suphp en 0.6.3 suite à la dernière faille de sécurité trouvée:
La procédure:
- backup du VPS: OK
- Compilation de la dernière version de suphp: OK
- Passage en etch: OK
- Redémarrage d'apache 2 : failed.
J'ai été obligé de recompiler suphp pour qu'il prenne en compte la version apache 2.2.3
Nettoyage:
web03:~/suphp-0.6.3 # make distclean
web03:~/suphp-0.6.3# ./configure --prefix=/usr --with-apxs=/usr/bin/apxs2
web03:~/suphp-0.6.3# make
web03:~/suphp-0.6.3# make install
Résultat:
PHP 5.2.0-8+etch10 (cgi-fcgi) (built: Jan 18 2008 18:39:55)
Server version: Apache/2.2.3
Server built: Jan 27 2008 18:13:21
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
