Как быстро переключить версии php в ubuntu

После установки Let’s Encrypt повторно откройте созданный выше файл VirtualHost Nginx и добавьте конфигурации Let’s Encrypt для защиты вашего сайта.

Выполните команды ниже, чтобы открыть файл.

Затем добавьте выделенные строки в файл VirtualHost, как показано ниже:

После вышеуказанного перезапустите Nginx и PHP 7.4-FPM.

Затем откройте браузер и перейдите к доменному имени сервера. Вы должны увидеть завершение работы мастера установки WordPress. Пожалуйста, внимательно следуйте указаниям мастера.

https://example.com/

Затем следуйте инструкциям на экране… Выберите язык установки и нажмите «Продолжить».

Прежде чем продолжить, вам необходимо знать следующее…. Используйте информацию о подключении к базе данных, которую вы создали выше….

  • Имя базы данных
  • Имя пользователя базы данных
  • Пароль базы данных
  • Хост базы данных
  • Префикс таблицы (если вы хотите запустить более одного WordPress в одной базе данных)

Мастер будет использовать информацию из базы данных для создания файла wp-config.php в корневой папке WordPress….

Если по какой-либо причине это автоматическое создание файла не работает, не беспокойтесь… Все, что нужно сделать, это заполнить информацию из базы данных в файле конфигурации. Вы также можете просто открыть wp-config-sample.php в текстовом редакторе, ввести свою информацию и сохранить ее как wp-config.php .

Затем введите информацию о подключении к базе данных и нажмите Отправить.

После этого нажмите кнопку « Запустить установку» , чтобы WordPress завершил установку.

Затем создайте имя сайта WordPress и учетную запись бэкэнд-администратора…. затем нажмите Установить WordPress

Когда вы закончите, WordPress должен быть установлен и готов к использованию

Поздравляю! Вы успешно установили WordPress CMS в Ubuntu 18.04 | 20.04. Если вы обнаружите какую-либо ошибку выше, пожалуйста, используйте форму комментария ниже, чтобы сообщить об этом.

Установка PHP 8 для NGINX сервера Ubuntu

В отличие от Apache, NGINX не имеет встроенных возможностей для обработки PHP-документов. Чтобы обойти эту проблему, вам нужно установить PHP-FPM (то есть PHP FastCGI Process Manager) и настроить его для работы с NGINX.

Первое что требуется это убедится в том, что вы добавили репозиторий ondre/php.

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

Чтобы установить PHP-FPM 8.0 на Ubuntu 20.04, выполните приведенную ниже команду.

Теперь проверьте версию PHP с помощью команды:

Затем откройте файл блока сервера NGINX по умолчанию, делается это следующим образом.

Прокрутите вниз, пока не дойдете до строки, начинающейся с index, а затем добавьте index.php к списку, как показано на рисунке ниже.


Добавить index.php директива to NGINX index

Прокрутите страницу вниз еще дальше, пока не увидите раздел # pass PHP scripts to FastCGI server. Измените эту часть конфигурационного файла так, чтобы она выглядела так, как вы видите в приведенном ниже блоке кода.

Обратите внимание, что определенные строки были раскомментированы, а php7.4-fpm.sock был заменен на php8.0-fpm.sock. Сохраните внесенные изменения и закройте файл блокировки сервера

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

Тест PHP 8 на NGINX

Чтобы убедиться, что после установки PHP 8, он правильно работает с NGINX. Создайте index.php файл в корне документа по умолчанию.

Скопируйте и вставьте приведенный ниже пример PHP — кода в текстовый редактор.

Сохраните и закройте index.php файл.

И последнее, откройте веб-браузер и перейдите к server IP/index.php… Заменив serverIP на ваш фактический IP-адрес сервера.

Если вы видите страницу PHP версии 8.0.3 info, то вы все сделали правильно.


PHP Версия 8.0.3 страница на NGINX

Запуск новых процессов Nginx

