PHP 7 излезе вчера и бих искал да го пробвам.
PHP 7.0.0 идва с нова версия на Zend Engine, множество подобрения и нови функции, като например
- Подобрена производителност: PHP 7 е до два пъти по-бърз от PHP 5.6
- Значително намалено използване на паметта
- Абстрактно синтактично дърво
- Последователна 64-битова поддръжка
- Подобрена йерархия на изключенията
- Много фатални грешки са преобразувани в изключения
- Сигурен генератор на случайни числа
- Премахнати стари и неподдържани SAPI и разширения
- Операторът за коалесценция на нулата (??)
- Декларации за връщане и скаларни типове
- Анонимни класове
- Утвърждаване на нулеви разходи
Възможно ли е да се инсталира на текущата версия на Ubuntu?
Има ли някакви текущи ограничения или известни проблеми със съвместимостта?
Можете да направите следното:
sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update
По желание изчистете PHP 5:
sudo apt-get remove php5-common -y
Или директно го изчистете, включително конфигурационните файлове:
sudo apt-get purge php5-common -y
И накрая инсталирайте PHP 7:
sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y
По желание почистете ненужните пакети след това:
sudo apt-get --purge autoremove -y
Като алтернатива можете да инсталирате PHP 7.0 от изходни източници, като използвате този скрипт script или следвайки инструкциите в този blog.
EDIT:
PHP5 вече е замененс PHP7 като PHP по подразбиране в Ubuntu 16.4, така че, за да инсталирате PHP7 на Ubuntu 16.04:
sudo apt-get install php7.0
Или
sudo apt-get install php
Имате две възможности:
Изчакайте, докато се появи ново издание на Ubuntu, което включва PHP7
Ubuntu няма да'пусне основни нови версии на повечето софтуери за съществуващите версии на Ubuntu; за да получите основна нова версия, ще трябва да изчакате до по-нова версия на Ubuntu.
Инсталиране на версия от трета страна, например от PPA
PPA не са обвързани с графиците за издаване или политиките на Ubuntu, така че са свободни да променят версиите си по-често, наред с други неща. Споменатият в отговора на Tshilidzi Mudau'PPA е популярен начин за поддържане на по-актуална версия на PHP.
sudo add-apt-repository ppa:ondrej/php
PPA не се предлагат със същата официална поддръжка от Ubuntu като версиите, предлагани от Ubuntu, и поради различни графици и политики може да са с различно качество или стандарт на сигурност. В този случай разработчикът, който предоставя този PPA, е добре познат на общността тук.
Горепосоченият процес не проработи за моя сървър Ubuntu 15.10, така че си помислих, че ще споделя това, което проработи, в случай че другите го намерят за полезно.
Първо трябваше да премахна някои ключови модули на PHP 5:
sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite
След това премахнах няколко допълнителни неща, които бяха останали:
sudo apt-get autoremove
След това инсталирайте PHP 7.0:
sudo apt-get install php7.0
След това, тъй като PHPMyAdmin беше премахнат Apache2 нямаше да'стартира, така че трябваше да премахна файла с конфигурацията (можех да го преместя вместо това):
sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf
След това трябваше да рестартирам Apache2:
sudo service apache2 restart
След това PHP 7.0 беше стартиран (потвърдено с PHPINFO();
)
Открих обаче, че единственият начин да накарам PHPMyAdmin да работи е да го инсталирам/обновя ръчно, тъй като в противен случай последната версия, налична в източниците, все още не поддържа PHP 7.
**ЕДИТ: Вече намерих начин да актуализирам PHPMyAdmin до съвместима версия, без да се налага да клонирам от GIT или да компилирам ръчно от източниците, затова добавям това по-долу:
Първо добавете това хранилище, актуализирайте списъка с източници и надградете (NB: ако е било премахнато по време на надграждането до PHP7, ще трябва да го инсталирате, а не да го надграждате):
sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade
По време на инсталацията (на моя сървър) обаче трябваше да се изпълни скрипт за обновяване на базата данни upgrade_column_info_4_3_0+.sql
, но той се провали със следната грешка:
mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'
Избрах да пренебрегна грешката и да завърша обновяването.
След инсталацията отворих скрипта за надграждане .sql на адрес /usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql
Стартирах скрипта ръчно, като премахнах двата нарушаващи реда, опитващи се да създадат 2 колони, които вече съществуваха (код за премахване):
ALTER TABLE `pma__column_info`
ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
Накрая трябваше да редактирам файла с конфигурацията в /etc/phpmyadmin/config.inc.php
и да добавя следните два реда:
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
След това PHPMyAdmin е успешно актуализиран и разширените функции са активирани. Надявам се, че това ще помогне на другите.