Toon posts:

PHP op commandline gaat fout

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo,

ik wordt helemaal pissed op mijn linux server. Iedere keer hetzelfde gezeik dat het een niet wilt werken of het ander.

Ik draai mandrake 9.1, mijn home dir geshared via samba.

ik heb 2 scriptjes
test
code:
1
2
3
4
5
6
 cat test
#!/usr/bin/php -q
<?
set_time_limit(0);

?>

test2
code:
1
2
3
4
5
6
cat test2
#!/usr/bin/php -q
<?
set_time_limit(0);

?>


dit zijn de rechten op de bestanden:
-rwxrwxrwx 1 bojo bojo 44 Aug 18 06:26 test*
-rwxrwxrwx 1 bojo bojo 49 Aug 18 06:29 test2*


het lijkt dus allemaal hetzelfde, maar dat is het dus niet.

test kan die gewoon uitvoeren (./test)
alleen bij test 2 gaat het fout
als ./test2 uitvoer krijg ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 ./test2
Error in argument 1, char 3: option not found
Error in argument 1, char 3: option not found
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -a               Run interactively
  -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>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin


Heerlijk is dit, alles lijkt hetzelfde. Maar de een doet het niet.
Het enige verschil is dat het test is aangemaakt met vi in mandrake en test2 is aangemaakt met notepad in windows.

Kan mij iemand vertellen hoe ik dit wel goed werkend kan krijgen?

  • Arnout
  • Registratie: December 2000
  • Laatst online: 21:43
Waarschijnlijk een rare enter (char 3 van option 1 is na de "-q").

Notepad moet je eigenlijk zien te vermijden, gebruik dan wordpad.
Onder linux commandline gebruik ik altijd Joe als editor (debian pakketje).

vi ken ik alleen van m'n opleiding en het was afschuwelijk.

[ Voor 68% gewijzigd door Arnout op 18-08-2003 11:37 ]


Verwijderd

Topicstarter
als het het test2 dan aanpas, en alle enters verang met vi, door "vi enters". Werkt het nog niet

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

probeer eens
code:
1
diff test.php test2.php
:?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Spider.007 schreef op 18 August 2003 @ 11:39:
probeer eens
code:
1
diff test.php test2.php
:?
Dit resulteerd in:
code:
1
2
3
4
5
6
7
8
9
10
11
diff test test2
1,4c1,4
< #!/usr/bin/php -q
< <?
< set_time_limit(0);
< ?>
---
> #!/usr/bin/php -q
> <?
> set_time_limit(0);
> ?>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:55

Janoz

Moderator Devschuur®

!litemod

De ene heeft \n als newline en de ander heeft \n\r als newline. Vandaar dat de ene ook 5 bytes groter is (5 regels) Php vindt dat dus geen geldige php en gaat (erg rare) foutmeldingen geven

