четверг, 23 ноября 2017 г.

Переключение разных версий PHP на Ubuntu 16.04 с помощью PhpBrew

С помощью программы PhpBrew можно упростить себе задачу перключения вашего локального сервера на разные версии PHP.
В этой статье я хочу рассказать о том, как я настроил для себя работу с этой программой.

К сожалению по умолчанию для ubuntu 16.04 автоматически устанавливается php7, поэтому придется немного заморочиться, что бы настроить переключение на разные модули php.

Идем дальше.

Хочу сразу дать несколько полезных ссылок, по которым я настраивал свой apache:

Сторонний хороший мануал по настройке Phpbrew в Apache
Сам phpbrew на github

Вы можете устанавливать по первой инструкции, а можете устанавливать и по стандартной основной инструкции с github, Я лично настраивал по инструкции с гитхаба и у меня все получилось, но возникли нектороые проблемы, которые я хочу здесь перечислить и собрать в одном месте.
1. Из - за того, что php в ubuntu 16.04 7- ой версии нам не удастся установить из списка php5-cli и прочие зависимости, поэтому из списка этих зависимостей я удалил все что касалось php5.

2. Далее у меня появлялась ошибка, но к сожалению не сохранил я ее, но на всяки случай ставим вот это:

sudo apt-get install apache2-dev
 
3. Для работы с PostgreSql нужно поставить вот эти библиотеки:

sudo apt-get install python-psycopg2
sudo apt-get install libpq-dev
 
4. Не забываем установить нужные привелегии на папки модулей apache2

# chmod a+w /usr/lib/apache2/modules/
# chmod a+w /etc/apache2/mods-available/ 
 
Также для более удобной настройки виртуальных хостов посмотрите статью.

5. Могут возникнуть конфликты при переключении с версии php7 на php5, поэтому в файле /etc/apache2/mods-available/php7.0.load Нужно закомментировать строку

# LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so 
 
6. Также могут возникнуть проблемы при работе с phpbrew switch, консольные версии будут перключаться но в самом apache2 версии могут не переключаться правильно, но на этот случай всегда можно вручную вписать вызов нужного
модуля в файле /etc/apache2/mods-available/php5.load.

7. Установка imagick

apt-get install libmagickwand-dev libmagickcore-dev
phpbrew ext install imagick
 
8. Включение mod_rewrite, mod_headers, mod_expires в apache

sudo a2enmod rewrite
a2enmod headers
a2enmod expires
sudo service apache2 restart
 
9. Не забудьте включить short-open-tags для вашей новой версии php в ее php.ini
 
short_open_tag = On 
 
10. ВАЖНО!!!! Если вы хотите, чтобы работал phpbrew switch, то собирайте версию php вот таким образом:

phpbrew install 5.4.22 +apxs2=/usr/bin/apxs2
 
Но phpbrew switch не перезагружает Apache автоматически...

11. Отключение режима жесткой проверки MySQL
в файле /etc/mysql/my.cnf

[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Чтобы было еще меньше проблем с mysql лучше настроить его вот так

[mysqld]
sql-mode="" 
 
11. Многие фреймворки для корректной работы кэширования требуют memcached

phpbrew ext install https://github.com/php-memcached-dev/php-memcached php7 -- --disable-memcached-sasl

Комментариев нет:

Отправить комментарий

Рабочий способо убрать хрип микрофона в Ubuntu 18.04

Переходим по ссылке и делаем также как в видео https://www.reddit.com/r/Ubuntu/comments/6zq3ca/remove_background_noise_on_the_mic_in_ubun...