How To Install/Uninstall PHP on Debian 11
PHP is one of the oldest and most popular languages in computer science. It is widely used for server-side programming. The popularity is because of its active community. It was first developed in 1994 by Rasmus Lerdorf.
PHP 8.0 is the newer version of PHP language which is also usable for commercial purposes. It is a cross-platform language which means it is executable on all the major operating systems. These Operating systems include Ubuntu, Windows, macOS, etc.
Today in this article, we will teach you how to install PHP on Debian 11. We will also tell you how to uninstall PHP on Debian 11. So sit tight, be with us and learn something new.
Step1: Opening Terminal
First, we have to open the terminal by clicking on the Activities keyword at the top left corner of the screen.
Once you have clicked on the Activities keyword you’ll see a search bar. Type terminal in the search bar. After this click on the terminal.

Terminal Screen will appear.

Step2: Debian Update and Upgrade
In this step, we are going to first update our Debian packages and then upgrade them if necessary. To update the packages type the following in your terminal:
$ sudo apt update
If you see “All packages are up to date” then you don’t need to upgrade.

However, if there are some packages that need upgrading type the following command in your terminal:
$ sudo apt upgrade

Your system is now updated and upgraded.
Step3: Adding Sury APT repository
All the packages of PHP 8 are available on the following link for the Debian system:
https://deb.sury.org/
To install the required dependency type the following command:
$ sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common

Now after this, to our Debian server we have to add PHP packages APT repository. For this purpose type the following command in your terminal:
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
The following output will be generated:

The next step involves importing the repository key for which we have to type the following command in our terminal:
$ wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -

Now that we have added the repository key, let’s run the update command again to see whether the repository has been added or not:
$ sudo apt update

Step4: PHP 8 installation on Debian 11
Now that we are done with adding the repository, let us start installing PHP 8 on Debian 11.
The first command that you need to type in your terminal is the following:
$ sudo apt install php8.0
The above command will install php8.0 on your Debian 11 system.

You can also specify some other version in the above command instead of 8.0.
Now that we have installed PHP 8.0 let us check whether it was installed successfully or not. For this purpose type the following command in your terminal:
$ php -v

Step5: PHP8 Extensions
We are done with the installation of PHP on our Debian 11 system Let us now look at how to install extensions of PHP 8 on Debian. For this purpose you can use the following command:
$ sudo apt install php8.0-extention
Keep in mind that you have to replace the keyword extension from the above command and replace it with the extension you want. As an example we will install bcmath extension through the following command:
$ sudo apt install php8.0-bcmath

To see all the loaded PHP modules type the following command:
$ php -m

Uninstall/Remove PHP on Debian 11
We have successfully installed PHP on our Debian system. However, there are times where we have to uninstall the PHP from our system. Don’t worry. We are with you. Let us show you how to uninstall PHP on Debian 11.
The first step is to find out which version you have installed on your Debian 11. For this purpose type the following command:
$ php -v

Now that we know which version we are using, type the following command in your terminal to uninstall PHP:
$ sudo apt purge PHP8.0
Based on your version, you can replace the version in the above command.

Now type the following command to completely remove it from your system:
$ sudo apt-get autoremove

Now when you run the following command you won’t be able to see the version:
$ php -v

