Руководство по обновлению PHP 5.5 и Apache 2.4 из PPA
При обновлении до 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
- Добавить репозиторий:
sudo add-apt-repository ppa:ondrej/php5-experimental
- Обновить информацию о доступных пакетах и обновить их:
sudo apt-get update && sudo apt-get upgrade
- Установить 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
- Перезагрузка системы!
Примечания и рекомендации
Каталог /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 это не дорого для печатной версии. А ее можно перечитывать время от времени.