Nie wiem czy w dobrym dziale to pisze bo problem w sumie związany jest z php albo apache. Ale do rzeczy. Napisałem sobie jakiś skrypt, który będzie odpalany z wiersza poleceń. Na początku skrypt sprawdza czy zostały podane jakieś parametry wykonania. Testowany najpierw na windows (wyłączałem nawet apacha) i wszystko chodziło bez problemu.

Skrypt przeniosłem na serwer linuksowy. Tam jest zainstalowany apache 1.3.x i php 4.x (nie pamiętam dokładnie). Jak odpalam ten skrypt za pomocą php4.x to mogę sprawdzić zawartość $_SERVER['argv'], natomiast jak odpale za pomocą php5 to pojawia się komunikat w stylu "Undefinied ..." dla linijki gdzie odwołuje się do parametrów uruchomienia skryptu - czyli jak wpisze sobie
Kod
php5 mojskrypt.php /usr/local/cos/tam/jeszcze parametr 2 parametr3

to za cholerę nie mogę sprawdzić jakie parametry zostały podane.

php 5 kompilowałem sam, dokładnie tak jak zawsze (linuks to centos). Doszedłem do wniosku, że aby korzystać w php ze zmiennej $_SERVER['argv'] php musi zostać skompilowane z obsługą apacha. I tu pojawia się problem. Na tym serwerze stoi kerio mail server i nie możemy pozwolić sobie na dłuższy przestój - czyli dłużej niż 5-10 minut (więc odpada zmiana apacha).

1. Mam pytanie czy da się tego php5 skompilować tak, żeby wykorzystał apacha, który jest już zainstalowany?

2. I jeszcze dziwna rzecz.
  1. <?php
  2. if (exec('cp /usr/local/jakis_plik /usr/local/jakis_katalog/jakis_plik')) $iloscSkopiowanychPlikow++;
  3. ?>

Nie działa, tzn nie inkrementuje $iloscSkopiowanychPlikow, tak jakby pomimo tego, że pliki kopiują się byłaby zwracana wartość false (albo nie jest zwracana). Na exec("copy ... ..") dla wersji z windowsa działa poprawnie. I też nie mam pewności czy to nie jest problem wersji php4.x ? Co o tym myślicie?


Problem rozwiązany. Trzeba było w php.ini włączyć register_argc_argv