Чтобы приступить к обновлению исполняемого файла, нужно обновить двоичный файл. Метод обновления этого файла зависит от метода установки Nginx (с помощью менеджера пакетов или из исходного кода)

Когда новый бинарный файл на месте, запустите второй набор главных и рабочих процессов, которые используют новый исполняемый файл.

Для этого нужно отправить сигнал USR2 на ранее найденный PID процесса.

Примечание: Этот условный PID нужно заменить своим идентификатором.

Кроме того, обнаружить и использовать PID целевого процесса можно непосредственно во время отправки сигнала:

Проверьте текущие процессы, чтобы убедиться, что второй набор процессов успешно запущен:

Также можно видеть, что оригинальный файл /run/nginx.pid был перемещён в /run/nginx.pid.oldbin, а PID нового master-процесса записан в /run/nginx.pid:

Теперь сигналы можно отправлять любому из этих главных процессов, указывая соответствующий PID.

На данный момент оба набора процессов работают и могут обслуживать запросы клиентов. Первый набор использует оригинальный исполняемый и конфигурационный файл Nginx, а второй набор использует более новые версии этих файлов. Они могут продолжать работать вместе. Теперь можно приступать к обновлению веб-сервеера Nginx.

Шаг 2: Установите сервер базы данных MariaDB

Вам также понадобится сервер базы данных для запуска Moodle. Сервер базы данных — это место, где хранится контент Moodle.

Настоящим сервером базы данных с открытым исходным кодом, который вы можете использовать с Moodle, является сервер базы данных MariaDB. Это быстрый, безопасный и используемый по умолчанию сервер почти для всех серверов Linux.

Чтобы установить MariaDB, выполните следующие команды:

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

Затем запустите приведенные ниже команды, чтобы защитить сервер базы данных паролем root, если вам не было предложено сделать это во время установки.

При появлении запроса ответьте на приведенные ниже вопросы, следуя инструкциям.

  • Enter current password for root (enter for none): Just press the Enter
  • Set root password? [Y/n]: Y
  • New password: введите пароль
  • Re-enter new password: повторите пароль
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

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

при появлении запроса введите пароль root.

Если вы видите экран, похожий на показанный выше, значит сервер успешно установлен.

Затем выполните следующие команды, чтобы открыть файл конфигурации по умолчанию MariaDB.

Затем добавьте выделенные строки ниже и сохраните.

После этого перезапустите MariaDB.

Результаты и дальнейшие действия

На данном этапе нужно проверить систему и убедиться, что не возникло никаких ошибок или проблем. Вы можете оставить конфигурации в этом состоянии до тех пор, пока на 100% не убедитесь в том, что новый исполняемый файл не содержит ошибок.

Дальнейшие действия полностью зависят от результатов проверки.

Завершение перехода

В случае успешного обновления завершите переход.

Если во время проверки не появились ошибки, можно отключить устаревший главный процесс. Для этого отправьте ему сигнал:

После этого устаревший главный процесс будет остановлен, и в работе останется только новый набор процессов Nginx. Обновление бинарного файла Nginx успешно завершено, при этом все клиентские соединения остались на месте.

Восстановление старого бинарного файла

Если новые рабочие процессы во время проверки столкнулись с ошибкой, нужно возобновить старые конфигурации и бинарные файлы. Это можно сделать в текущей сессии.

Для восстановления старых рабочих процессов нужно отправить сигнал HUP. Как правило, при получении этого сигнала главный процесс Nginx перечитывает конфигурационные файлы и запускает новые рабочие процессы. Однако если сигнал отправлен старому главному процессу, он просто запустит новые рабочие процессы, используя оригинальные конфигурации:

Теперь на сервере снова запущены два набора процессов:

Новые рабочие процессы связаны со старым главным процессом. Теперь клиентские соединения поступают на два набора процессов. Остановите более новый главный процесс, содержащий ошибку, и его рабочие процессы при помощи сигнала QUIT:

Теперь все запросы полностью обрабатываются оригинальным набором процессов.

PID главного процесса переместится в файл /run/nginx.pid.

