2011-10-14 9 views
9

Jestem hostowany na 1and1.com i mam skonfigurowane moje pliki do przetworzenia na php5 przy użyciu .htaccess.Jak mogę wymusić wersję PHP dla wiersza poleceń?

Ale działa to tylko w apache, a nie w linii poleceń, domyślnie na domyślnym serwerze php4.

Obecnie nie mogę ustawić zadań cron, aby uruchomić mój kod jako php5. Jakieś pomysły?

Odpowiedz

9

Jeśli oba są zainstalowane, wystarczy uruchomić skrypt, używając odpowiedniego pliku binarnego PHP.

Tak na przykład:

// Runs using the PHP binary located at /usr/bin/php 
* * * * * root /usr/bin/php -n "/path/to/script.php" 

lub

// Runs using the PHP binary located at /var/php5 
* * * * * root /var/php5 -n "/path/to/script.php" 

Wszystko, co musisz wiedzieć, to pełną ścieżkę systemu plików binariów PHP CLI i wywołać odpowiednią jedną do uruchomienia kodu.

1

muszą istnieć dwa katalogi PHP, a jeden z nich powinien być domyślny. spróbuj znaleźć ścieżkę php5 z katalogu głównego serwera i użyj pełnej ścieżki do zadania cron.

+2

'whereis php' może pomóc w znalezieniu twojego php-lokalizacje – Zombaya

+0

'który php' lub' który php5.5-cli' jako 1and1 linii poleceń nie ma 'whereis' – Abinadi

3

Jeśli można wykonać skrypty bezpośrednio w powłoce jak:

$ script.php 

można określić binarnego, który będzie wykonywał skrypt w to pierwsza linia:

#!/usr/bin/php 
<?php 

Linia ta nazywa shebang . Linia może się różnić w twoim systemie, musisz znać pełną ścieżkę systemu plików binarnego PHP CLI, którego chcesz użyć dla tego skryptu.

Jeśli wykonasz ten plik w powłoce, użyty zostanie określony plik binarny. To samo dotyczy crona.

Jeśli uruchomisz ten plik za pomocą serwera WWW, PHP porzuci tę linię po cichu.

Zobacz także:Features: Using PHP from the command line

0

wreszcie dostałem tej pracy. Problem był kilkukrotny.

Najpierw używane PHP było w/etc/bin zamiast wersji MAMP. Mogłem to zmienić i zamiast tego używam wersji MAMP.

Po drugie, aby korzystać z php za pośrednictwem CLI, upewnij się, że używasz ścieżki FULL do php, a nie tylko do php. To znaczy. użyj /MAMP/bin/php/php5.3.x/php w swoim wywołaniu exec(). To teraz działa dla mnie.

Można sprawdzić moje GIST tutaj ... https: //gist.github.com/1861487

+0

Nie musisz używać pełnej ścieżki do php, aby uruchomić w CLI (po uruchomieniu php z terminalu na moim Macu przy użyciu MAMP, XAMPP i instalacji w magazynie OSX, jestem su z tego powodu.) Powodem, dla którego to robiłeś, było (w zależności od otrzymanego błędu): a) Nie masz katalogu bin w zmiennej PATH env (która pobiera mnie za każdym razem) lub b) masz wiele wersji php zainstalowane i pierwszy na ścieżce nie był tym, którego chciałeś. W przypadku pierwszego z nich możesz potwierdzić, wykonując następujące czynności przed wywołaniem php: 'PATH = $ PATH:/MAMP/bin' – Anthony

+0

Nie odpowiada to w ogóle na pytanie. OP pytał o środowisko 1 i 1, które nie ma nic wspólnego z MAMP. – Abinadi

1

To kolejne podejście zmusić PHP z linii poleceń na 1and1.

Zaloguj się z ssh na serwerze i utwórz nowy plik o nazwie .profile tam można napisać następującą linię alias php='/usr/local/bin/php5' zalogować się ponownie z ssh i sprawdzić wersję PHP z php -v powinieneś zobaczyć wersja jest teraz 5.

Powiązane problemy