Taki sam jak skrypt z „Growling Flea”, ale przy użyciu nowych wersji.
Dodaj PPA
Pakiety PHP 5.6 i PHP 7.0 pochodzą z zewnętrznego PPA, nie dostarczanego przez oficjalne repozytoria Ubuntu od Canonical. PPA, które tutaj polecam, pochodzą od Ondřej Surý, który pakuje PHP dla Debiana (z którego następnie korzysta Ubuntu), więc chociaż nie jest to oficjalne repozytorium, nie jest on losowy! Sam PPA jest
tutaj
Aby dodać PPA do konfiguracji:
sudo add-apt-repository ppa:ondrej/php
Następnie będziemy chcieli również pobrać informacje o ofercie tego nowego PPA, więc uruchom:
sudo apt-get update
Zainstaluj nowe wersje PHP
Miałem już zainstalowane niektóre pakiety php5, ale niczego nie odinstalowałem, po prostu pozwoliłem aptowi ustalić, co chce zrobić, kiedy poprosiłem go o zainstalowanie nowych wersji:
sudo apt-get install php5.6 php7.0
Doprowadziło to do wielu skarg ze strony apt i wielu konfliktów. Pierwszym sugerowanym rozwiązaniem było usunięcie wszystkich standardowych pakietów php5, aby można było zainstalować PHP 5.6 - więc właśnie zaakceptowałem pierwszą sugestię.
Używam apache, więc ta konfiguracja dała mi apache z dostępnymi modułami php5.6 i php7.0, a moduł php5.6 faktycznie załadowany.
Oprócz samego PHP wszystkie rozszerzenia i inne narzędzia, których można oczekiwać od PHP, są dostępne dla obu wersji PHP, więc bardzo łatwo jest dodać potrzebne moduły. Byłem pod wielkim wrażeniem tego, jak ładnie się to robi.
Konfigurowanie i przełączanie wersji
Teraz masz w systemie dwie całkowicie oddzielne wersje PHP, więc spójrzmy, dokąd poszły wszystkie elementy!
Pliki konfiguracyjne znajdują się
odpowiednio /etc/php/5.6
i /etc/php/7.0
wewnątrz - tutaj możesz skonfigurować, które rozszerzenia są ładowane, ustawić ustawienia ini i wszystko inne dla każdej wersji oddzielnie.
Jestem użytkownikiem Apache i jak wspomniałem oba moduły są dostępne. Aby przejść z jednego do drugiego, muszę zrobić:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Dla użytkowników nginx zmiany są prawie tak proste, Digital Ocean ma dobrą dokumentację na ten temat (mają świetne dokumenty!), Więc sprawdź ich przewodnik:
https://www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04,
ponieważ zawiera sekcję dotyczącą rekonfiguracji nginx do używania innej wersji PHP.
Z wiersza poleceń mam zarówno php5.6, jak i php7.0 dostępne jako polecenia. Nadal mam też komendę php - zajrzyj do / etc / alternatives, aby zobaczyć, czy dowiązuje ona do konkretnej wersji PHP *. Możesz także szybko sprawdzić, którego używasz, uruchamiając php -v
.
* dokładniej, uruchom który php, aby zobaczyć, która wersja PHP jest używana - ale to prawdopodobnie wskaże /usr/bin/php
, która dla mnie sama jest dowiązaniem symbolicznym do /etc/alternatives/php
polecenia.
Praca z rozszerzeniami
Ten PPA jest dostarczany ze zwykłym pakietem php-pear, który oferuje polecenie pecl dla obu wersji PHP, więc wszelkie rozszerzenia dostępne przez PECL można zainstalować w zwykły sposób. Potrzebne będą również odpowiednie nagłówki, więc należy zainstalować php5.6-dev lub php7.0-dev.
Po zakończeniu instalacji pecl otrzymasz notatkę, aby dodać plik * .so do pliku php.ini; w rzeczywistości najlepszą rzeczą do zrobienia jest sprawdzenie, co jest w środku /etc/php/mods-available
. Będą tu już niektóre moduły, każdy w swoim własnym pliku nazwanym od rozszerzenia i kończącym się na .ini. Możesz skopiować jeden, aby użyć go jako szablonu lub utworzyć własny i umieścić w nim całą odpowiednią konfigurację rozszerzenia (przynajmniej potrzebujesz extension=[extensionName].so
).
Gdy nowe rozszerzenie będzie dostępne w modach, włącz je, a następnie sprawdź, wykonując:
sudo phpenmod extension
php -m
Spowoduje to utworzenie dowiązań symbolicznych w odpowiednich miejscach dla bieżącej wersji PHP, aby załadować ten moduł, i powinieneś zobaczyć go na liście modułów wyprowadzanych przez php -m
. Porada profesjonalisty: jeśli nie widzisz go w danych wyjściowych, przewiń do samego końca danych wyjściowych i sprawdź, czy są tam jakieś przydatne komunikaty o błędach.