Одночасна робота кількох версій PHP на сервері Debian
Мова в замітці піде про модуль PHP7, підключений як модуль апача на всьому сервері, і PHP5.6, підключеному як PHP-CGI у потрібних сайтів.
І мова піде не про швидку зміну версії php на всьому сервері, а саме про те, щоб, наприклад, всі сайти на сервері працювали з PHP7, а один або кілька, наприклад, з PHP5.
Завантажуємо вихідні коди PHP потрібної версії, розпаковуємо і переходимо в папку з ними
Збираємо потрібну версію php
Компілюємо php трьома командами:
Під час конфігурування, швидше за все, будуть помилки. Вони здебільшого свідчать про відсутні пакети на сервері. Назви відсутні легко гудатися.
Копіюємо бінарник, що вийшов.
Файл /usr/local/bin/php-cgi треба перейменувати та покласти на шляху /usr/lib/cgi-bin/php5
Налаштовуємо потрібний VirtualHost апача для роботи з нашим бінарником
Та й найголовніше - це змусити потрібний хост не працювати як модуль апача. Скажу чесно, на пошук рішення я витратив чимало часу.
Ці рядки потрібно додати до потрібного VirtualHost
Нюанси та можливі проблеми
- Помилка: Invalid command 'Action', perhaps misspelled or defined by a module не входить до сервера налаштування
Не ввімкнено модуль апача actions. Включаємо:
Файл php.ini буде подружитися з папки /usr/local/lib/. Змінити це можна опцією --with-config-file-path з вибором компіляції.
Також має бути включений конфіг апача serve-cgi-bin
Схожі записи
PHP. Перший і останній день кварталу за допомогою \DateTime класу
Порівняння швидкості зв'язок Apache + mod-php та Nginx + php-fpm
Оновлення Ubuntu Server 12.04 до 13.10
Вчораоновив програмне забезпечення на своєму сервері. При оновленні вилізли деякі помилки про які і хочу розповісти.
Велике дякую! дуже врятувало це рішення. Все чудово працює!
P.S. від себе можу додати, що пунктик "Копіюємо бінарник, що вийшов" я для себе замінив на "роблю сімлінк".
Посилання для wget неправильне. Покотить, наприклад, такий варіант http://ua2.php.net/get/php-5.6.28.tar.gz/from/this/mirror
А в мене встановився просто методом apt-get install php5.6 - можна в такому разі його заюзати для окремих сайтів?
Ну і, власне, у мене все скінчилося помилкою
Requested URL
на що перейменувати бінарник?
Респект :) Я чайник із чайників - а все запрацювало з першого разу. Від душі, ДЯКУЮ .
Ну і, власне, у мене все закінчилося помилкою The requested URL
отже мод CGI не включений. Спробуйте: a2enmod cgi sevice apache2 restart
Вітаю! У мене така ж проблема. Помилка The requested URL /cgi-bin/php5/phpinfo.php був невідомий на цьому сервері. У гугле нічого не знайшов, кажуть, що на centos7 apache mod_cgi вже включено. Допоможіть будь ласка.
Теж помилка The requested URL /cgi-bin/php5/phpinfo.php was not found on this server. Google говорить, що в centos7 mod_cgi вже включений. Допоможіть розібратися, будь ласка!
У мене не виконується, зробив все за інструкцією, Linux Ubuntu 16 Server LTS, 64 біта. Що робити ?
Помилки при цьому якісь є?
При введенні команди make видає:
Не задані цілі та не знайдено make-файл. Зупин.
Встановив до цього VestaCP з php 7, MySQL, Apache та phpMyAdmin (LAMP-сервер)
При цьому першакоманда відпрацьовує без помилок?
Перша команда це ./configure\? Начебто складання йде - як перевірити, що нормально відпрацювала?
На мою думку, вона в кінці напише, чи всього вистачає.
Виявляється помилка була в тому, що не було встановлено xml2 пакет - знайшов на stackoverflow.com:
sudo apt-get install libxml2-dev
Після того як скопіював бінарник, що вийшов, в /usr/lib/cgi-bin/php5 - при введенні команди php -v видає версію 5.6, хоча глобально стоїть версія 7.0, тобто. виходить версія php затирається версією 5.6?
"Файл /usr/local/bin/php-cgi треба перейменувати і покласти на шляху /usr/lib/cgi-bin/php5"
- потрібно створити папку php5 або виконати команду
sudo cp /usr/local/bin/php-cgi /usr/lib/cgi-bin/php5 ? (тобто в /usr/lib/cgi-bin лежатиме файл php5)