Linux установить php fpm

linux-notes.org

Еще в 2014м годе, Zend провел голосование и по результатам голосов, новая версия ПО получила название — PHP7. На данный момент (2019 год), самая последняя версия ПО — это PHP-7.4.

Установка PHP 7(php-fpm) с Nginx в Centos/RedHat/Fedora

Подключаем необходимые репозитории, — стоит подключить EPEL и REMI. Документация тут:

Выполним поиск пакета:

Чтобы поставить, выполняем:

PS: Версии можно менять, например php71, php72, php73.

Если необходимо, можно поставить модули, например:

Чтобы постоянно не подключать репозиторий, можно его включить следующим образом:

Чтобы проверить версию, выполним:

Если есть необходимость внести какие-то настройки в сам php, то открываем:

Если нужно внести изменения в php-fpm, открываем:

У меня он выглядит:

Чтобы запустить php-fpm, выполните:

Чтобы проверить статус, выполните:

Можно сервис добавить в автозагрузку ОС:

Установка PHP 7(php-fpm) с Nginx 1.9 в Debian 8

Недавно, вышла новая версия PHP7. В данной статье «Установка PHP 7 в Debian 8» я хотел бы уделить внимание установки PHP 7 в Debian 8.

Установка nginx 1.9 в Debian 8.

Для начала, добавляем ключ:

И выполняем установку:

Я ленивый иногда, по этому для этой задачи, я написал bash скрипт. Вы можете его тоже использовать:

Установка PHP 7 в Debian 8 с использованием репозитория Dotdeb.

Чтобы установить PHP 7 на Debian 8, но для начала добавляем репозиторий:

После этого, загружаем и запускаем ключ GnuPG:

Запускаем установку PHP как fpm:

Чтобы запустить PHP 7, используйте:

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

Ну это простой вариант и взят в качестве примера (что можно использовать данный репозиторий), а дальше, я опишу нормальное решение.

Установка PHP 7 в Debian 8 с исходного кода.

Для начала выполняем установку всех необходимых компонентов и все зависимости для PHP 7:

Я указал все нужные зависимости для моей сборки, вы можете дополнить их (в зависимости от своих нужд). Если не сделать это, то вы получите ошибку в процессе выполнения команды ./configure.

Переходим в директорию, скачиваем и распаковываем архив с php7, для этого выполните команду:

Вы можете использовать другую ссылку (если вышла пхп свежей версии) с официального сайта.

Переходим в папку:

Добавляем нужные модули в свою сборку и указываем параметры:

При необходимости, можно просмотреть весь список доступных модулей:

А сейчас, приступаем к компиляции и собственно к самой установки PHP 7:

Идем далее, копируем конфигурационный файл с php.ini в папку установки PHP:

Подключаем модуль Zend OPcache: /usr/local/php7/etc/conf.d

Прописываем в него:

И так, настроим сейчас PHP-FPM, для этого открываем файл:

И прописываем в него:

И для этого, создаем init.d скрипт:

Назначаем нужные права (исполнение) и добавляем скрипт в автозагрузку своей ОС:

Читайте также:  Кодировки для windows live

Чтобы запустить (в данном случае перезапусить) php7-fpm выполняем:

Если используете PHP-FPM с Nginx, то нужно добавьте в блок server виртуального хоста следующий текст:

PS: Для всего этого, я написал bash скрипт, вы можете его использовать для своих нужд:

Осталось только перезапустить все службы:

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

Установка PHP 7(php-fpm) с Nginx в MacOS

Для начала устанавливаем homebrew, ссылку можно найти тут:

После чего, можно выполнить поиск и посмотреть какие версии актуальны на данный момент:

Чтобы уствновить, используем:

Проверить версию, можно так:

Установка PHP 7(php-fpm) с Nginx на другие Unix/Linux ОС

Для других Unix/Linux ОС, не приходилось ставить еще. Но можно заюзать — Docker, как пример!

Обновление PHP (php-fpm) с Nginx в CentOS/Fedora/Redhat

А на этом у меня все, статья «Установка PHP 7(php-fpm) с nginx в Unix/Linux» завершена.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Веб-сервер на основе Nginx и PHP-FPM

Содержание

Существуют различные схемы построения веб-серверов для передачи данных по протоколу HTTP . Среди них достойное место по производительности занимают схемы с использованием «Nginx» в качестве внешнего (кэширующего, front-end) сервера. «Nginx» разработан для отдачи статических данных, при этом, он показывает высокое быстродействие и нагрузочную способность (см. Nginx vs Cherokee vs Apache vs Lighttpd), генерировать же динамическое содержимое он не способен. Поэтому, он часто применяется в связке с внутренним (back-end) сервером для обработки динамических данных которые потом отдаются «Nginx» как статические без участия внутреннего сервера. В качестве внутреннего сервера может применяться «Apache2» или, что и рассматривается в данной статье, «PHP-FPM».

Установка