Если предложенные выше инструкции не сработали по какой-либо причине,  попробуйте послать новому главному процессу сигнал TERM, который инициирует его отключение.Это должно остановить новый master-процесс и все его рабочие процессы, автоматически возобновляя старый master-процесс и инициируя его рабочие процессы.

Если же ошибки не исчезли, а рабочие процессы, содержащие ошибки, не останавливаются, почистите их при помощи сигнала KILL. Имейте в виду: этот способ следует рассматривать в последнюю очередь, так как этот сигнал сбросит клиентские соединения.

Вернувшись к старой версии бинарного файла, помните о том, что загруженная ранее новая версия всё ещё находится на сервере. Удалите версию, содержащую ошибки, и перезапустите Nginx, вернувшись к старой версии.

CentOS 7NGINXUbuntu 14.04

Speed up PHP by using an opcode cache

You can improve the performance of your PHP by using a caching method. We’ll use APCu, but there are other alternatives available.

If you have the ‘php-pear’ module installed (we included it in our instructions above), you can install APCu with the following command:

pecl install apcu

There are also other ways you can install APCu, including using a package.

To start using APCu, you should run the following command for PHP 7.2:

echo "extension=apcu.so" | tee -a /etc/php/7.2/mods-available/cache.ini

Or this command for PHP 7.3:

echo "extension=apcu.so" | tee -a /etc/php/7.3/mods-available/cache.ini

And the following command for PHP 7.4:

echo "extension=apcu.so" | tee -a /etc/php/7.4/mods-available/cache.ini

If you’re following our LAMP tutorials and you’re using Apache, create a symlink for the file you’ve just created.

For PHP 7.2:

ln -s /etc/php/7.2/mods-available/cache.ini /etc/php/7.2/apache2/conf.d/30-cache.ini

For PHP 7.3:

ln -s /etc/php/7.3/mods-available/cache.ini /etc/php/7.3/apache2/conf.d/30-cache.ini

For PHP 7.4:

ln -s /etc/php/7.4/mods-available/cache.ini /etc/php/7.4/apache2/conf.d/30-cache.ini

And finally, reload Apache for the changes to take effect:

systemctl restart apache2

To further configure APCu and how it works, you can add some additional lines to the cache.ini file you previously created. The best configuration depends on what kind of server you’re using, what applications you are using etc. Either google it and find a configuration that works for you, or contact professionals and let them do it for you.

Установка NGINX

Устанавливаем NGINX:

apt-get install nginx

Внесем изменение в файл nginx.conf:

vi /etc/nginx/nginx.conf

http {
    …
    server_names_hash_bucket_size 64;
    ….
}

* в данном примере мы сняли комментарий со строчки server_names_hash_bucket_size 64;* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.

Запускаем nginx:

systemctl enable nginx

systemctl start nginx

* в процессе запуска мы можем увидим ошибку — возможно, в системе работает другой веб-сервер и занимает 80 порт. Как правило, это apache. Чтобы его выключить (на данном этапе он нам не нужен) вводим команду systemctl stop apache2.

Проверим работу веб-сервера. Открываем браузер и вводим в адресной строке http://. В итоге мы должны увидеть заголовок «Welcome to nginx!»:

Если стартовая страница не загружается, проверяем состояние сервиса:

systemctl status nginx

Перейдите на портал своего поставщика DNS, добавьте текстовую запись для строки выше и сохраните.

Подождите несколько минут, прежде чем продолжить из командной строки.

Некоторые поставщики DNS используют хитрость для распространения изменений, поэтому это может зависеть от платформы вашего провайдера.

После внесенных выше изменений, и Let’s encrypt сможет подтвердить, что вы являетесь владельцем домена, вы должны увидеть успешное сообщение, как показано ниже:

Подстановочный сертификат создан и готов к использованию.

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

Это должно отобразить аналогичный экран, как показано ниже:

Теперь сертификаты Let’s Encrypt действительны в течение 90 дней … Вы захотите настроить задание crob для автоматизации процесса обновления … Для этого откройте crontab и добавьте запись ниже:

