Jak zainstalować PHP 7 dla Apache lub Nginx na Ubuntu 14.04 i 14.10
Kilka miesięcy po wydaniu stabilnej wersji PHP 7.0 może to być właściwy moment, aby pomyśleć o uaktualnieniu do niego starszych wersji.
Zawsze należy zachować ostrożność w przypadku aktualizacji, szczególnie w środowisku produkcyjnym, ale dobrym pomysłem jest dokonanie aktualizacji teraz, aby cieszyć się poprawą szybkości, a także funkcjami takimi jak podpowiedzi typu skalarnego i wieloma innymi.
Możesz zainstalować w swoim systemie dwie wersje PHP i używać jednej do celów testowych, pamiętaj jednak, że w danym czasie włączasz tylko jeden moduł PHP Apache.
Ten przewodnik koncentruje się na aktualizacji z PHP 5.X przy użyciu mod_php w połączeniu z serwerem internetowym Apache lub PHP-FPM w połączeniu z serwerem internetowym Nginx.
- Zainstaluj PHP 7 w Ubuntu 14.04 i 14.10
- Aktualizacja do PHP 7.0 w ramach serwera WWW Apache
- Aktualizacja do PHP 7.0 w ramach serwera WWW Nginx
Teraz przyjrzyjmy się, jak zaktualizować PHP do najnowszej wersji, a także skonfigurować system tak, aby z niego korzystał.
Jak zainstalować PHP 7 w Ubuntu 14.04 i 14.10
Najpierw musisz dodać PPA utrzymywany przez Ondřej Surý dla Debiana i jego pochodnych, takich jak Ubuntu, uruchamiając poniższe polecenie:
sudo add-apt-repository ppa:ondrej/php
Następnie zaktualizuj swój system w następujący sposób:
sudo apt-get update
Wszystko jest już gotowe i możesz zainstalować PHP 7.0, ale przyjrzymy się aktualizacji dla Apache i Nginx w różnych sekcjach.
Aktualizacja do PHP 7.0 w ramach serwera WWW Apache
Ta sekcja dotyczy systemów z uruchomionym Apache, gdzie kod PHP jest wykonywany przy użyciu modułu mod_php
. Zainstaluj najnowszą wersję PHP, uruchamiając poniższe polecenie:
sudo apt-get install php7.0
Przykładowe wyjście
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libapache2-mod-php7.0 libssl1.0.2 php-common php7.0-cli php7.0-common
php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
libapache2-mod-php7.0 libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common
php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 0 to remove and 80 not upgraded.
Need to get 4,371 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
PHP został teraz zaktualizowany w twoim systemie, ale jeśli używasz systemu zarządzania bazami danych MySQL, będziesz musiał wykonać następujące polecenie, aby zaktualizować powiązanie PHP-MySQL i będziesz także musiał zainstalować kilka przydatnych modułów, takich jak Curl, GD, Cli, JSON itp.
sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json
Jeśli chcesz zainstalować dodatkowe moduły PHP7.0, możesz użyć polecenia apt-cache, aby wyświetlić listę wszystkich modułów PHP7.0 i zainstalować.
sudo apt-cache search php7
Przykładowe wyjście
php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-mongodb - MongoDB driver for PHP
php7.0-common - documentation, examples and common module for PHP
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php-apcu - APC User Cache for PHP
php-xdebug - Xdebug Module for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-amqp - AMQP extension for PHP
php7.0-bz2 - bzip2 module for PHP
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-smbclient - PHP wrapper for libsmbclient
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-soap - SOAP module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-zip - Zip module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php7.0-dba - DBA module for PHP
Po zainstalowaniu PHP 7.0 i jego modułów możesz zrestartować serwer WWW Apache i zweryfikować wersję PHP, jak pokazano:
sudo service apache2 restart
php -v
Przykładowe wyjście
PHP 7.0.7-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Możesz także zweryfikować informacje o PHP7, tworząc plik info.php
w katalogu /var/www/html.
sudo vi /var/www/html/info.php
Umieść poniższy kod i uzyskaj dostęp do strony poprzez http://server_ip-address/info.php
.
<?php
phpinfo();
?>
Aktualizacja do PHP 7.0 w ramach serwera WWW Nginx
Ta sekcja przeprowadzi Cię przez proces aktualizacji do PHP7.0 i aktualizacji PHP-FPM za pomocą serwera internetowego Nginx, gdzie kod PHP jest wykonywany przy użyciu PHP-FPM.
Uruchom poniższe polecenie, aby zainstalować najnowsze pakiety PHP-FPM:
sudo apt-get install php7.0
sudo apt-get install php7.0-fpm
PHP został teraz zaktualizowany, ale jeśli używasz MySQL, będziesz musiał wykonać następujące polecenie, aby zaktualizować powiązanie PHP-MySQL i kilka dodatkowych modułów, jak pokazano:
sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json
Następnie musisz dołączyć dyrektywę fastcgi_pass
do pliku /etc/nginx/sites-enabled/default lub wszystkich plików dla twoich wirtualnych witryn, które muszą używać i obsługiwać PHP , ponieważ zmieniła się ścieżka pliku gniazda PHP-FPM, którego PHP używa do komunikacji z Nginx.
Użyj swojego ulubionego edytora i otwórz plik do edycji w następujący sposób:
sudo vi /etc/nginx/sites-enabled/default
Zmodyfikuj lub dodaj w następujący sposób:
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Następnie zrestartuj Nginx i php-fpm w następujący sposób:
sudo service nginx restart
sudo service php7.0-fpm restart
Na koniec możesz sprawdzić, czy PHP działa, czy nie, najpierw sprawdzając wersję PHP, a następnie testując ją na serwerze internetowym.
php -v
Informacje o swoich pakietach PHP otrzymujesz poprzez zapisanie małego pliku info.php w katalogu /usr/share/nginx/html/:
sudo vi /usr/share/nginx/html/info.php
Umieść ten kod w swoim pliku info.php:
<?php
phpinfo();
?>
Zapisz i wyjdź z pliku.
Otwórz przeglądarkę internetową, wpisz http://server_ip-address/info.php
i powinieneś zobaczyć poniższą stronę, która pokazuje szczegółowe informacje na temat twojego pakietu PHP.
Możesz teraz z radością używać PHP 7.0 w systemie Ubuntu 14.04/14.10 i mam nadzieję, że ten przewodnik okaże się dla Ciebie pomocny.
Aby uzyskać dodatkowe informacje dotyczące aktualizacji PHP lub zadać pytania, komentarze są mile widziane w sekcji komentarzy poniżej.