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>
UwAmp, un serveur Web sur votre clé USB et une alternative à WampServer
mysql PHP serveur wamp web windows apache
Si vous êtes développeur Web, vous avez très certainement entendu parlé du logiciel WampServer. C'est un des principaux acteurs dans le monde des logiciels permettant d'avoir un serveur Apache, MySQL et PHP sur Windows. Découvrons une alternative intéressante : UwAmp.
WampServer, tout comme ses concurrents EasyPHP ou XAMPP, est assez lourd d'utilisation. Mettre à jour le logiciel est pénible, tout comme le fait de pouvoir utiliser plusieurs versions de PHP et notamment les plus récentes.
Add Brotli compression support to Apache for static assets and pages
The Apache web server doesn’t yet support stream compression using Brotli, but it’s easy to add support for static pages and assets such as CSS and Javascript files that you precompress. Browser support for Brotli is coming in Firefox 44 and in Chrome, and it provides about 15% savings versus precompressing with gzip/deflate.
First, download and build Brotli if it’s not already installed on your system. You’ll need to run make in the “dec”, “enc” and “tools” directories to build the bro executable. A quick note here, if you’re using an older version of GCC you might get an error message because your g++ doesn’t support the -std=c++11 flag. I ran into this on an older Debian server (GCC 4.6.3 from 2011), changed -std=c++11 to -std=c++0x in the CXXFLAGS line of shared.mk, and the build completed normally.
Compress and configure
Next, compress your files. If you already have static files compressed with the .gz extension, here’s a one-liner to recompress them all using bro:
Activer le protocole HTTP/2 sous Apache 2.4.17 et supérieur
How to use:
DirectoryIndex index.html index.php /_h5ai/public/index.php
Download:
https://release.larsjung.de/h5ai/h5ai-0.29.0.zip
Site :
https://larsjung.de/h5ai/
h5ai is a modern file indexer for HTTP web servers with focus on your files. Directories are displayed in a appealing way and browsing them is enhanced by different views, a breadcrumb and a tree overview. Initially h5ai was an acronym for HTML5 Apache Index but now it supports other web servers too.
See the demo directory with most features enabled. A reduced example and my actual use case is the release directory for the projects on this page.
Requires PHP 5.5+ and works fine with Apache httpd, lighttpd, nginx and Cherokee. Best user experience with the latest versions of Chrome, Firefox, Opera, Vivaldi, Safari and Edge, but a static fallback is provided for older browsers or if JavaScript is disabled.