Затем добавьте строку ниже и сохраните.

Сохраните, и все готово!

После установки Let’s Encrypt повторно откройте созданный выше файл VirtualHost Nginx и добавьте конфигурации Let’s Encrypt для защиты вашего сайта.

Выполните команды ниже, чтобы открыть файл.

Затем добавьте выделенные строки в файл VirtualHost, как показано ниже:

После вышеуказанного перезапустите Nginx и PHP 7.4-FPM.

Затем откройте браузер и перейдите к доменному имени сервера. Вы должны увидеть мастер установки Joomla для завершения. Пожалуйста, внимательно следуйте указаниям мастера.

https://example.com/

Затем следуйте инструкциям на экране.

Выберите язык установки, имя сайта, данные учетной записи суперпользователя, включая адрес электронной почты, имя пользователя и пароль.

Затем нажмите Далее, чтобы продолжить.

На следующем экране введите информацию о базе данных, созданную выше, и нажмите Далее, чтобы продолжить.

Затем убедитесь, что установлены все требования и пакеты.

После этого нажмите « Установить», чтобы завершить работу мастера.

Теперь вы можете войти в админку и начать настройку среды своего веб-сайта.

Когда вы закончите, Joomla должна быть установлена ​​и готова к использованию. Войдите как администратор и начните настраивать свой сайт.

Поздравляю! Вы успешно установили Joomla CMS в Ubuntu 18.04 | 20.04. Если вы обнаружите какую-либо ошибку выше, пожалуйста, используйте форму комментария ниже, чтобы сообщить об этом.

Install PHP 7.1 on Ubuntu

Use the following set of commands to add PPA for PHP 7 in your Ubuntu system and install PHP 7.1 version.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.1

Now use the following command to check installed php version on your system.

php -v 

PHP 7.1.27-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar  7 2019 20:02:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.27-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Установка PHP в Ubuntu

Предполагается, что у вас уже установлен какой-нибудь PHP версии 7.x. Если нет, то давайте это исправим:

apt-get update && apt-get upgrade
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php7.2
apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

1
2
3
4
5
6

apt-get update&&apt-get upgrade

apt-get install software-properties-common

add-apt-repository ppaondrejphp

apt-get update

apt-get install php7.2

apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

Теперь, например устанавливаем версию 5.6:

sudo apt install php5.6

1 sudo apt install php5.6

После всех этих команд на вашей машине установлены 7.2 и 5.6 версии. Выведем список всех установленных версий в меню, которое позволит выбрать нужную версию:

sudo update-alternatives –config php

1 sudo update-alternatives–config php

После этого вы увидите примерно такое:

There are 2 choices for the alternative php (providing /usr/bin/php).

Selection Path Priority Status

————————————————————

* 0 /usr/bin/php7.2 72 auto mode

1 /usr/bin/php5.6 56 manual mode

2 /usr/bin/php7.2 72 manual mode

Press to keep the current choice, or type selection number:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

There are2choices forthe alternative php(providingusrbinphp).

Selection    Path             Priority   Status

————————————————————

*usrbinphp7.272auto mode

1usrbinphp5.656manual mode

2usrbinphp7.272manual mode

Pressenter>tokeep the current choice*,ortype selection number

В коде выше можно выбрать например пункт — 1 и тогда версия переключится на 5.6. Проверить это можно следующей командой:

php -v

1 php-v

Которая вернет примерно такое сообщение:

PHP 5.6.38+deb.sury.org+2 (cli)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

1
2
3
4
5
6
7

PHP5.6.38+deb.sury.org+2(cli)

Copyright(c)1997-2016The PHP Group

Zend Engine v2.6.0,Copyright(c)1998-2016Zend Technologies

with Zend OPcache v7.0.6-dev,Copyright(c)1999-2016,by Zend Technologies

Таким образом, теперь вы можете легко менять свои версии даже легче чем в Open Server

Установка PHP 7.2