Сервер «Nginx» поставляется в одноименном пакете «nginx» и его установка производится, например, командой в терминале

Установку же «PHP-FPM» можно произвести, например, командой

Безопасность

Наряду с уязвимостями присущими ПО сервера, присутствуют также те, что обусловлены неосторожностью администратора сервера. Для их устранения следует соблюдать меры предосторожности:

Настройка

Настройка состоит из двух этапов — настройки «Nginx» и «PHP-FPM». Для начала необходимо остановить процессы (демоны) «Nginx» и «PHP-FPM», например, командами

Настройка PHP-FPM

Прежде всего, следует открыть файл «/etc/php5/fpm/php.ini» для редактирования, например, командой

после чего, найти строчку содержащую «cgi.fix_pathinfo», которая по-умолчанию выглядит так (закомментирована)

и привести её к виду

Это призвано устранить опасность неправильно трактования (и возникающей уязвимости) запросов вида «/image.gif/foo.php» (см. Don’t trust the tutorials: check your configuration!, Nginx 0day exploit for nginx + fastcgi PHP).

Если планируется загрузка больших файлов (важно для ownCloud версий -FPM» (см. PHPFcgiExample) и следовать некоторым правилам/рекомендация для достижения эффективной работы сервера (см. Pitfalls).

Описывать конфигурацию сайта в одном файле не очень удобно, для увеличения читабельности конфигурационного файла и гибкости настройки можно воспользоваться директивой «include» позволяющей указать «Nginx», что следует загрузить другой конфигурационный файл и затем продолжить чтение текущего. Создадим в папке «/etc/nginx/» каталог «common», где будут хранится общие настройки для сайта, которые затем будут подгружаться из основного конфигурационного файла «/etc/nginx/sites-available/example.com» с помощью директивы «include»

Некоторые запросы «Nginx» будет перенаправлять к «PHP-FPM», который в данном случае называется сервером выгрузки данных (upstream). Укажем как следует это делать. Создадим файл конфигурации с описанием серверов выгрузки данных

Читайте также:  Скрипты для mac os терминал

и откроем его для редактирования

и добавим в него строчки

где «php-fpm» – название для сервера выгрузки данных, для удобства.

Редактируем файл «/etc/nginx/sites-available/example.com». Добавляем строчку

для загрузки созданого выше конфигурационного файла. Как можно видеть – допускается указание относительного пути к файлу.

иначе, можно опустить эти строчки.

Начинаем описывать конфигурацию сайта

Сетевой порт для приема соединений: 80 — обычный HTTP ; 443 — HTTPS (см. выше)

Корневая директория сайта работающего на данном сервере

Возможные имена индексных файлов (их «Nginx» пытается открыть если он получил запрос вида «example.com/», вместо явного «example.com/index.html»)

Имя сервера – обычно доменное имя Вашего сервера

Шифрование

Необходимо наличие сертификата «*.crt» или «*.pem» и приватного секретного ключа «*.key» (см. Сертификаты). Самоподписанный сертификат можно сгенерировать командой в терминале (см. man openssl, man req)

При этом программа запросит данные, среди них «commmon name» — следует указать доменное имя сервера. Можно использовать шаблон, если необходимо учесть домены нижнего уровня, например, «*example.com». Иначе могут возникнуть проблемы с некоторыми программами, например, «davfs2» (см man davfs2.conf).

Но можно пойти дальше и воспользоваться сервисом «StartSSL» где выдают бесплатные сертификаты для личного пользования (см. startssl.com и Получение и установка бесплатного SSL-сертификата), но сам приватный ключ (который нельзя никому показывать) лучше сгенерировать самому, например, так

затем сформировать файл запроса на подпись (при этом прийдётся вводить те же данные что и для генерации самоподписанного сертификата, но это не важно, т.к. сервис «StartSSL» проигнорирует все кроме публичного ключа)

открыть полученный файл текстовым редактором

и скопировать его содержимое в текстовое поле на сайте «StartSSL» для запроса сертификата (см. ссылки на подробные инструкции выше). Файл *.csr больше не нужен. Затем загружаем подписанный сертификат (например, файл называется signed.crt) и объединяем его с сертификатом того кто этот сертификат подписал

Файл «signed.crt» можно удалить.

Копируем секретный ключ в системную папку и выставляем права доступа

И в соседнюю папку сам сертификат

Для пущей надежности можно сгенерировать ключ Диффи-Хеллмана (тоже секретный файл который очень долго генерируется)

Продолжаем редактировать конфигурационные файлы.

Для удобства описываем настройки шифрования во внешнем файле «/etc/nginx/common/ssl»

Редактируем файл «/etc/nginx/common/ssl»

Файлы сертификатов для «HTTPS»

Дополнительные параметры требуемые для «HTTPS»

На этом настройки «SSL» в «Nginx» завершены, сохраняем и закрываем файл. После завершения описания конфигурации (см. ниже) можно будет проверить надежность сервисом «SSLLabs»

Продолжаем редактировать файл «/etc/nginx/sites-available/example.com». Подгружаем созданный выше конфигурационный файл с описанием настроек SSL

Прочие настройки

Указание максимального размера запроса – необходимо если сервер будет использоваться для загрузки больших файлов (например, для построения небольшого облачного хранилища на основе «ownCloud», эта строчка по сути делает то же что и указанные выше при настройке «PHP-FPM», только теперь для «Nginx»)

Безопасность

Опишем настройки безопасности в отдельном файле

Сохраним и закроем файл, а затем подключим его строкой

Сжатие

Для экономии трафика лучше включить сжатие (иногда со влючённым сжатием могут возникать проблемы, например, у «ownCloud», см. ниже). Опишем настройки сжатия в отдельном файле

Следует сохранить, закрыть и затем подключить этот файл срочкой

Директории сайта

Далее указание директорий сайта и правил работы с ними с использованием директив «location». Данная директива может обрабатывать регулярные выражения «Perl» (см. Регулярные выражения (шаблоны))

Читайте также:  Design studio для windows

К примеру, если хочется построить сайт на основе «WordPress», то можно описать корневую директорию так

Соответственно сам сайт должен размещаться в каталоге «/var/www/wordpress/»

Директории можно описывать по одной в этом же файле, но это не удобно и не наглядно. А можно указать строчку

которая укажет «Nginx», что нужно подключить все файлы в директории «/etc/common/locations/» которые соответствуют шаблону «*.inc», таким образом, если один из файлов нужно будет временно отключить, то его можно просто переименовать убрав расширение в имени. Создадим директорию где будут хранится эти файлы

Некая директория «/var/www/restricted» доступная только авторизованным пользователям сервера. Создадим для неё файл конфигурации «/etc/nginx/common/locations/restricted.inc»

» указывает, что при совпадении здесь директивы «location» ниже проверяться не будут.

Этот конфигурационный файл подключится автоматически, за счёт шаблона (см. выше).

WordPress

Для более полной информации по настройке «Nginx» для «WordPress» следует обратиться к официальной документации (см. codex.wordpress.org/Nginx и wiki.nginx.org/WordPress)

Натройки «Wordpress», который, в данном примере, находится в папке «/var/www/wordpress» будут описаны в файле «/etc/nginx/common/locations/wordpress.inc»

Указываем виртуальную директорию (используется для удобства и читабельности) в которую будут перенаправляться запросы при необходимости

Аналогично примеру выше предотвращаем обработку остальных директив «location»

Сохраняем и закрываем этот файл. Опять же, он будет подключён автоматически.

ownCloud

Для наиболее полной информации следует обратится к официальному руководству «OwnCloud» (см. Nginx Configuration). К примеру, «ownCloud» находится в папке «/var/www/owncloud».

Создадим файл настроек для «ownCloud» и отредактируем его

Многое аналогично примеру для «Wordpress»

Начиная с версии «ownCloud» 8 появился отдельный файл для переопределения некоторых настроек «PHP-FPM» взамен указанных в «/etc/php5/fpm/php.ini». Открыть его можно командой

и в нем найти строчки

и поменять значения на требуемые.

Базовые ограничения

Выше была написана строчка для подключение файла «/etc/nginx/common/deny»

рассмотрим его содержание. В нём идет запрет доступа к некоторым стандартным файлам. Создадим этот файл

Следует переписать все файлы «.htaccess» в директивы «Nginx». Найти эти файлы среди файлов сайта можно, например, командой

Вызов PHP-FPM

В примерах выше использовался файл «/etc/nginx/common/php-fpm» — в нём идет перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM»

Создаём этот файл

Кеширование

Выше, в примерах, был упомянут файл «/etc/nginx/common/cache»

Сайт работает значительно лучше когда часть контента сохранена на стороне клиента с прошлого посещения сайта. Не все файлы можно кешировать. Поэтому описание кеширования производится в самом конце (т.е. эти настройки будут иметь наименьший приоритет и есть шанс что это не повлияет на правильную работу сайта). Создадим файл с параметрами для кеширования

Окончание

Закрываем фигурные скобки директивы «server» в «/etc/nginx/sites-available/example.com»

На этом правка файла «/etc/nginx/sites-available/example.com» завершена. Убедитесь в том, что все фигурные скобки «< >» закрыты корректно и части файла верно вложены друг в друга («location» внутри «server» и т.п.).

Сохраняем все изменённые файлы.

Теперь можно перезапустить демоны

Проверка

Проверить свой сайт можно создав файл «info.php» с содержанием

затем скопировав его, например, в «/var/www/wordpress/wp-content/uploads/», затем открыв адрес в браузере «http://example.com/wordpress/wp-content/uploads/info.php», если он выполнится вместо того чтобы просто сохранится — то что-то настроено неправильно, в этой директории php файлы выполняться не должны ни в коем случае (она доступна для загрузки)

Проверить свой сайт на скорость и прочее можно тут:

Источник

Оцените статью