сменить версию php ubuntu apache
apache — переключение версий php в командной строке ubuntu 16.04
Я установил php 5.6 и php7.1 на мою Ubuntu 16.04
Я знаю с Apache, как мой веб-сервер, я могу сделать
Когда я отключаю php7.1 в модулях apache и включаю php5.6, apache распознает изменение и использует интерпретатор php5.6, как и ожидалось.
Но когда я запускаю внутренний php веб-сервер из командной строки:
php обрабатывает запросы, используя php7, как мне переключиться между php6.6 и php7.1 в командной строке?
Решение
Интерактивный режим переключения
Ручное переключение
Из PHP 5.6 => PHP 7.1
В вашей системе установлен PHP 5.6 по умолчанию, и вам нужно переключиться на PHP 7.1.
Из PHP 7.1 => PHP 5.6
В вашей системе установлен PHP 7.1 по умолчанию, и вам нужно переключиться на PHP 5.6.
Другие решения
введите это в вашей оболочке
и это то, что вы получите
Выберите подходящую версию
Я думаю, вы должны попробовать это
С php5.6 до php7.1
С php7.1 до php5.6
Чтобы просмотреть все доступные версии и выбрать из них:
Или сделать вручную
Вы можете создать скрипт для переключения с версий: sudo nano switch_php
затем введите это:
выйти и сохранить
сделать его исполняемым: sudo chmod +x switch_php
Вот и все, теперь вы можете легко переключаться с PHP7 на PHP 5.6!
Введите данную команду в свой терминал.
Для отключения выбранной версии PHP …
Для включения другой версии PHP ….
Он обновит версию Php, то же самое произойдет в обратном порядке, если вы хотите понизить версию, вы можете увидеть это с помощью PHP_INFO ();
Переключитесь с PHP 5.6 на PHP 7.2, используя:
Переключитесь с PHP 7.2 на PHP 5.6, используя:
Как переключаться между несколькими версиями PHP в Ubuntu
Иногда самая последняя версия установленного пакета может работать не так, как вы ожидали.
Приложение может не соответствовать обновленному пакету и поддерживать только определенную старую версию пакета.
В таких случаях вы можете просто отказаться от проблемного пакета до его ранней рабочей версии в кратчайшие сроки
Однако вам не нужно понижать некоторые пакеты.
Мы можем использовать несколько версий одновременно.
Например, скажем, вы тестируете приложение PHP в стек LAMP, развернутое в Ubuntu 18.04 LTS.
Через некоторое время вы обнаружите, что приложение отлично работает в PHP5.6, но не в PHP 7.2 (Ubuntu 18.04 LTS устанавливает PHP 7.x по умолчанию).
Вы собираетесь снова установить PHP или весь пакет LAMP? Не обязательно.
Вам даже не нужно понижать PHP до более ранней версии.
В этом кратком уроке я покажу вам, как переключаться между несколькими версиями PHP в Ubuntu 18.04 LTS. Это не так сложно, как вы думаете.
Полное обучение PHP вы всегда можете пройти здесь : https://webshake.ru/php-training-course
Переключение между несколькими версиями PHP
Чтобы проверить установленную по умолчанию версию PHP, запустите:
Как вы можете увидеть, установленная версия PHP – 7.2.7.
После тестирования вашего приложения пару дней вы узнаете, что ваше приложение не поддерживает PHP7.2.
В таких случаях неплохо иметь версию PHP5.x и версию PHP7.x, так что вы можете в любой момент легко переключаться между любой поддерживаемой версией.
Вам не нужно удалять PHP7.x или переустанавливать стек LAMP. Вы можете использовать как версии PHP5.x, так и 7.x вместе.
Я предполагаю, что вы еще не удалили php5.6 в своей системе.
На всякий случай, вы удалили его уже, вы можете установить его снова, используя PPA, как показано ниже.
Вы можете установить PHP5.6 из PPA:
Переключитесь с PHP7.x на PHP5.x
Сначала отключите модуль PHP7.2, используя команду:
Затем включите модуль PHP5.6:
Установите PHP5.6 в качестве версии по умолчанию:
Кроме того, вы можете запустить следующую команду, чтобы установить, какую версию PHP по всей системе вы хотите использовать по умолчанию.
Введите номер, чтобы установить его как версию по умолчанию или просто нажмите ENTER, чтобы сохранить текущий выбор.
В случае, если вы установили другие расширения PHP, установите их как по умолчанию.
Наконец, перезапустите веб-сервер Apache:
Теперь проверьте, является ли версия PHP5.6 версией по умолчанию или нет:
Переключитесь с PHP5.x на PHP7.x
Аналогично, вы можете переключиться с PHP5.x на версию PHP7.x, как показано ниже:
Пошаговая настройка Apache с выбором версий php + Nginx как reverse proxy (с mod_pagespeed) на ubuntu 16.04
В интернете кучу статей по настройке сервера, настройки Apache, Nginx и т.п. В данной статье будет пошагово настроен простой shared хостинг. Все операции производятся через консоль.
В посте будут решены и описаны следующий задачи:
1. Установка Apache + PHP
2. Возможность выбора версий PHP
3. Возможность работы сайтов от разных пользователей, с ограничением на чтение директорий других сайтов.
4. Установка Nginx с модулем pagespeed от google
5. Настройка Nginx как reverse proxy
Все этапы будут содержать описание и пояснения. Сам пост писался больше для себя, чтобы не потерять порядок настройки, но будет очень полезным для новичков, которые начинают разбираться в администрировании сервера. В качестве сервера установлен Ubuntu 16.0.4 только с SSH.
ЭТАП 1 (Установка Apache + PHP)
Запускаем оболочку с root правами:
Ключ нужен для того чтобы в процессе установки, автоматически на все вопросы отвечал положительно. К примеру если выполнить:
то в процессе установки нас спросят, действительно ли мы хотим установить.
Устанавливаем php (как mod_php)
На данном этапе у нас установиться php версии 7 как модуль apache.
ЭТАП 2 (Возможность выбора версий PHP)
На первом этапе мы установили сервер Apache + PHP при чем PHP у нас работает как модуль Apache. Существует несколько режимов работы PHP подробную информацию можно прочитать по ссылке «Коротко о CGI, FastCGI, PHP-FPM и mod_php».
Если вам лень читать, то объясню проще:
1. mod_php — сам Apache выполняет php скрипт.
Плюсы: работает быстро, требует минимум настроек и знаний
Минусы: скрипты выполняются от пользователя apache (как правило www-data)
2. CGI/FastCGI — Сервер Apache запускает прикладной скрипт интерпретатора php-cgi, который в свою очередь выполняет php скрипт
Плюсы: скрипты выполняются от произвольного пользователя, можно использовать в связке с другими приложениями (Nginx + PHP), конфигурацию PHP можно сделать индивидуальной
Минусы: скорость работы, дополнительная настройка
3.PHP-FPM — это модернизированный fast-cgi сервер который постоянно держит готовые для работы пул-процессов.
Плюсы: скорость работы, скрипты выполняются от произвольного пользователя, можно использовать в связке с другими приложениями (Nginx + PHP-FPM — самая распространная реализация)
Минусы: дополнительная настройка, занимает порт, на каждого пользователя открывается свой порт.
Мы остановимся на CGI/FastCGI. На самом деле многие может испугать, что он самый медленный, но на большинстве shared хостингов, именно этот режим работы (ispmanager использует именно этот режим работы). Нам потребуется собрать из исходников версии php которые нам необходимы.
2.1 Сборка php из исходников
Устанавливаем необходимые для сборки пакеты:
Символ \ используется как перенос строки, для удобства чтения.
Создаем папки для php:
Переходим в директорию в которой будут храниться исходники php
Скачиваем необходимую версию php и распаковываем ёё:
В последней команде мы скачали по ссылке php-5.6.18 и сохранили как php-5.6.18.tar.bz2
После чего распаковали архив.
Переходим в директория скаченного и распакованного php
Процесс сборки непривычно долгий, поэтому не стоит переживать по этому поводу. По завершению сборки можно проверить командой:
В результате будет что то вроде:
PHP 5.6.18 (cli) (built: Jun 8 2017 15:59:20)
Copyright © 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright © 1998-2016 Zend Technologies
2.2 Настройка Apache
Далее нам потребуется чтобы Apache вызывал php скрипт через режим fastcgi. Устанавливаем и активируем mod_fcgi
перезапустим сервис Apache
2.3 Создание CGI скрипта
Создадим обертку для запуска PHP-FastCGI
Вставляем код, выходим CTRL+X и подтверждаем изменения.
Делаем файл испольняемым:
В той же директории создаем файл php.ini () можно скопировать /opt/source/php/php-5.6.18/php.ini-production.
2.4 Настройка хоста для Apache
В примере будет показана настройка виртуального хоста по умолчанию:
Перезапускаем настройки Apache:
ЭТАП 3 ( Возможность работы сайтов от разных пользователей, с ограничением на чтение директорий других сайтов.)
Для разграничения прав по пользователям у Apache есть 2 разных модуля suEXEC и ITK.
Рассмотрим как работает каждый из них:
ITK — При поступлении запроса, apache создает процесс-обработчик, который наследует права корневого процесса, но после проверки контекста меняет свои права на указанного пользователя.
suEXEC в нашем варианте предпочтительней из-за особенности архитектуры работы. Устанавливаем suEXEC
Важно, для правильной работы suexec необходимы правильно выставить права на директории.
Как располагать директории вы должны определиться сами, в примере приведется пример, и он не является оптимальным.
Иерархия папок следующая:
Копируем файлы настроек для php:
Создаем юзера (важно помнить что все пользователи в группе admin имеют доступ на запуск программ из sudo, поэтому при выборе имени admin он автоматически будет иметь права на выполнения sudo. В данном примере это не критично, но вам следует помнить об этом при создании пользователя).
Выставляем владельца папки:
Выставляем корневую директорию для пользователя:
Настраиваем виртуальные хосты в apache:
В настройках php.ini пользователя меняем session.save_path
session.save_path = /var/www/users/admin/temp/php-session
ЭТАП 4 (Установка Nginx с модулем pagespeed от google)
Забегая вперед, для поддержки pagespeed в Nginx требуется пересобрать сам Nginx с этим модулем, но чтобы потом не лазить дополнительно в настройках, проще сначало установить его.
Изменяем порты для Apache:
Собираем Nginx с pagespeed
Вначале необходимо установить все необходимы для сборки пакеты:
Создаем папки для исходников nginx:
Скачиваем и распаковываем pagespeed и psol. Yt cnjbn g
Сам psol скачивается и распаковывается в директории с ngx_pagespeed. Переходим в папку с Ngnix
Проверяем версию ngnix (по умолчанию в ubuntu 16.0.4 устанавливается 1.10.0):
Загружаем т версию NGINX:
Собираем nginx с теми же параметрами что и установленный, но в конце добавляем дополнительные модули:
Собранный бинарный файл Nginx располагается в директории /opt/source/nginx/nginx-1.10.0/objs/nginx. Для того чтобы установить, требуется просто заменить текущий испоняемый файл Nginx на собранный.
Остановим Nginx, заменим файл, и перезапустим его.
#Переименовываем (на всякий случай) текущий nginx в nginx_backup:
# Перемещаем на его место новый собранный бинарник:
Создаем папку хранения кэша для pagespeed:
Добавим /etc/nginx/nginx.conf в секцию http:
ЭТАП 5 (Настройка Nginx как reverse proxy )
Скажу скажу что в интернете кучу статей для настройки Nginx как reverse proxy. Я лиш приведу ознакомительный вариант настройки.
Смена версии php в Ubuntu
Привет
Нужно поменять версию php с 7 на 5.6 на Ubuntu.
В Ubuntu только 2 день, поэтому сильно не разбираюсь
5 ответов 5
Сначала удалим все PHP библиотеки
Затем добавляем PPA с которого будем качать PHP т.к. в стандартном apt-get есть только последняя седьмая версия по умолчанию В Ubuntu 16.04. apt это пакетный менеджер в Ubuntu, из него мы устанавливаем программы, пакеты, библиотеки и т.д. Следующей командой мы добавляем в него адрес PPA откуда он выкачает нам нужный PHP-5.6.
Если выдаст ошибку add-apt-repository: command not found
То нужно выполнить следующую команду
Далее выполняем две команды последовательно
Установка PHP 5.6
На этом этапе PHP уже установлен, но чтобы установить дополнительные библиотеки можно ввести:
Дополнительно
Чтобы найти точные названия библиотек в apt-get для фреймворка или при необходимости, пример:
Проверка версии PHP
Рекомендую использовать для таких целей специальные PPA, например эту:
И после добавления поставить php 5.6 таким образом:
И нужно будет не забывать, что все пакеты для php, например php-mysql, php-xml нужно будет ставить таким образом:
P.S. все предыдущие версии php надо удалить
Как понизить версию php 7.4 до 5.6 в Vesta на Ubuntu
Понижение и повышение версии PHP в Ubuntu вариант 1
В этом руководстве мы покажем вам, как обновить PHP 7.0, который по умолчанию установлен Vesta CP во время установки, до последней версии PHP 7.1.xx, 7.2.xx, 7.3.xx или 7.4.xx на сервере Ubuntu.
Зачем переходить на php 7.1, 7.2, 7.3 или 7.4?
Это даст вам повышение безопасности и производительности + KICK, поскольку WordPress или поддерживаемые скрипты будут загружаться намного быстрее и потреблять меньше ресурсов.
Пакеты, которые понадобится установить:
Вам нужно установить software-properties-common:
Для Apache mod_php:
Для обновления PHP 7.1:
Сначала вам нужно добавить Ondrejs PPA:
Если вы получите: “‘ascii’ codec can’t decode byte”, выполните следующую команду:
затем запустите эти команды:
Теперь установим PHP 7.1:
После установки, отключите модуль php 7.0, чтобы активировать модуль php7.1:
После включения модуля новой версии php, перезапустите службу apach2 командой:
Для обновления до PHP 7.2, 7.3, 7.4, достаточно изменит цифры версии в командах.
Пример для PHP 7.4:
Теперь, если вы установили все нужные Вам версии PHP, вы сможете переключать их, как в сторону повышения, так и понижать версию PHP.
Чтобы повысить php7.1 до php 7.4, просто выполните следующие команды:
Чтобы понизить версию с php7.4 до php 7.0, просто выполните следующие команды:
Если данный способ, не подходит Вам по каким либо причинам, вы может воспользоваться вариантом переключения PHP который описан ниже.
ПЕРЕКЛЮЧЕНИЕ МЕЖДУ ВЕРСИЯМИ PHP вариант 2
Пример: Ubuntu 18.04 как переключить PHP7.4 на php5.6
Этот метод заключается не в удалении каких-либо из версий php и установке другой версии, а в установке PHP как надстройки и в использовании одной из версий PHP по необходимости.
Данный метод не позволяет выбирать нужную версию PHP в панели управления VestaCP.
Ели Вам нужен способ позволяющий выбирать версию PHP для каждого домена, вам подойдет предыдущая инструкция.
Приступим к установке и настройке:
Вы установили версию PHP 5.6.
Проверим версию PHP командой:
Вывод может отображать вашу старую версия PHP.
Для применения изменений, рестарт веб сервер Apache:
Обычно, сначала необходимо установить еще несколько модулей необходимых для правильной работы веб сервера:
Включение необходимых расширений >>> sudo phpenmod mbstring