Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

PHP auf der Kommandozeile

Hallo zusammen,

ich möchte gern ein php-script auf der kommandozeile ausführen. aber irgendwie funktioniert das ganze nicht.

ein ganz einfaches

Code:                   In Zwischenablage kopieren (nur IE)
1">

aus der man-page zu php gibt nichts aus. könnt ihr mir helfen wo ich da ansetzen muss?

Linux version 2.4.31 (gcc version 3.3.5 (Debian 1:3.3.5-13))
PHP Version 5.1.2

Viele Grüße
Hier gehts zum Orginal Eintrag "PHP auf der Kommandozeile" im Forum

Antworten

Bei mir:

PHP4
Zitat:
php -r 'echo "Hello World\n";'
Error in argument 1, char 2: option not found r
Error in argument 1, char 2: option not found r
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>]
php <file> [args...]
-a Run interactively
-b <address:port>|<port> Bind Path for external FASTCGI Server mode
-C Do not chdir to the script's directory
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse <file>. Implies `-q'
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-q Quiet-mode. Suppress HTTP Header output.
-s Display colour syntax highlighted source.
-v Version number
-w Display source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.
PHP5
Zitat:
php -r 'echo "Hello World\n";'
PHP Parse error: parse error, unexpected $end in Command line code on line 1
Parse error: parse error, unexpected $end in Command line code on line 1

--------------
<<<--- das geht!!! --->>>
Zitat:
php -v
PHP 5.1.1 (cli) (built: Nov 27 2005 21:39:02)
Copyright (c) 1997-2005 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2005 Zend Technologies



2.

ok, es funktioniert bei dir. bei mir aber nicht. deshalb ja auch die frage.


3.

also wenn du
php -v
eingibst kommt danach einfach wieder das prompt, ohne fehlermeldung etc?
schau mal per
which php
ob php überhaupt gefunden wird


4.

Versuch1: php -r 'echo "Hello World\n";' ist auf jeden Fall zum scheitern verurteilt...

So... da es bei mir geht, kann ich deinen Fehler nicht nachvollziehen...

Das dort gar nichts kommt, ist sehr seltsam!!
Keinen Meldung? Nichts?

evtl error_reporting in der php.ini hochdrehen..
log files kontrollieren......


5.

Zitat:
BenniG. postete
also wenn du
php -v
eingibst kommt danach einfach wieder das prompt, ohne fehlermeldung etc?

genau, keine fehlermeldung keine ausgabe - nichts

Zitat:
schau mal per
which php
ob php überhaupt gefunden wird
# which php
# /usr/bin/php

Zitat:
php -r 'echo "Hello World\n";' ist auf jeden Fall zum scheitern verurteilt...
das habe ich aus den man-pages zu php
# man php
.......
EXAMPLES
php -r 'echo "Hello World\n";'
This command simply writes the text "Hello World" to standard out.
.......

also gehe ich mal davon aus, das der befehl richtig ist - oder die man-pages sind falsch (fällt mir aber schwer zu glauben)


6.

Zitat:
oder die man-pages sind falsch (fällt mir aber schwer zu glauben)
ich habs auch nicht so mit glauben :D

Aber da es bei mir nicht fluppt, kann ich das sogar als Beweis ansehen!!!!
Oder es hat sich ein dummer Tippfehler eingeschlichen


7.

also php -r gibts bei mir auch nicht..
mal php --help versucht?
irgendwas stimmt da wohl bei dir nicht..


8.

Zitat:
combie postete
Aber da es bei mir nicht fluppt, kann ich das sogar als Beweis ansehen!!!!

damit hast du bewießen, das ein befehl aus der dokumentation bei dir nicht funktioniert. bringt mich aber kein stück weiter


9.

[color="firebrick"]evtl error_reporting in der php.ini hochdrehen..
log files kontrollieren......
[/color]
hast du das gemacht?


10.

Zitat:
BenniG. postete
mal php --help versucht?

#php --help
#

gibt nichts zurück

ebenso
#php -h

oder
#php -?

in /var/log/messages steht auch nichts drin


11.

Zitat:
combie postete
[color="firebrick"]evtl error_reporting in der php.ini hochdrehen..
log files kontrollieren......
[/color]
hast du das gemacht?
error_reporting = E_ALL & ~E_NOTICE


12.

error_reporting = E_ALL | E_STRICT


13.

Zitat:
combie postete
error_reporting = E_ALL | E_STRICT
keine Änderung. keine ausgabe bei php -v (was ja bei dir funktioniert hat) und kein eintrag in /var/log/messages

könnten die fehlermeldungen auch in einer anderen datei stehen? in /var/log/httpd/error_log stehen doch nur die fehler vom apache, oder?


14.

Punkt 1:

Ihr hab beide unrecht, die man-pages stimmen und hier der beweis:

Code:                   In Zwischenablage kopieren (nur IE)
2">

ergibt:

Code:                   In Zwischenablage kopieren (nur IE)
3">

Punkt 2:

Das der bei dir Parse errors bringt liegt höchst wahrscheinlich daran das du nur das PHP-Modul für den Webserver installiert hast, installier mal das packet:

php5-cli - command-line interpreter for the php5 scripting language

/Edit

Zitat:
könnten die fehlermeldungen auch in einer anderen datei stehen? in /var/log/httpd/error_log stehen doch nur die fehler vom apache, oder?
Nein der PHP consolen interpreter macht das nicht in die Apache log rein, wenn du debian hast schau mal in die syslog


15.

Hehe, stimmt..
php5 gibts bei mir, da auch ein php5 -r, da funktioniert sogar das echo..
also lucky3_06 php5 oder php5-cli probieren..


16.

@Disi
Zitat:
Ihr hab beide unrecht, die man-pages stimmen und hier der beweis:
Das ist ein Beweis dafür, das du mit cut&past fragmente aus den Manpages kopieren kannst!!

Zitat:
php -r 'echo "Hello\n";'
funktioniert bei meinem 5.1.1 ebend nicht!!! Bei deinem scheinbar ja.
Obwohl diese option mit php --help angezeigt wird!!

php -f test.php
funktioniert sehr wohl!!
(bei mir)


17.

Code:                   In Zwischenablage kopieren (nur IE)
4">

dieses funktioniert!!


18.

Zitat:
Disi postete
installiert hast, installier mal das packet:

php5-cli - command-line interpreter for the php5 scripting language

OK, leider bin ich nicht so der Linux-Pro.

Eine stable Version gibt es nicht (siehe: http://packages.debian.org/)

Ein unstable oder testing release, wurde mir in anderen Foren gesagt, hat auf einem produktiven Server nichts verloren.
Jetzt bin ich mir nicht sicher ob ich das paket trozdem installieren soll, oder eher auf eine alternative ausweichen sollte.

#apt-get install php5-cli
Reading Package Lists... Done
Building Dependency Tree... Done
Package php5-cli is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package php5-cli has no installation candidate


19.

gibts bei dir denn php5 oder php5-cli als "kommando" mit php funktionierts bei mir nicht, php5 gibts aber und da funktionierts..


20.

Zitat:
BenniG. postete
gibts bei dir denn php5 oder php5-cli als "kommando" mit php funktionierts bei mir nicht, php5 gibts aber und da funktionierts..
#php5
-bash: php5: command not found

#php5-cli
-bash: php5-cli: command not found


21.

@combie:

Nein der beweis wurde weiter unten geliefert, das bei dir
Code:                   In Zwischenablage kopieren (nur IE)
5">

in DER form funktioniert ist ja auch klar da du den string in einem " einkapselst musst du die in dem String vorhandenen " escapen. Aber wenn das bei dir geht MUSS das auch gehen!
Code:                   In Zwischenablage kopieren (nur IE)
6">

@lucky3_06:

Aha du hast also ein debian stable, dann sollte das Packet php-cli heißen.

mach mal ein
Code:                   In Zwischenablage kopieren (nur IE)
7">

/Edit

Eventuell auch das php4-cgi packet installieren!


22.

Gib mal folgendes Kommando in der Shell ein (ich mache hier $ als Promptsymbol):

Code:                   In Zwischenablage kopieren (nur IE)
8">

Achtung: Backticks eingeben, nicht Quotes!

Was bekommst Du als Ausgabe?


23.

[quote]Disi postete
@combie:

Nein der beweis wurde weiter unten geliefert, das bei dir
Code:                   In Zwischenablage kopieren (nur IE)
9">

in DER form funktioniert ist ja auch klar da du den string in einem " einkapselst musst du die in dem String vorhandenen " escapen. Aber wenn das bei dir geht MUSS das auch gehen!
Code:                   In Zwischenablage kopieren (nur IE)
10">

[/quote] Nein es geht mit Singlequotes, bei mir, definitiv nicht!!!


24.

[quote]Disi postete

mach mal ein
Code:                   In Zwischenablage kopieren (nur IE)
11">

/Edit

Eventuell auch das php4-cgi packet installieren![/quote] # apt-cache search php4 | grep cli
php4-cli - command-line interpreter for the php4 scripting language
php4-tclink - TrustCommerce TCLink module for php4

veträgt sich php4 -cli mit php 5? installiert ist ja PHP Version 5.1.2


25.

Zitat:
installiert ist ja PHP Version 5.1.2
scheinbar sind dort 2 Versionen installiert!!


26.

# php4 -r 'echo "Hello World\n";'

funktioniert jetzt. Ich kann jetzt auch andere PHP-Scripte ausführen. Erstmal vielen Dank für Eure Hilfe. Hätte ich allein nicht hinbekommen.

Abschließend:
Wenn ich das jetzt richtig verstanden habe sind auf dem Server beide Versionen (4 und 5) installiert. PHP4 für die command-line und PHP5 als Modul für den Webserver. Richtig?


27.

Also ich finde das derjenige der diesen Server eingerichtet hat eingesperrt gehört ;)

Punk1: Debian ist aus einem Grund besonders stabil, die Packet sicherheit!
Punk2: Derjenige der PHP5 dort einfach reinkompiliert hat hat natürlich die hälfte vergessen. Falls es nicht rein kompiliert wurde müsstest du im apt-cache search php5 drinne haben, was ja nicht wirklich so ist, oder?
Punk3: An deiner stelle würde ich mich entscheiden. Entweder php4 ODER php5

Wenn du dich für PHP4 entschieden hast installiere ein neues Debian Stable(Sarge) System (würde ich dir zu raten!)
Wenn du unbedingt PHP5 willst dann nutze Debian Testing(Etch) was meiner Meinung nach nichts auf einem Produktionssystem zu suchen hat. Meine empfehlung also, nehme Debian Sarge, warte bis Dezember dann haste ein voll Stabiles php5 im Ordentlichen und gepflegtem Debian ;)


28.

Zitat:
warte bis Dezember dann haste ein voll Stabiles php5 im Ordentlichen und gepflegtem Debian
Du meinst Dezember 2008? ;)


29.

Zitat:
Disi postete
Wenn du dich für PHP4 entschieden hast installiere ein neues Debian Stable(Sarge) System (würde ich dir zu raten!)
Wenn du unbedingt PHP5 willst dann nutze Debian Testing(Etch)
PHP4 würde mir reichen. Ich weiß aber nicht, ob ich dort so einfach ein neues System installieren kann/darf. Außerdem würde ich mir auch nicht so ganz zutrauen.

Wäre es aber nicht einfacher PHP5 komplett zu deinstallieren und PHP4 sauber wieder drauf zu machen?

Zitat:
Du meinst Dezember 2008? ;)
Das ist etwas lang :)


Hier gehts zum Orginal Eintrag "PHP auf der Kommandozeile" im Forum
 
phpforum.de | Impressum