Руководство по обновлению PHP 5.5 и Apache 2.4 из PPA

Категория: PHP

При обновлении до PHP 5.5 и Apache 2.4 на Ubuntu 12.10 (13.04) я занотировал некоторые важные моменты и оформил их в виде краткого руководства.

Внимание!

Если PHP 5.5 для вас не критичен, рекомендую пока воздержаться и дождаться официального пакета - я убил пол дня на обновление. В итоге, я установил PHP 5.5 только после обновления Ubuntu до 13.04.

Если все желаете обновлять PHP на Ubuntu 12.10 - рекомендую удалить текущую версию PHP  и Apache, а также "вычистить" все их модули вместе с конфигами (sudo 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

  1. Добавить репозиторий:
    sudo add-apt-repository ppa:ondrej/php5-experimental
  2. Обновить информацию о доступных пакетах и обновить их:
    sudo apt-get update && sudo apt-get upgrade
  3. Установить PHP 5.5, Apache 2.4 и основные модули:
    sudo apt-get install apache2 php5 libapache2-mod-php5sudo apt-get install apache2-utilssudo apt-get install php5-curl php5-gd php5-intl php5-mcrypt php5-mysql php5-odbc php5-dev
  4. Перезагрузка системы!

Примечания и рекомендации

Каталог /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

sudo dpkg -r package-name

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

Не забудьте включить нужные вам модули, например mod_rewrite:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restar
Ошибка 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!

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

Если после установки phpMyAdmin на PHP 5.5, апач вылетает с fail'ом - закоментируйте 3 строчки авторизации в файле /etc/phpmyadmin/apache.conf:

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
# AuthType basic
# AuthName "phpMyAdmin Setup"
# AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>

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

Оффтоп! Рекомендую к прочтению очень полезную и интересную книгу Роберта Мартина «Чистый код». Я немного жалею, что не прочел ее раньше, или какую-то другую из этой же серии - после прочтения отпадает много вопросов по проектированию архитектуры и системе именования классов/методов. Книга вроде есть в PDF'е, но $15 это не дорого для печатной версии. А ее можно перечитывать время от времени.

категория: PHP