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 /bin
nur 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.