Установка базовых пакетов для работы с PHP 7.2:

1 apt-get install php7.2php7.2-common php7.2-cli

Список всех пакетов для работы с PHP 7.2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

php7.2-bcmath-Bcmath module forPHP

php7.2-bz2-bzip2 module forPHP

php7.2-cgi-server-side,HTML-embedded scripting language(CGI binary)

php7.2-cli-command-line interpreter forthe PHP scripting language

php7.2-common-documentation,examples and common module forPHP

php7.2-curl-CURL module forPHP

php7.2-dba-DBA module forPHP

php7.2-dev-Files forPHP7.2module development

php7.2-enchant-Enchant module forPHP

php7.2-fpm-server-side,HTML-embedded scripting language(FPM-CGI binary)

php7.2-gd-GD module forPHP

php7.2-gmp-GMP module forPHP

php7.2-imap-IMAP module forPHP

php7.2-interbase-Interbase module forPHP

php7.2-intl-Internationalisation module forPHP

php7.2-json-JSON module forPHP

php7.2-ldap-LDAP module forPHP

php7.2-mbstring-MBSTRING module forPHP

php7.2-mysql-MySQL module forPHP

php7.2-odbc-ODBC module forPHP

php7.2-opcache-Zend OpCache module forPHP

php7.2-pgsql-PostgreSQL module forPHP

php7.2-phpdbg-server-side,HTML-embedded scripting language(PHPDBG binary)

php7.2-pspell-pspell module forPHP

php7.2-readline-readline module forPHP

php7.2-recode-recode module forPHP

php7.2-snmp-SNMP module forPHP

php7.2-soap-SOAP module forPHP

php7.2-sodium-libsodium module forPHP

php7.2-sqlite3-SQLite3 module forPHP

php7.2-sybase-Sybase module forPHP

php7.2-tidy-tidy module forPHP

php7.2-xml-DOM,SimpleXML,WDDX,XML,and XSL module forPHP

php7.2-xmlrpc-XMLRPC-EPI module forPHP

php7.2-xsl-XSL module forPHP(dummy)

php7.2-zip-Zip module forPHP

Настройка

Как и в пункте с установкой, настройка также будет разбита по пунктам. Давайте приступим.

Настройка Nginx для NextCloud

Приступим к настройке web-сервера nginx. Создадим файл конфигурации для NextCloud, работать наш сервер будет на порту 80. И так начнем:

Заполняем в соответствии с моим листингом:

Адрес https://mynextcloud.ru измените на свой.

Настроим PHP для работы с NextCloud. В терминале набираем:

Находим и редактируем следующие строки:

Настройка PostgreSQL

Сперва настроим наш PostgreSQL для прослушивания всех внутренних адресов сервера. Для этого открываем следующий файл:

Находим и редактируем данную строчку к такому виду:

Теперь можно создать нашу БД для NextCloud, а также создадим пользователя БД и пароль для него. Подключаемся к postgresql:

Создаем базу данных и пользователя для nextcloud

Далее переходим по адресу нашего сервера (локальному или внешнему например: ) и видим первоначальную установку NextCloud

Из скриншота видим, что на самом верху нам предлагается придумать учетную запись и пароль администратора nextcloud.

Далее идет поле для выбора каталога с данными. Данное поле отвечает за размещение всех данных пользователей в директории на сервере. Я оставляю без изменений.

Последняя группа полей ответственна за подключение к базе данных. Чуть выше мы создавали и настраивали БД PostgreSQL, вот эти данные и вводим сюда. И нажимаем кнопку продолжить.

Если все сделали правильно, то после обновления окна нам будет предложено войти в свою учетную запись.

На этом наша настройка домашнего облака NextCloud завершается. Всем удачи!!!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как-то так.

Apache

Для поддержки файла .htaccess, который используется многими сайтами, необходимо установить и настроить веб-сервер Apache.

Устанавливаем apache и модуль для php:

apt-get install apache2 libapache2-mod-php

Заходим в настройки портов:

