Raketenwilli: Korrektur und Nachtrag

Beitrag lesen

Eine zusätzliche Bremse kannst Du wie folgt einbauen:

#!/usr/bin/php

if ( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
    exit;
}

Hm. Ich mach auch Fehler ...

Da fehlt das <?php - sonst gibt PHP das Skript nur aus.

#!/usr/bin/php
<?php 
if ( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
    exit;
}

Ich hab nach einer Option geschaut, mit der man die „PHP-Tags“ weglassen kann aber php -r funktioniert nur wenn man den Code als Einzeiler direkt dahinter notiert. Dabei hab ich was anderes gefunden.

man 1 php in meinem Ubuntu liefert eine veraltete Information:

TIPS You can use a shebang line to automatically invoke php from scripts. Only the CLI version of PHP will ignore such a first line as shown below:

#!/bin/php
<?php
// your script
?>

Der Pfad zu PHP mag unter Ubuntu gerade noch funktionieren, aber den Ordner /bin haben andere Distributionen schon nicht mehr (und PHP bzw. hat da auch nie wirklich hinein gehört). Unter Ubuntu 22.04 ist der ehemalige Ordner /binnur noch ein Link zu /usr/bin. Die obige Angabe (im für das brandaktuelle PHP 8.2 gelieferten Linux-Manual!) ist also aus Linux-Sicht „deprecated“.

Aber wenn man in den (die) Ordner hineinsieht, dann findet man auf meinem System folgende Verweisungen durch Links heraus:

  • /usr/bin/php → /etc/alternatives/php → /usr/bin/php8.2

Man kann in der Shebang also dem Muster in der obigen Zeile die Verwendung einer bestimmten PHP-Version erzwingen, die muss halt nur parallel installiert sein.