2012-11-08 15 views
7

mam problem z PHP, który jest wywołać poprzez polecenia bash "php":Mac/OSX - Zmiana wersji PHP, który jest wywołanie w bash

W bash:

php -v # PHP 5.3 0,17

/usr/bin/php # PHP 5.3.15

Chcę wtórnego PHP w wersji 5.3.15 jako głównie dlatego, że w tej wersji mam prawidłowo zainstalowane rozszerzenia itp

Jak mogę ustawić /usr/bin/php jako główny -> Chcę gdy wezwanie "php -v" powrót moją wersję 5.3.15.

Wykonam mój zły angielski, mam nadzieję, że rozumiesz.

Dziękuję bardzo. Mam Mac OS X Lion

+0

Czy jest jakaś różnica w funkcjonalności PHP między tymi wersjami? ('5.3.15 vs 5.3.17') Chociaż pytanie jest dobre. – feeela

+0

Tak, zainstalowałem intl i bibliotekę ICU, która działa dla mnie tylko w wersji 5.3.15. – frosty22

Odpowiedz

3

Polecam Ci zainstalować php poprzez "Mac Ports".

Masz zainstalowane wiele wersji php.

Z polecenia CLI „które” można:

OPIS Narzędzie which bierze listę nazw poleceń i przeszukuje ścieżkę dla każdego pliku wykonywalnego które byłyby uruchamiane było polecenia te faktycznie zostały zastosowane .

Przeczytaj strony podręcznika polecenia cli "co".

to zrobić z CLI:

który php

i wtedy zobaczyć, gdzie znajduje się Twój php wykonywalny. Polecam tylko zastąpienie twojego pliku php za dowiązanie symboliczne do twojego/usr/bin/php.

+0

Tak, który zwraca "/ opt/local/bin/php". Myślę, że mam bałagan w PHP na moim komputerze, ponieważ użyłem poprawnie PHP, który był w OSX (Lion), ale potrzebowałem biblioteki php_intl, więc zainstalowałem tę bibliotekę przez Mac Porty i wiem, że mam dwie wersje PHP oraz z php_intl i poprawnie ustawione jest wersja/usr/bin/php. – frosty22

+0

@ frosty22 ok, po prostu zrób to, co powiedziałem, usuń link lub plik php wewnątrz/opt/local/bin, a następnie utwórz dowiązanie symboliczne o nazwie php wewnątrz/opt/local/bin kierujące do/usr/bin/php, a następnie to jeden będzie oficjalną wersją php cli i to wszystko. – slash28cu

+1

Dzięki usuń plik '/ opt/local/bin/php' i utwórz dowiązanie symboliczne -' sudo ln -s/usr/bin/php/opt/local/bin/php' działa idealnie – frosty22

1

Powinieneś wyszukać ścieżkę i sprawdzić wszystkie katalogi na ścieżce, aby znaleźć dowiązanie symboliczne do niewłaściwej wersji php.

Następnie możesz usunąć ten link symboliczny i zastąpić go linkiem do odpowiedniej wersji.

Można również użyć find zobaczyć wszystkie instancje:

$ sudo find/-name "php" 
6

Innym sposobem bez zmiany oryginalnego pliku/pliku php jest edycja.plik .bashrc w następujący sposób (współpracuje z innymi poleceniami, jak również):

  1. Otwórz Terminal/poleceń i wpisz:

    vim ~/.bashrc 
    
  2. Następnie wciśnij „i” aby dostać się do edycji trybie (jeśli istnieje pojawia się problem, przed tym, ponieważ z pliku wymiany, a następnie naciśnij przycisk „E”, aby edytować plik tak)
  3. Dodaj następujący wiersz (zmień ścieżkę w miarę potrzeb):

    alias php="/Applications/MAMP/bin/php/php5.4.10/bin/php" 
    
  4. Naciśnij "ESC" i wpisz ": wq"
  5. Jeśli potrzebujesz php-alias do pracy zaraz po obecnej sesji powłoki, musisz użyć następującego polecenia (opcjonalnie, więc tylko jeśli ur kontynuowania pracy w bieżącej powłoce):

    source ~/.bashrc 
    

to wszystko, bez zmian w usr folderze// bin potrzebne, a u można wyeksportować plik .bashrc/ustawienia do innego systemu Linux/BSD jak w razie potrzeby bez dotykania plików systemu OS/usr/bin. Możesz również dodawać nowe aliasy dla różnych wersji php, aliasów takich jak "php52", "php53", "php54", itp. Do celów testowych lub jakiegokolwiek innego.

Have fun, ioCron

5

Dla użytkowników piwny, może nie być konieczne php55 jeśli masz już 54 - ale niezależnie powinieneś uruchomić te polecenia

$ brew install php54 php54-xdebug php54-mcrypt 

można zastąpić 54 z najnowszym numer, jeśli chcesz. ostatnio sprawdzałem to było na 56

następnie w oparciu o niektóre komentarze powyżej was powinien uruchomić:

$ php --version 

to prawdopodobnie będzie wyświetlać:

PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) 
Copyright (c) 1997-2013 The PHP Group 
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies 

jeśli tak, to zmienić. bash_profile jak niektórzy inni komentujący moja instancja browaru (domyślam się, że domyślnie) mieszka w

/usr/local/Cellar 
/usr/local/bin 

w miarę instalowania rzeczy za pomocą naparu, są umieszczane w piwnicy i łączone przez kosz.ale w tym przypadku musimy zastąpić PZP

$ sudo nano ~/.bash_profile 

kopalnia trochę wygląda następująco:

PATH=$PATH:~/bin 
PATH=$PATH:/usr/local/bin 
PATH=$PATH:/usr/local/sbin 
PATH=$PATH:/usr/local/Cellar/r/2.15.1/R.framework/Versions/Current/Resources/li$ 
export PATH 

co oznacza, że ​​już ma dostęp do katalogu/usr/local/bin - ale używam aliasu określić przez dodanie tej linii, w pobliżu dna:

alias php="/usr/local/bin/php" 

zapisz i zamknij okno terminala, otworzyć jeszcze jeden, i powinien pokazać coś takiego:

$ php --version 
PHP 5.4.27 (cli) (built: Apr 24 2014 17:16:35) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies 
    with Xdebug v2.2.4, Copyright (c) 2002-2014, by Derick Rethans 
4

OS: OSX Yosemite
Wystarczy uporządkować podobny problem przez vim ~/.bash_profile

export PATH =/usr/local/bin: $ PATH
export PATH =/Applications/MAMP /bin/php/php5.5.10/bin:$PATH

Upewnij się, że zamówienie jest prawidłowe. Umieścić export PATH=/usr/local/bin:$PATH przed export PATH=/Applications/MAMP/bin/php/php5.5.10/bin:$PATH

/usr/local/bin zawiera mac domyślny php.

Mam nadzieję, że to pomoże.