Doe eens ' dos2unix test2' en probeer het dan weer.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
hmmm dat progjes heb ik niet op mijn bakkie staan
en urpmq kent em ook niet :(

als ik het hele bestand opnieuw type in vi, werkt het nog niet

[ Voor 30% gewijzigd door Verwijderd op 18-08-2003 11:49 ]


  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 03-04 19:47
cp test test2 misschien?

Verwijderd

Topicstarter
Dat zal wel werken.
Dan wordt test2 gekopieerd van test. En test werkt

alleen wil ik weten waarom test 2 niet werkt...

  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03-2025
Zie Janoz' reply. Installeer dos2unix nou ff, dan ben je van het probleem af.

Edit: of gebruik UltraEdit als editor, dan heb je hier iig geen last van.

[ Voor 24% gewijzigd door rig0r op 18-08-2003 12:08 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:55

Janoz

Moderator Devschuur®

!litemod

Probeer ipv het dos2unix commando eens:

sed -r -e 's/\n\r/\n/' test2 > test3

Of upload je bestandje in asci mode naar je server ipv met samba

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Ik wil graag mijn bestanden "delen" via samba, zodat ik ze gewoon direct kan openen met textpad en als ze dan opsla zijn ze direct gewijzigd op de server.

test3 doet het dan ook niet:(

-rwxrwxrwx 1 bojo bojo 43 Aug 18 07:01 test*
-rwxrwxrwx 1 bojo nogroup 47 Aug 18 07:09 test2*
-rwxrwxrwx 1 bojo bojo 47 Aug 18 07:16 test3*

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:55

Janoz

Moderator Devschuur®

!litemod

Tja, dan zul je een fatsoenlijke editor moeten gebruiken die wel met unix bestanden om kan gaan. Misschien is het ook mogenlijk om in samba aan te geven dat bepaalde bestands extenties als asci moeten worden behandeld.

Mijn sed commando was een voorbeeldje en absoluut neit getest. Ik hoopte dat ik daarmee een beetje het probleem aan kon geven. Ik neem aan dat je duidelijk aan de ls kunt zien dat er niks veranderd is en dat het vervang scriptje van mij dus toch niet werkte. Je had natuurlijk nog even kunnen kijken en dan tot de ontdekking kunnen komen dat een windows newline geen \n\r maar \r\n is en ik dus een foutje in mijn ongeteste code heb gemaakt.

Aan het begin van het topic plaats je de volgende opmerking :
k wordt helemaal pissed op mijn linux server. Iedere keer hetzelfde gezeik dat het een niet wilt werken of het ander.
Maar als ik nu kijk wat je allemaal zelf probeert om een probleem op te lossen en hoe je bepaalde dingen aanpakt dan denk ik dat je heel misschien imho meer reden zou moeten hebben om 'pissed' op jezelf te zijn ipv op je server

[ Voor 10% gewijzigd door Janoz op 18-08-2003 12:18 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Janoz schreef op 18 August 2003 @ 12:16:
Maar als ik nu kijk wat je allemaal zelf probeert om een probleem op te lossen en hoe je bepaalde dingen aanpakt dan denk ik dat je heel misschien imho meer reden zou moeten hebben om 'pissed' op jezelf te zijn ipv op je server
Nouja, zo sterk wil ik het niet stellen, maar misschien is het verstandiger voor de topicstarter, voor z'n eigen gemoedsrust enzo ;) Om gewoon een windows-server neer te zetten i.p.v. Linux.

God, root, what is difference? | Talga Vassternich | IBM zuigt


Verwijderd

Topicstarter
ik heb zelf het een en ander geprobeerd, zover ik wist.
Wat ik niet weet kan ik niet doen. Ben een expert in linux.

Tot vandaag heb ik nog nooit problemen gehad met rare enters en dergelijke. Op mijn vorige installatie op de server (redhad) deed ik het precies hetzelfde en daar heb ik geen problemen gehad.

Ben nog zelf op onderzoek uit gegaan, en vond een andere editor.
Het probleem zit het em PC ansi en UNIX ansi.
Zodra een bestand is aangemaakt met PC ansi. Dan kan het NOOIT werken, ook al gooi je het hele bestand leeg.

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 03-04 19:47
Je werkt met TextPad onder Windows? Sla je (nieuwe) bestanden op als UNIX formaat en in het vervolg gaat het goed :)

Verwijderd

Verwijderd schreef op 18 August 2003 @ 12:28:
ik heb zelf het een en ander geprobeerd, zover ik wist.
Wat ik niet weet kan ik niet doen. Ben een expert in linux.

Tot vandaag heb ik nog nooit problemen gehad met rare enters en dergelijke. Op mijn vorige installatie op de server (redhad) deed ik het precies hetzelfde en daar heb ik geen problemen gehad.

Ben nog zelf op onderzoek uit gegaan, en vond een andere editor.
Het probleem zit het em PC ansi en UNIX ansi.
Zodra een bestand is aangemaakt met PC ansi. Dan kan het NOOIT werken, ook al gooi je het hele bestand leeg.
Je bent een expert in Linux?
hmmkay.


in vi(m):
:%s/^vm//

los je je probleempje ook op

[ Voor 7% gewijzigd door Verwijderd op 18-08-2003 12:47 ]


Verwijderd

of misschien nog makkelijker:

set ff=unix van dos -> unix (vwb ^m enzo)
set ff=dos van unix -> dos

Werk alleen in (g)vim

[ Voor 14% gewijzigd door Verwijderd op 18-08-2003 12:54 ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op 18 August 2003 @ 12:28:

Zodra een bestand is aangemaakt met PC ansi. Dan kan het NOOIT werken, ook al
gooi je het hele bestand leeg.
Ohja? Omdat er dan een speciale PC-ansi flag gezet wordt ofzo?
Dit lijkt me gewoon een kwestie van een fatsoenlijke editor nemen die unix-regeleindes gebruikt, of creatief vim'en of sed'en zodat hij de overbodige characters aan het einde stript, of dos2unix, mogelijkheden te over, die allemaal simpel te vinden zijn lijkt mij -> op slot
Pagina: 1

Dit topic is gesloten.