vi /etc/apache2/ports.conf

И редактируем следующее:

Listen 8080
#<IfModule ssl_module>
#       Listen 443
#</IfModule>
#<IfModule mod_gnutls.c>
#       Listen 443
#</IfModule>

* мы настроили прослушивание на порту 8080, так как на 80 уже работает NGINX. Также мы закомментировали прослушивание по 443, так как и он будет слушаться NGINX.

Теперь открываем настройку следующего модуля:

vi /etc/apache2/mods-available/dir.conf

И добавляем впереди индексных файлов index.php:

<IfModule dir_module>
    DirectoryIndex index.php index.html …
</IfModule>

* если не указан конкретный скрипт, сначала веб-сервер пытается найти и запустить index.php, затем index.html и так далее.

Открываем основной конфигурационный файл для apache:

vi /etc/apache2/apache2.conf

Рядом с опциями Directory дописываем:

<Directory /var/www/*/www>
    AllowOverride All
    Options Indexes ExecCGI FollowSymLinks
    Require all granted
</Directory>

* где Directory указывает на путь, для которого мы хотим задать настройки; AllowOverride — позволит переопределить все настройки с помощью файла .htaccess; Options задает некоторые настройки: Indexes разрешает списки каталогов, ExecCGI разрешает запуск cgi скриптов, Require all granted — предоставляет всем доступ к сайтам в данном каталоге.

Ниже допишем:

<IfModule setenvif_module>
    SetEnvIf X-Forwarded-Proto https HTTPS=on
</IfModule>

* этой настройкой мы при получении заголовка X-Forwarded-Proto со значением https задаем переменную $_SERVER равную on. Данная настройки критична для функционирования некоторых CMS.

Запрещаем mpm_event:

a2dismod mpm_event

* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.

Разрешаем модуль мультипроцессовой обработки mpm_prefork:

a2enmod mpm_prefork

Разрешаем модуль php:

a2enmod php7.4

* в данном примере установлен php версии 7.4.

Разрешаем модуль setenvif:

a2enmod setenvif

Разрешаем модуль rewrite:

a2enmod rewrite

В процессе включения модулей, если мы видим «Module … already enabled», значит модуль уже включен.

Разрешаем автозапуск Apache и перезапускаем службу:

systemctl enable apache2

systemctl restart apache2

Открываем браузер и вводим в адресную строку http://<IP-адрес сервера>:8080. Мы должны увидеть привычную страницу:

* в разделе Server API мы должны увидеть Apache.

NGINX + Apache

Ранее мы настроили связку nginx + php-fpm. Теперь настроим nginx + apache. Открываем конфигурационный файл nginx для сайта по умолчанию:

vi /etc/nginx/sites-enabled/default

Находим наш настроенный location для php-fpm:


        location ~ \.php$ {
            set $root_path /var/www/html;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }

и меняем на:


        location ~ \.php$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }

Проверяем и перезапускаем nginx:

nginx -t

systemctl restart nginx

Пробуем открыть в браузере http://<IP-адрес сервера> — должна открыться та же страница, что при проверке Apache (с добавлением 8080):

Apache Real IP

Запросы на apache приходят от NGINX, и они воспринимаются первым как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей. Для решения проблемы будем использовать модуль remoteip.

Создаем конфигурационный файл со следующим содержимым:

vi /etc/apache2/mods-available/remoteip.conf

<IfModule remoteip_module>
  RemoteIPHeader X-Forwarded-For
  RemoteIPTrustedProxy 127.0.0.1/8
</IfModule>

Активируем модуль:

a2enmod remoteip

Перезапускаем apache:

systemctl restart apache2

Для проверки настройки открываем браузер и вводим в адресную строку http://<IP-адрес сервера>, где откроется наша страница phpinfo. В разделе Apache Environment мы должны увидеть внешний адрес компьютера, с которого обращаемся к серверу в опции REMOTE_ADDR.

Установка 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 скрипт:

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

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

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

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

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

Вот и все!

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: