Apache : AH01071: Got error Primary script unknown
Lors de la création d’un vhost sur Apache, une fois le code du site importé j’ai eu l’erreur suivante dans les logs :
AH01071: Got error 'Primary script unknown\n'
Plusieurs pages du site affichaient également un File not found.
J’ai pas mal galéré avant de trouver l’origine du problème, et surtout comment le résoudre.
Le code PHP du client était exécuté via FPM, avec la directive suivante :
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/palc.fr/$1
Mais à la racine de son site, un fichier .htaccess était rempli de règles de ce style :
RewriteRule ^/gallery/index.php /phototheque.php [NC,L]
RewriteRule ^/gallery/client.php /phototheque-client.php [NC,L]
Le problème c’est que le ProxyPassMatch est exécuté avant les RewriteRule du .htaccess. Du coup, quand on demande une page PHP correspondant à une RewriteRule, Apache va d’abord essayer de l’exécuter avec FPM et retourner une erreur, puisque le fichier PHP n’existe pas.
La solution est de demander à Apache de n’utiliser FPM que si le fichier existe. Il faut remplacer
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/palc.fr/$1
Par :
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000/"
</FilesMatch>
PHP: La bonne manière
Si vous gérer des serveurs ou différents services pour le compte de clients, il peut-être intéressant de mettre à leur disposition une page récapitulant l'état de fonctionnement de ces services.
C'est ce que propose SystemStatus, un script PHP sous licence Creative Commons qui s'installe très rapidement sur un serveur et qui permet de configurer un ensemble de systèmes à surveiller. Ensuite, lorsqu'un problème arrive ou qu'un ticket de maintenance est créé, le status change.
Font Squirrel webfont-generator
Quickstart
PhpMetrics provides various metrics about PHP projects.
Installation
composer global require 'phpmetrics/phpmetrics'
phpmetrics --report-html=myreport.html /path/of/your/sources
PHP Malware Finder
Webshell finder,
kiddies hunter,
website cleaner.
https://github.com/nbs-system/php-malware-finder
Detect potentially malicious PHP files.
Retina revolution
Très intéressant, comme idée: Des images de meilleure qualité, mais avec des fichiers plus petits, le tout en JPEG standard ?
Au lieu d'utiliser une image 320x200 à 80% de qualité, mettez une image 4 fois plus grande (600x400) à 40% de qualité (ou même 30%), mais réduite à l'affichage de 50%.
Assez étonnamment, la qualité semble meilleure sur les contours. Autre avantage: Sur les écrans haute résolution (genre Retina), la qualité d'affichage est bien meilleure, le tout sans avoir à faire de bidouilles foireuses (genre détection de user-agent).
L'effet de bord de cette méthode est d'augmenter la consommation mémoire (puisque les images sont plus grandes décompressées).
PHP Directory Lister - The Simple Web Directory Lister
<?php
echo "Votre navigateur a pour \"signature\":<br />".
htmlEntities($_SERVER["HTTP_USER_AGENT"]);
?>
Checkl tools for Webmaster on Ehosystem
Ip Dns PHP CSS and more ...
HTAccess, PHP, WordPress, jQuery, HTML, CSS | Perishable Press