Congratulations! You have successfully uninstalled PHP from your Debian 11 system.
Conclusion
PHP 8.0 is the latest version of PHP and is an improvement to the PHP 7.4 version. PHP has a very huge community and most websites are developed using PHP.
In this article, we saw how to install PHP on Debian 11. The steps that were taken in installing PHP were updating and upgrading packages, adding a sury apt repository, installation of PHP 8. We also talked about how to install PHP extensions on Debian. In the end, we saw how to uninstall PHP on Debian 11.
TUTORIALS ON LINUX, PROGRAMMING & TECHNOLOGY
ZoneMinder Forums
Ok can some one guide me on how to completely remove zm mysql etc so that i can try a fresh try at this? i have ubuntu server 16.04 (only used for a plex server) and im trying to run two webcams in zoneminder from that server . ive tried so many different approaches to this that it seems best way is to just try again with a fresh install of zm but i dont want to reinstall ubuntu cuz its set up for plex as mentioned before. also the webcams are seen as connected theyre just not viewable without gui on that server. any help u can provide is much appreciated
bbunge Posts: 2905 Joined: Mon Mar 26, 2012 11:40 am Location: Pennsylvania
Re: Uninstall and fresh reinstall
Post by bbunge » Fri May 05, 2017 7:26 pm
service zoneminder stop
apt remove zoneminder
apt purge zoneminder
mysql> DROP DATABASE zm;
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.029 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Запуск нескольких версий PHP на одном сервере с использованием Apache и PHP-FPM в Debian 10

