Php debian 10 не работает
Обновлено: 21.11.2024
Estamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
mod_fcgid — это модуль Apache, использующий протокол FastCGI для обеспечения интерфейса между программами Apache и Common Gateway Interface (CGI). CGI помогает веб-серверу создавать и обрабатывать динамическое содержимое для языков сценариев, таких как PHP. Эта динамическая функция обычно используется при запуске систем управления контентом, таких как WordPress, в стеке LAMP.
В этом руководстве показано, как установить mod_fcgid и PHP-FPM в Debian 10. В нем также представлена базовая конфигурация, использующая соединения на основе сокетов вместо TCP. Эти шаги позволят вам запустить PHP через mod_fcgid. Запуск PHP через mod_fcgid помогает уменьшить количество используемых системных ресурсов, заставляя веб-сервер действовать как прокси и передавать в PHP-FPM только файлы, заканчивающиеся расширением .php. Кроме того, использование PHP-FPM позволяет настроить каждый виртуальный хост для запуска кода PHP от имени отдельных пользователей.
В этом руководстве предполагается, что вы знакомы и знакомы с настройкой стека LAMP в Debian 10. Если вы новичок в администрировании серверов Linux, вам может быть интересно прочитать наше руководство по основам системного администрирования Linux.
Прежде чем начать
В примерах этого руководства используется PHP версии 7.3. При выполнении команд, связанных с PHP, обязательно замените все номера версий на версию PHP вашей собственной системы.
Установите mod_fcgid и PHP-FPM
В этом разделе вы установите модули mod_fcgid и PHP-FPM на свой Debian 10 Linode.
Установите mod_fcgid, PHP-FPM и htop. Вам понадобится утилита командной строки htop в следующем разделе этого руководства.
Загрузите модули mod_proxy и mod_proxy_fcgi, отредактировав основную конфигурацию Apache, добавив строки, включенные в пример. Оба этих модуля по умолчанию включены в вашу установку Apache, но для их использования их необходимо явно загрузить. Эти модули понадобятся вам для проксирования запросов через mod_fcgid в ваш сокет.
Проверьте правильность конфигурации:
Перезапустите веб-сервер Apache:
Настройка Apache с помощью PHP-FPM
Теперь вы настроите Apache для передачи всех запросов файлов с расширением .php в оболочку PHP через FastCGI.
Настройте PHP-FPM для использования сокетов UNIX вместо TCP. В этой команде вы будете использовать grep, чтобы определить, используются ли уже сокеты. Эта команда будет искать параметр в файле конфигурации пула по умолчанию для вашей установки php-fpm:
Вы должны увидеть пример вывода.
Если вы видите приведенный выше вывод, перейдите к шагу 6, в противном случае перейдите к следующему шагу, чтобы вручную настроить шаги UNIX.
Если выходные данные не возвращаются, вам потребуется отредактировать файл конфигурации пула PHP, добавив настройку прослушивания с адресом, по которому будут приниматься запросы FastCGI. Добавьте строку в файл примера.
Если listen = 127.0.0.1 еще не раскомментирован, сделайте это сейчас.
Перезапустите демон php-fpm, чтобы эти изменения вступили в силу.
В текстовом редакторе по вашему выбору обновите файл конфигурации Apache по умолчанию, указав следующие основные настройки для mod_fcgid . Вы можете изменить эти настройки в соответствии со своими потребностями.
Проверьте наличие ошибок конфигурации.
Отредактируйте файл конфигурации вашего модуля FastCGI, чтобы добавить настройки в файл примера. Некоторые из примеров настроек уже могут быть включены в вашу конфигурацию. Добавьте недостающие настройки.
Проверьте наличие ошибок конфигурации.
Если вы получили Синтаксис в порядке на шагах 6 и 8, перезапустите службу Apache:
Настройка пулов PHP
Чтобы создать пользователя bob из примера, выполните действия, описанные в нашем руководстве по настройке и защите вычислительного экземпляра.
Перезапустите процесс php7.3-fpm для создания нового пула.
Проверьте файл конфигурации на наличие ошибок.
Если Apache продолжает использовать обработчик apache, выберите Pass use apache: a2enconf php7.3-fpm и a2dismod php7.3 .
Автор Rahul, 20 июня 2018 г. · 3 минуты чтения · Обновлено: 17 февраля 2022 г.
В вашей системе, если вы установили несколько версий PHP (например, PHP 8.1, 8.0, 7.4, 7.3, 7.2, 7.1 и 5.6). PHP 7.2 работает как PHP по умолчанию для Apache и CLI. Для любого требования вам нужно использовать PHP 5.6. Тогда вам не нужно удалять PHP 7.2. Вы можете просто переключить версию PHP на используемую по умолчанию для Apache и командной строки.
Мы предполагаем, что в вашей системе Debian установлено несколько версий PHP. Теперь вам нужно переключить активную версию PHP на CLI и Apache2.Это руководство поможет вам переключаться между несколькими версиями PHP для сервера Apache и интерфейсом командной строки в Debian.
Мы установили PHP 8.1, PHP 7.4 и PHP 5.6 в нашу систему Debian. Вы можете использовать то же самое для других версий PHP, соответствующим образом изменив команды.
Включить PHP 8.1 в качестве версии по умолчанию
Вам необходимо установить PHP 8.1 в качестве активной версии PHP как для CLI, так и для Apache2. Это можно сделать, отключив модули Apache2 для всех других установленных версий PHP и настроив интерфейс командной строки с помощью команды update-alternatives.
-
Для Apache:
Выполните следующую команду, чтобы отключить модуль Apache для других версий PHP.
Теперь включите модуль PHP 8.1 на сервере Apache.
Примечание. Команда phpize8.1 и php-config8.1 доступна в пакете php8.1-dev. Это более полезно для компиляции модулей PHP с использованием pecl.
Включить PHP 7.4 в качестве версии по умолчанию
Вам необходимо установить PHP 7.4 в качестве активной версии PHP как для CLI, так и для Apache2. Это можно сделать, отключив модули Apache2 для всех других установленных версий PHP и настроив интерфейс командной строки с помощью команды update-alternatives.
-
Apache:-
Выполните следующие команды, чтобы отключить модуль Apache для других версий PHP
Теперь включите модуль PHP 7.4 на сервере Apache.
Примечание. Команды phpize7.4 и php-config7.4 доступны в пакете php7.4-dev. Это более полезно для компиляции модулей PHP с использованием pecl.
Включить PHP 5.6 в качестве версии по умолчанию
Разработчики PHP больше не поддерживают PHP 5.6. Настоятельно рекомендуется перейти на более позднюю версию PHP, например 7.4 или 8.1. Но вы все же можете установить и использовать php 5.6 в своей системе Debian, если вашему приложению требуется PHP 5.6. Давайте установим PHP 5.6 в качестве версии по умолчанию для CLI и Apache2.
-
Apache:-
Выполните следующие команды, чтобы отключить другие версии PHP, такие как (php 8.1, php7.4 и т. д.) для Apache и командной строки.
Теперь включите модуль PHP 5.6 на сервере Apache.
Примечание. Команды phpize5.6 и php-config5.6 доступны в пакете php5.6-dev. Это более полезно для компиляции модулей PHP с использованием pecl.
Заключение
В этом руководстве вы узнали о переключении версий PHP в системе Debian. Вы можете изменить версию PHP по умолчанию, не удаляя другие версии.
В этой статье я покажу вам, как настроить сервер LAMP (Linux, Apache, MySQL/MariaDB, PHP) для веб-разработки на PHP. Я собираюсь использовать недавно выпущенный дистрибутив Debian 10 Buster GNU/Linux для демонстрации. Итак, приступим.
Обновление кэша репозитория пакетов APT:
Сначала обновите кэш репозитория пакетов APT с помощью следующей команды:
Кэш репозитория пакетов APT должен быть обновлен.
Установка и настройка MySQL/MariaDB:
Теперь установите пакеты сервера и клиента MariaDB из официального репозитория пакетов Debian 10 с помощью следующей команды:
Чтобы подтвердить установку, нажмите Y, а затем нажмите .
Диспетчер пакетов APT загрузит и установит все необходимые пакеты.
На этом этапе будут установлены пакеты сервера и клиента MariaDB.
Теперь проверьте, запущена ли служба mariadb, с помощью следующей команды:
Как видите, служба mariadb запущена. Он также может автоматически запускаться при загрузке системы.
Если в любом случае служба mariadb не запущена, запустите службу с помощью следующей команды:
Теперь выполните следующую команду, чтобы установить пароль root для MariaDB:
Теперь нажмите Y, а затем нажмите .
Теперь введите пароль root и нажмите .
Введите пароль root еще раз и нажмите .
Нажмите Y, а затем нажмите, чтобы удалить анонимных пользователей.
Если вы не хотите разрешать удаленный вход в систему root, нажмите Y. В противном случае нажмите N. Затем нажмите .
Теперь нажмите Y и нажмите , чтобы удалить тестовую базу данных.
Теперь нажмите Y, а затем нажмите, чтобы перезагрузить таблицу привилегий.
MariaDB должен быть настроен.
Создание новых пользователей и баз данных MySQL/MariaDB:
Теперь вам нужно создать нового пользователя и базу данных для вашего веб-приложения.
Войдите в оболочку MariDB с помощью следующей команды:
Теперь введите пароль администратора MariaDB, который вы уже установили, и нажмите .
Вы должны войти в систему.
Теперь создайте базу данных app1 со следующим оператором SQL:
Теперь создайте нового пользователя (скажем, shovon), установите пароль для пользователя (скажем, 123) и предоставьте пользователю разрешение на использование базы данных app1 с помощью следующего оператора SQL:
Теперь сбросьте привилегии MariaDB, чтобы изменения вступили в силу следующим образом:
Теперь выйдите из оболочки MariaDB следующим образом:
Установка веб-сервера Apache и PHP:
Теперь установите веб-сервер Apache 2 и PHP с помощью следующей команды:
Теперь нажмите Y, а затем нажмите для подтверждения установки.
Должны быть установлены веб-сервер Apache 2 и PHP.
Теперь проверьте, запущена ли служба apache2, с помощью следующей команды:
Как видите, служба apache2 запущена. Он также может запускаться автоматически при загрузке системы.
Если в любом случае служба apache2 не запущена, то вы можете запустить ее вручную следующим образом:
Установка расширений PHP:
В официальном репозитории пакетов Debian 10 есть много предварительно упакованных расширений PHP.
Вы можете получить список всех доступных расширений/библиотек PHP с помощью следующей команды:
Должны быть указаны имена пакетов всех расширений PHP, включая их номер версии и краткое описание. Это очень длинный список. Таким образом, может потребоваться некоторое время, чтобы найти то, что вы ищете таким образом.
Чтобы установить наиболее распространенные расширения/библиотеки PHP, выполните следующую команду:
Теперь нажмите Y, а затем нажмите для подтверждения установки.
Должны быть установлены распространенные расширения PHP.
После установки расширений PHP перезапустите веб-сервер Apache следующим образом:
Включение/отключение модулей Apache:
Веб-сервер Apache поставляется с множеством модулей. Вы можете включить или отключить их по мере необходимости.
Чтобы получить список всех доступных модулей Apache 2, выполните следующую команду
Как видите, перечислены все доступные модули Apache 2.
Чтобы включить модуль (скажем, переписать), выполните следующую команду:
Не забудьте перезапустить веб-сервер Apache 2, если вы включаете/отключаете модули Apache 2.
Чтобы перезапустить веб-сервер Apache 2, выполните следующую команду:
Чтобы вывести список всех включенных/активных модулей Apache 2, выполните следующую команду:
Должны быть перечислены все включенные/активные модули Apache 2.
Если вы решили отключить включенный модуль, используйте команду a2dismod следующим образом:
Изменение пользователя запуска Apache:
Пользователь запуска Apache по умолчанию в Debian 10 — www-data, а корневой веб-каталог по умолчанию — /var/www/html. Таким образом, как обычный пользователь, вы не сможете создавать файлы/каталоги или изменять существующие файлы/каталоги в корневом веб-каталоге. Поскольку вы настраиваете сервер LAMP для разработки, это не то, что вам нужно. Чтобы решить эту проблему, вы должны изменить пользователя запуска Apache на пользователя для входа в систему и изменить владельца и группу корневого каталога /var/www/html на пользователя для входа в систему.
Чтобы изменить пользователя запуска Apache, отредактируйте файл конфигурации /etc/apache2/envvars с помощью следующей команды:
Необходимо изменить переменные среды APACHE_RUN_USER и APACHE_RUN_GROUP.
Теперь задайте для переменных среды APACHE_RUN_USER и APACHE_RUN_GROUP имя пользователя для входа в систему (вывод команды whoami). Когда вы закончите, сохраните файл, нажав + X, а затем Y и .
Теперь измените владельца и группу каталога /var/www/html на имя пользователя, с которым вы вошли в систему, с помощью следующей команды:
Теперь перезапустите веб-сервер Apache 2 с помощью следующей команды:
Тестирование сервера LAMP:
Я создал 2 PHP-скрипта index.php и phpinfo.php в корневом каталоге /var/www/html.
Содержимое index.php:
$host = "localhost" ;
$user = "shovon" ;
$pass = "123" ;
$db = "приложение1" ;
try <
$conn = new PDO ("mysql:host= $host; dbname= $db", $user, $pass);
$conn -> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION) ;
echo "Подключение успешно" ;
> catch ( PDOException $e ) <
echo "Ошибка соединения: " . $e -> получить сообщение ( ) ;
>
?>
Теперь у вас должен быть доступ к PHP-скриптам из браузера, как показано на снимке экрана ниже.
Итак, вот как настроить сервер Debian 10 LAMP для веб-разработки на PHP. Спасибо, что прочитали эту статью.
Если ваш веб-сервер Apache 2 не выполняет файлы PHP, узнайте, как быстро решить эту проблему.
Изображение: Джек Уоллен
Сколько раз вы настраивали веб-сервер с Apache 2 только для того, чтобы обнаружить, что при попытке просмотра страницы с расширением .php страница либо пытается сохраниться на локальном диске, либо отображает код PHP в браузере? Это плохо на нескольких уровнях. Во-первых, ваш сайт не работает должным образом; еще хуже мысль о том, что кто-то может получить представление о вашем коде из первых рук, что является не только разочарованием, но и возможной проблемой безопасности.
Нетворкинг: обязательно к прочтению
Учитывая, что это легко исправить, нет причин избегать работы с PHP и Apache 2. Но как это исправить? Позволь мне показать тебе. Примечание. Я демонстрирую этот процесс на Ubuntu Server 16.04 с последними версиями Apache 2 и PHP.
Измените файл .conf
Первое, что мы должны сделать, это изменить основной файл конфигурации Apache 2. Для этого откройте окно терминала и введите команду:
sudo nano /etc/apache2/apache2.conf
Когда apache2.conf открыт, все, что вам нужно сделать, это добавить в конец файла следующее:
Сохраните и закройте файл apache2.conf.
Включить/отключить модули
Чтобы обеспечить правильную работу PHP, необходимо отключить модуль mpm_event и включить модули mpm_prefork и php7. Для этого вернитесь в окно терминала и введите команду:
sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && судо a2enmod php7.0
Перезапустите Apache 2
Вы готовы перезапустить Apache 2. Поскольку мы отключили/включили модули, нам необходимо выполнить полный перезапуск Apache 2 (вместо перезагрузки файлов конфигурации). Чтобы перезапустить Apache, вернитесь в окно терминала и введите команду:
перезагрузка службы sudo apache2
Теперь вы должны указать браузеру файл PHP и посмотреть, как он правильно выполняется, вместо того, чтобы сохранять его на локальный диск или отображать код в браузере.
Вот и все — Apache 2 должен работать именно так, как вам нужно.
Простое решение
Я предупреждал вас, что это простое решение. Apache 2 — очень удобный веб-сервер для настройки и управления. Хотя можно было бы подумать, что выполнение PHP будет встроенной функцией, эту проблему очень легко решить.
Информационный бюллетень TechRepublic Premium Exclusives
Экономьте время с последними загрузками TechRepublic Premium, включая оригинальные исследования, настраиваемые шаблоны ИТ-политики, готовые презентации для обучения, инструменты для найма ИТ-специалистов, калькуляторы рентабельности инвестиций и многое другое. Эксклюзивно для вас!
Читайте также: