Замена PHP 5.3 на PHP 5.4 на Ubuntu 12.04 LBS
Размещено: 4-07-2015, 01:04 | Просмотров: 4860 | Комментариев: 0
Наверняка многие, установив 12.04, с удивлением обнаружили, что в ней живет PHP версии 5.3.х. Меня это не слишком устраивало, так как проекты я стараюсь писать на "свежей" версии языка, чтобы было поменьше проблем при обновлениях на сервере. Итак, перелопатив кучу советов и настроив-таки рабочую машину, делюсь с вами своим опытом. Не браните громко, ибо сие произведение - мой первый опыт блоготворчества :)

Внимание!
Если PHP 5.5 для вас не критичен, рекомендую пока воздержаться и дождаться официального пакета - я убил пол дня на обновление. В итоге, я установил PHP 5.5 только после обновления Ubuntu до 13.04.
Если все желаете обновлять PHP на Ubuntu 12.10 - рекомендую удалить текущую версию PHP и Apache, а также "вычистить" все их модули вместе с конфигами. Конфиги предварительно скопируйте куда-нибудь.
apt-get remove --purge php5 php5-...

Важно!
PHP 5.5 зависит от Apache > 2.4 (изменения в Apache 2.4). Поэтому, нужно будет после установки поправить конфиги mod_rewrite Основное изменение:
Order allow,deny
Allow from all
>> заменить на:
Require all granted

В противном случае вы получите 403 Error.

Обновление PHP 5.5 и Apache 2.4

Добавить репозиторий:
add-apt-repository ppa:ondrej/php5

Обновить информацию о доступных пакетах и обновить их:
apt-get update
apt-get upgrade

Установить PHP 5.5, Apache 2.4 и основные модули:
apt-get install apache2 php5 libapache2-mod-php5 apache2-utils php5-curl php5-gd php5-intl php5-mcrypt php5-mysql php5-odbc php5-dev

Перезагрузка системы!
Примечания и рекомендации

Каталог /conf.d больше не используется!
Ошибка: Directory /etc/apache2/conf.d is not empty - leaving as is. Please note, that directory is considered obsolete and not read anymore by default.
В Apache конфиги из каталога /etc/apache2/conf.d больше не используются - удалите его!

Проблемы с зависимостями

Если при установке новой версии PHP в системе возникли не разрешенные зависимости (я, например, изначально не удалил предыдущий PHP и Apache), при которых вы не можете ни установить, ни удалить пакеты - используйте:
// найдите нужные пакеты
dpkg -l | grep php
dpkg -l | grep apache
// удалите все пакеты php и apache
dpkg -r package-name

Установка модулей Apache 2.4

Не забудьте включить нужные вам модули, например mod_rewrite:
a2enmod rewrite
/etc/init.d/apache2 restart

Ошибка ServerName

Ошибка: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Нужно задать имя хоста по умолчанию в файле /etc/apache2/apache2.conf:
ServerName localhost

Устанавливайте параметр ServerName именно в файле apache2.conf, не в httpd.conf!

Теперь все файлы сайтов в /etc/apache2/sites-available/ должны иметь расширение .conf . С расширением, конечно, правильней смотрится, но почему нельзя было оставить и предыдущий синтаксис без .conf?
Переименовываю файл конфигурации моего сервера:
mv /etc/apache2/sites-available/atlant.test /etc/apache2/sites-available/atlant.test.conf

Если у вас много сайтов, которым нужно будет добавить расширение .conf, то вот вам команда:
find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \


Настройка доступа для phpMyAdmin

Удалите прошлую версию phpmyadmin
apt-get remove --purge phpmyadmin

Добавьте репозитарий с phpmyadmin
add-apt-repository ppa:nijel/phpmyadmin

apt-get update
apt-get install python-software-properties

Обновите кэш phpmyadmin из репозитариев
apt-cache policy phpmyadmin

Установите phpmyadmin заново
apt-get install phpmyadmin

Для того что бы зайти в phpmyadmin введите в адресную строку вашего браузера: https://YOUR_IP_OR_DOMAIN/phpmyadmin

Легкого Вам апдейта! ☺