Korrektur und Nachtrag
bearbeitet von Raketenwilli> Eine zusätzliche Bremse kannst Du wie folgt einbauen:
>
> ~~~PHP
> #!/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.
~~~PHP
#!/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:
~~~PHP,bad
#!/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.
PHP via CLI
bearbeitet von Raketenwilli> Eine zusätzliche Bremse kannst Du wie folgt einbauen:
>
> ~~~PHP
> #!/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.
~~~PHP
#!/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:
~~~PHP,bad
#!/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.