Веб-сервер Apache использует виртуальные хосты для управления несколькими доменами в одной системе. PHP-FPM использует демона для управления несколькими версиями PHP в одной системе. Вы можете использовать Apache и PHP-FPM для одновременного хостинга на одном сервере нескольких веб-приложений PHP на основе разных версий PHP. Эта возможность полезна, поскольку разным приложениям могут требоваться разные версии PHP, но некоторые серверные комплексы, в том числе стек LAMP в стандартной конфигурации, могут работать только с одной версией. Сочетание Apache с PHP-FPM более экономично по сравнению с хостингом каждого приложения на отдельном экземпляре сервера.
Также PHP-FPM предлагает разные варианты конфигурации для регистрации данных stderr и stdout , аварийной перезагрузки и адаптивного создания процессов, что полезно для сайтов с высокой нагрузкой. Использование Apache с PHP-FPM — один из лучших вариантов хостинга приложений PHP, особенно с точки зрения производительности.
В этом обучающем руководстве мы настроим два сайта PHP для работы на одном экземпляре сервера. Каждый сайт будет использовать собственный домен, и на каждом домене будет использоваться собственная версия PHP. Первый сайт site1.your_domain развернет PHP 7.0. Второй сайт site2.your_domain развернет PHP 7.2.
Предварительные требования
- Один сервер Debian 10 с не менее чем 1 ГБ оперативной памяти, настроенный согласно руководству Начальная настройка сервера Debian 10, с пользователем non-root user с привилегиями sudo и брандмауэром.
- Веб-сервер Apache, установленный и настроенный в соответствии с указаниями руководства Установка веб-сервера Apache в Debian 10.
- Доменное имя, настроенное так, чтобы указывать на ваш сервер Debian 10. Информацию о том, как сделать так, чтобы домены указывали на дроплеты DigitalOcean, можно найти в руководстве Создание указаний на серверы имен DigitalOcean из общих реестров доменов. Для целей настоящего обучающего руководства мы используем два субдомена, каждый из которых указан с записью A в наших настройках DNS: site1.your_domain и site2.your_domain .
Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM
Выполнив предварительные требования, вы можете установить PHP версий 7.0 и 7.2, а также PHP-FPM и некоторые дополнительные расширения. Для этого предварительно необходимо добавить в систему репозиторий sury php .
Вначале установите требуемые пакеты, в том числе curl , wget и gnupg2 :
Вышеуказанные пакеты позволяют получить безопасный доступ к репозиторию sury php . sury php — это сторонний репозиторий или PPA (архив персональных пакетов). Он предоставляет PHP 7.4, 7.3, 7.2, 7.1 и 7.0 для операционной системы Debian. Также он включает более актуальные версии PHP, чем содержащиеся в официальных репозиториях Debian 10, и позволяет устанавливать несколько версий PHP в одной системе.
Затем импортируйте ключ пакета:
Теперь добавьте в систему репозиторий sury php :
Установите php7.0 , php7.0-fpm , php7.0-mysql , libapache2-mod-php7.0 и libapache2-mod-fcgid с помощью следующих команд:
- php7.0 — это метапакет, который можно использовать для запуска приложений PHP.
- php7.0-fpm предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.
- php7.0-mysql связывает PHP с базой данных MySQL.
- libapahce2-mod-php7.0 предоставляет модуль PHP для веб-сервера Apache.
- libapache2-mod-fcgid содержит mod_fcgid, запускающий несколько экземпляров программы CGI для обработки одновременных запросов.
Повторите процедуру для PHP версии 7.2. Установите php7.2 , php7.2-fpm , php7.2-mysql и libapache2-mod-php7.2 .
После установки обеих версий PHP запустите службу php7.0-fpm :
Затем проверьте статус службы php7.0-fpm :
Вывод должен выглядеть так:
Output● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-04 08:51:47 UTC; 1min 17s ago Docs: man:php-fpm7.0(8) Main PID: 13016 (php-fpm7.0) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1149) Memory: 19.1M CGroup: /system.slice/php7.0-fpm.service ├─13016 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) ├─13017 php-fpm: pool www └─13018 php-fpm: pool www Apr 04 08:51:47 debian10 systemd[1]: Starting The PHP 7.0 FastCGI Process Manager. Apr 04 08:51:47 debian10 systemd[1]: Started The PHP 7.0 FastCGI Process Manager.
Повторите процедуру и запустите службу php7.2-fpm :
Затем проверьте статус службы php7.2-fpm :
Вывод должен выглядеть так:
Output● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-04 08:52:52 UTC; 1min 32s ago Docs: man:php-fpm7.2(8) Process: 22207 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.2/fpm/pool.d/www.conf 72 (code=exite Main PID: 22204 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1149) Memory: 12.0M CGroup: /system.slice/php7.2-fpm.service ├─22204 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─22205 php-fpm: pool www └─22206 php-fpm: pool www Apr 04 08:52:52 debian10 systemd[1]: Starting The PHP 7.2 FastCGI Process Manager. Apr 04 08:52:52 debian10 systemd[1]: Started The PHP 7.2 FastCGI Process Manager.
В заключение необходимо активировать несколько модулей, чтобы служба Apache2 могла работать с несколькими версиями PHP:
- actions используется для выполнения скриптов CGI на основе типа носителя или метода запроса.
- fcgid — это высокопроизводительная альтернатива mod_cgi , запускающая достаточное количество экземпляров программы CGI для одновременной обработки запросов.
- alias позволяет создавать схемы разных деталей файловой системы хоста в дереве документов и для целей переадресации URL.
- proxy_fcgi позволяет Apache перенаправлять запросы PHP-FPM.
Перезапустите службу Apache, чтобы применить изменения:
Мы установили на сервере две версии PHP. Теперь создадим структуру директорий для каждого сайта, который будем развертывать.
Шаг 2 — Создание структур директорий для обоих сайтов
В этом разделе мы создадим корневую директорию документов и страницу индекса для каждого из двух сайтов.
Вначале создайте корневые директории документов для site1.your_domain и site2.your_domain :
По умолчанию веб-сервер Apache работает как пользователь www-data и группа www-data. Чтобы убедиться в правильности структуры владения и разрешений для корневых директорий вашего сайта, используйте следующие команды:
Далее вы создадите файл info.php в корневой директории каждого сайта. В нем будет отображаться информация о версии PHP для каждого сайта. Начнем с site1 :
Добавьте следующую строку:
/var/www/site1.your_domain/info.php
phpinfo(); ?>
Сохраните и закройте файл. Скопируйте созданный файл info.php в site2 :
Теперь на вашем веб-сервере должны иметься корневые директории документов, которые требуются каждому сайту для предоставления данных посетителям. Далее мы настроим веб-сервер Apache для работы с двумя разными версиями PHP.
Шаг 3 — Настройка Apache для обоих сайтов
В этом разделе мы создадим два файла конфигурации виртуального хоста. Это позволит двум нашим сайтам одновременно работать с двумя разными версиями PHP.
Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию /etc/apache2/sites-available/000-default.conf мы создадим два новых файла в директории /etc/apache2/sites-available/ .
Вначале создайте новый файл конфигурации виртуального хоста для сайта site1.your_domain . Здесь вы предписываете Apache использовать для рендеринга содержимого php7.0 :
Добавьте в файл следующее. Убедитесь, что путь к директории сайта, имя сервера и версия PHP соответствуют вашей системе:
/etc/apache2/sites-available/site1.your_domain.conf
ServerAdmin admin@site1.your_domain ServerName site1.your_domain DocumentRoot /var/www/site1.your_domain DirectoryIndex info.php site1.your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost" ErrorLog $/site1.your_domain_error.log CustomLog $/site1.your_domain_access.log combined
В этом файле вы изменили директорию на DocumentRoot , а ServerAdmin на адрес электронной почты, доступный администратору сайта your_domain . Также вы изменили параметр ServerName , устанавливающий базовый домен для этой конфигурации виртуального хоста, и добавили директиву SetHandler для запуска PHP как сервера процессов fastCGI.
Сохраните и закройте файл.
Теперь создайте новый файл конфигурации виртуального хоста для сайта site2.your_domain . Для этого субдомена мы будем развертывать php7.2 :
Добавьте в файл следующее. Убедитесь, что путь к директории сайта, имя сервера и версия PHP соответствуют уникальным параметрам вашей системы:
/etc/apache2/sites-available/site2.your_domain.conf
ServerAdmin admin@site2.your_domain ServerName site2.your_domain DocumentRoot /var/www/site2.your_domain DirectoryIndex info.php site2.your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost" ErrorLog $/site2.your_domain_error.log CustomLog $/site2.your_domain_access.log combined
Сохраните файл и закройте его после завершения. Проверьте файл конфигурации Apache на наличие синтаксических ошибок:
Вывод должен выглядеть так:
OutputSyntax OK
Активируйте оба файла конфигурации виртуального хоста:
Отключите сайт по умолчанию, поскольку он не потребуется:
Перезапустите службу Apache, чтобы применить изменения:
Мы настроили Apache для обслуживания каждого из сайтов и теперь протестируем их и убедимся, что на них работают правильные версии PHP.
Шаг 4 — Тестирование сайтов
Мы настроили два сайта для работы с двумя разными версиями PHP. Теперь проверим результаты.
Откройте в браузере сайты http:// site1.your_domain и http:// site2.your_domain . Вы увидите две страницы, выглядящие следующим образом:


Обратите внимание на заголовки. На первой странице указано, что на сайте site1.your_domain развернута версия PHP 7.0. На второй странице указано, что на сайте site2.your_domain развернута версия PHP 7.2.
Мы протестировали сайты и теперь можем удалить файлы info.php . Эти файлы представляют собой угрозу безопасности, поскольку они содержат важную информацию о вашем сервере и при этом доступны неуполномоченным пользователям. Чтобы удалить оба файла, запустите следующие команды:
Теперь у вас имеется один сервер Debian 10, обслуживающий два сайта с разными версиями PHP. Однако PHP-FPM можно применять и для других целей.
Заключение
Мы объединили виртуальные хосты и PHP-FPM для обслуживания нескольких сайтов и нескольких версий PHP на одном сервере. Количество сайтов PHP и версий PHP, которые может обслуживать ваш сервер Apache, зависит исключительно от вычислительной мощности вашего экземпляра.
Теперь вы можете начать изучение более сложных функций PHP-FPM, таких как процесс адаптивного создания или функции регистрации sdtout и stderr . Также вы можете заняться защитой своих сайтов. Для этого используйте наш обучающий модуль по защите сайтов с помощью бесплатных сертификатов TLS/SSL от Let’s Encrypt.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
