How To Install PHP 7, 7.2 & 7.3 On CentOS 7

How To Install PHP 7, 7.2 & 7.3 On CentOS 7 Хостинг
Содержание
  1. Introduction
  2. Общая настройка системы
  3. Время
  4. Настройка безопасности
  5. Установите PHP 7. 4 на CentOS 7
  6. Шаг 2. Добавьте репозиторий EPEL и REMI.
  7. Шаг 3. Установка PHP 7. 4 на CentOS 7.
  8. Шаг 4. Протестируйте установку PHP.
  9. Установка PHP 8 на CentOS 7
  10. Шаг 2. Установка PHP 8 на CentOS 7.
  11. Шаг 3. Установка расширений PHP 8.
  12. Шаг 4. Протестируйте PHP.
  13. Choose PHP Version to Install
  14. Enable Additional Software Repositories
  15. Enable Repository For PHP Version
  16. Install PHP and its Dependencies
  17. PHP Modules
  18. Додать EPEL и REMI репозиторий
  19. Установка MariaDB
  20. Как установить Apache на CentOS 7
  21. Установка и настройка FTP-сервера
  22. Установка phpMyAdmin
  23. Step 1 — Install Apache
  24. Создание первого сайта
  25. Step 2 — Install MySQL (MariaDB)
  26. Настройка apache
  27. Подключение новой версии PHP к httpd
  28. Настройка виртуальных доменов
  29. Создание тестового сайта и проверка настроек
  30. Установка MariaDB или MySQL
  31. PHP + MariaDB (MySQL)
  32. Verify PHP Version
  33. Postfix
  34. Установка PHP и PHP-FPM
  35. Настройка связки NGINX + PHP
  36. Установка Memcached
  37. Сервис memcached
  38. Модуль для php
  39. Step 3 — Install PHP
  40. Install PHP Modules
  41. Apache (httpd)
  42. NGINX + Apache
  43. Apache Real IP
  44. Установка xCache
  45. Prerequisites
  46. Установка еще одной версии PHP
  47. Ошибки установки и их устранение
  48. Ошибки зависимостей
  49. Индивидуальные ошибки
  50. Тюнинг веб-сервера
  51. Step 4 — Test PHP Processing on your Web Server
  52. Установка NGINX
  53. Conclusion

Introduction

A «LAMP» stack is a group of open source software that is typically installed together to enable a server to host dynamic websites and web apps. This term is actually an acronym which represents the Linux operating system, with the Apache web server. The site data is stored in a MySQL database (using MariaDB), and dynamic content is processed by PHP.

First of all we need to know that LAMP means:

  • Linux: the exploitation system
  • Apache: the web server
  • MariaDB: the server’s database (Fork of MySQL)
  • PHP: the script language

Using a LAMP we can set up a web server, hosting a dynamic site written in PHP, searching the data in a MariaDB database.

Тематические термины: PHP, Apache, CentOS, веб-сервер.

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

В данной инструкции рассмотрена настройка на примере веб-сервера Apache, работающего на операционной системе Linux CentOS 7. Подразумевается, что сам веб сервер настроен, например, по статье Как настроить полноценный веб-сервер на CentOS. После конфигурирования у нас будет две версии php на одном сервере Apache.

Добавление новой версии PHP
Настройка веб-сервера
    Подключение php
    Настройка виртуальных доменов
    Тестирование
php_value в .htaccess

В этой статье мы расскажем, как происходит настройка и установка Apache на CentOS 7, как установить PHP и базы данных MariaDB на Apache.

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

Apache ― это программное обеспечение с открытым исходным кодом для создания веб-сервера, разработанное для UNIX (например, Linux) и Windows.

Облачные серверы нового поколения

Виртуализация KVM, почасовая оплата, резервные копии, готовые шаблоны, 10 доступных ОС на выбор!

Общая настройка системы

1. Обновляем CentOS:

2. Устанавливаем репозиторий EPEL и пакет для загрузки:

yum install epel-release wget

Время

1. Устанавливаем часовой пояс:

timedatectl set-timezone Europe/Moscow

* данной командой мы установим часовой пояс по московскому времени.

2. Устанавливаем и запускаем службу для автоматической синхронизации времени:

yum install chrony

systemctl enable chronyd —now

Настройка безопасности

1. Отключаем SELinux:

sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config

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

2. Открываем необходимые порты в брандмауэре:

* 80, 443 и 8080 порты для веб-сервера; 20, 21 порты нужны для работы FTP; 60000-65535 также необходимы для работы FTP (динамические порты для пассивного режима); последняя команда перезапускает firewalld, чтобы применить новые правила. Подробнее про настройку firewalld.

Недорогой хостинг для сайтов

В этом руководстве мы покажем вам, как установить и настроить PHP 7.4 на CentOS 7. Для тех из вас, кто не знал, PHP (PHP: препроцессор гипертекста) — это язык сценариев на стороне сервера, предназначенный для веб-разработки, но также используется как язык программирования общего назначения. Код PHP интерпретируется веб-сервером с модулем процессора PHP, который генерирует результирующую веб-страницу: команды PHP могут быть встроены непосредственно в исходный документ HTML, а не вызывать внешний файл для обработки данных.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста. Я покажу вам пошаговую установку PHP 7.4 на сервере CentOS 7 Linux.

Установите PHP 7. 4 на CentOS 7

sudo yum -y update
sudo yum -y install yum-utils

Шаг 2. Добавьте репозиторий EPEL и REMI.

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

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Шаг 3. Установка PHP 7. 4 на CentOS 7.

Выполните следующую команду, чтобы включить репозиторий PHP 7.4 Remi:

sudo yum-config-manager —enable remi-php74

Затем установите PHP 7.4 на CentOS 7, используя следующую команду:

sudo yum update
sudo yum install php php-cli

Вам также может потребоваться установить дополнительные модули PHP в зависимости от требований вашего приложения. Используйте следующую команду для установки дополнительных пакетов:

sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

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

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

Шаг 4. Протестируйте установку PHP.

Для проверки функциональности PHP создайте файл следующего содержания:

Затем откройте в веб-браузере:

Поздравляю! Вы успешно установили PHP 7 . Благодарим за использование этого руководства для установки PHP 7.4 в вашей системе CentOS 7. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт PHP .

В этом руководстве мы покажем вам, как установить PHP 8 на CentOS 7. Для тех из вас, кто не знал, PHP является наиболее часто используемым языком сценариев для веб-разработки, как для веб-сайтов, так и для веб-приложений, таких как блоги, форумы и т. Д. -коммерция и др. Первоначально он был создан Расмусом Лердорфом в 1994 году.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ ‘ к командам для получения привилегий root. Я покажу вам пошаговую установку PHP 8 на CentOS 7.

Установка PHP 8 на CentOS 7

sudo clean all
sudo yum update
sudo yum install yum-utils

Шаг 2. Установка PHP 8 на CentOS 7.

Теперь мы добавляем репозиторий EPEL и REMI для установки PHP 8 в системе CentOS 7 Linux:

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

После этого включите поток модуля для PHP 8:

sudo yum-config-manager —disable ‘remi-php*’
sudo yum-config-manager —enable remi-php80
sudo yum update

Наконец, выполните следующую команду, чтобы установить PHP 8:

После успешной установки вы можете убедиться, что в вашей системе установлена ​​последняя стабильная версия PHP 8, используя команду:

$ php -v

Шаг 3. Установка расширений PHP 8.

Установить расширения PHP просто со следующим синтаксисом:

sudo yum install php-(extension_name)

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

Шаг 4. Протестируйте PHP.

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

Вставьте следующий код:

Поздравляю! Вы успешно установили PHP . Благодарим за использование этого руководства для установки PHP 8.0 в вашей системе CentOS 7. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт PHP .

PHP is a programming language often used to automate server tasks. It is part of the LAMP (Linux, Apache, MySQL, PHP) stack, which is a bundle of software used for running internet servers and services. PHP handles dynamic content, database requests, and processing and displaying data.

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

  • Access to a terminal window/command-line
  • The yum package manager, included by default
  • A third-party software repository, detailed below

How to Install PHP 7.2 with Apache on CentOS

Choose PHP Version to Install

The newest stable release version of PHP is PHP 7.3.1. However, some software repositories default to older versions of the software.

One advantage of using an older release is its high stability and reliability. Newer releases may include more features, but are often more experimental and could cause system instability. If you cannot decide which version is right for you, version 7.2 is a great place to start.

Читайте также:  Оптимизация работы в сети с помощью интерфейса маршрутизатора Mikrotik

Enable Additional Software Repositories

By default, the yum package manager does not include access to the repositories that store the PHP packages. Therefore, you need to enable access to these software packages.

sudo yum install yum-utils –y

sudo yum install epel-release –y

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Enable Repository For PHP Version

Next, use the yum-config-manager to point your installer to the repository of the PHP version you want to install:

sudo yum-config-manager ––enable remi–php70

sudo yum-config-manager ––enable remi–php71

Likewise, replace the last two characters with 72 to install PHP 7.2.

Install PHP and its Dependencies

sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql –y

As you see, the line includes many of the modules and add-ons that help PHP integrate with your local server configuration.

The output will also indicate which dependencies have been installed.

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

PHP Modules

You may have noticed that the installation script included more than just the base PHP package. Many of these are modules that provide basic functionality to PHP. Installing this set helps ensure that your PHP installation meets your expectations for usage.

Like many other Linux applications, you can enhance your system’s PHP functionality using modules.

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

Установка PHP 7.4 в CentOS 7 Linux. Эта версия RPM доступна в репозитории remi-php74 для Fedora  ≥ 29 и Enterprise Linux  ≥ 7 (RHEL, CentOS), а также в виде Коллекции программного обеспечения в репозитории remi-safe (или remi для Fedora). Версия PHP 7.4.0 была выпущена в фазе стабилизации для разработчиков и для тестирования пользователями. Это не рекомендуется запускать в Production, пока стабильная версия PHP 7.4 не станет доступной для широкой публики. Ожидаемая официальная дата релиза — 28 ноября 2019 года .

Для RHEL 8 / CentOS 8: Как установить PHP 7.4 на CentOS 8 / RHEL 8

PHP 7.4 поставляется с замечательным количеством новых функций.

Додать EPEL и REMI репозиторий

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

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Теперь мы можем включить репозиторий PHP 7.4 Remi и установить PHP 7.4 в CentOS 7.

sudo yum -y install yum-utils
sudo yum-config-manager —enable remi-php74

Установка PHP 7.4 на CentOS 7.

Примите запрос на установку.

sudo yum install php-xxx

sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

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

$ php —modules

YВы успешно установили PHP 7.4 на CentOS 7. Наслаждайтесь вашими разработками / тестами PHP с этим выпуском и не забудьте оставить отзыв команде разработчиков.

Установка PHP 7.4 в других системах Linux:

Как установить PHP 7.4 на Fedora

Установка PHP 7.4 на Debian 10 / Debian 9

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

Установка MariaDB

MariaDB ― программа для хранения и получения данных с помощью SQL-запросов.

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

Краткое руководство по установке MariaDB:

  • Установите базы данных MariaDB:yum -y install mariadb mariadb-server
  • Запустите сервис MariaDB:sudo systemctl start mariadb
  • Разрешите автозагрузку MariaDB:sudo systemctl enable mariadb.service

Готово, базы данных MariaDB установлены.

Как установить Apache на CentOS 7

Чтобы поставить на VPS Apache:

  • Обновите пакет Apache httpd:
  • Установите пакеты Apache:
  • Разрешите HTTP и HTTPS-трафик на брандмауэре:sudo firewall-cmd —permanent —add-service=http

    sudo firewall-cmd —permanent —add-service=https

  • sudo firewall-cmd —reload
  • sudo systemctl start httpd
  • Разрешите автозагрузку Apache:sudo systemctl enable httpd
  • Проверьте статус службы Apache:sudo systemctl status httpdОн должен быть active: Настройка Apache (CentOS 7)
  • Перейдите в браузере по адресу http://имя_сервера_или_IP/. Если по адресу откроется стартовая страница CentOS Apache, то установка выполнена верно:

Готово, веб-сервер Apache установлен.

Установка и настройка FTP-сервера

В качестве FTP-сервера будем использовать ProFTPd, так как он позволяет авторизовываться под uid системных учетных записей. Для его установки вводим следующую команду:

Создаем каталог для хранения настроек:

Создаем виртуального пользователя:

ftpasswd —passwd —file=/etc/proftpd.d/ftpd.passwd —name=ftpwww —uid=48 —gid=48 —home=/var/www —shell=/sbin/nologin

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

И редактируем следующее (комментируем):

В конце файла добавим следующее:

UseIPv6 off
IdentLookups off
PassivePorts 60000 65535

* где 60000 — 65535 — диапазон динамических портов для пассивного режима.

Разрешаем автозапуск FTP-серверу и запускаем его:

systemctl enable proftpd —now

Пробуем подключиться к серверу, использую любые FTP-клиенты, например, FileZilla, Total Commander или тот же браузер.

Установка phpMyAdmin

Однако, если мы устанавливали php версии 7 и выше, необходимо указать репозиторий, который мы использовали для этого, например:

* в данном примере предполагается, что мы использовали репозиторий remi-php74.

Это необходимо для корректной установки расширений PHP.

Теперь создадим для него отдельный виртуальный домен в NGINX:

И добавим в него следующее содержимое:

systemctl reload nginx

Также нужно перезапустить php-fpm, так как в процессе установки был добавлен модуль mbstring:

systemctl restart php-fpm

Step 1 — Install Apache

The Apache web server is currently the most popular web server in the world, which makes it a great default choice for hosting a website.

For our purposes, we can get started by typing these commands:

yum install httpd

Afterwards, your web server is installed.

Once it installs, you can start Apache on your VPS:

systemctl start httpd.service

You can do a spot check right away to verify that everything went as planned by visiting your server’s public IP address in your web browser (see the note under the next heading to find out what your public IP address is if you do not have this information already):

You will see the default CentOS 7 Apache web page, which is there for informational and testing purposes. It should look something like this:

If you see this page, then your web server is now correctly installed.

systemctl enable httpd.service

How To Find your Server’s Public IP Address
If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.

From the command line, you can find this a few ways. First, you can use the iproute2 tools to get your address by typing this:

This will give you one or two lines back. They are both correct addresses, but your computer may only be able to use one of them, so feel free to try each one.

An alternative method is to use an outside party to tell you how it sees your server. You can do this by asking a specific server what your IP address is:

Regardless of the method you use to get your IP address, you can type it into your web browser’s address bar to get to your server.

Создание первого сайта

Задаем переменную, значение которой будет домен сайта:

* где site1 — имя домена. Нам будет намного удобнее копировать и вставлять команды с переменной (не придется править после копипасты).

Создаем новый файл виртуального домена NGINX:

* обязательно на конце должен быть .conf, так как только такие файлы веб-сервер подгружает в конфигурацию.

И добавляем следующее содержимое.

access_log /var/www/site1/log/nginx/access_log;
    error_log /var/www/site1/log/nginx/error_log;

gzip  on;
    gzip_disable «msie6»;
    gzip_min_length 1000;
    gzip_vary on;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

root   $root_path;

* где site1.local — домен, для которого создается виртуальный домен; /var/www/site1 — каталог, в котором будет размещаться сайт.
** все запросы будут переводиться на локальный сервер, порт 8080, на котором работает apache, кроме обращений к статическим файла (jpg, png, css и так далее).
*** обратите внимание на выделения полужирным — здесь нужно подставить свои данные.

server_name  site1.local www.site1.local;
    set $root_path /var/www/site1/www;

* в первой секции server мы перенаправляем все запросы по незащищенному http на https.
** ssl_certificate и ssl_certificate_key — пути к публичному и приватному ключам соответственно.
*** для получения бесплатного сертификата читайте статью Получение бесплатного SSL сертификата Let’s Encrypt.

Теперь создаем виртуальный домен в Apache:

Создаем каталоги для сайта:

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

Задаем права на папки:

chown -R apache:apache /var/www/$TMP_SITE

chmod -R 775 /var/www/$TMP_SITE

Проверяем корректность настроек конфигурационных файлов:

systemctl reload httpd

Открываем сайт в браузере.

При необходимости, создаем базу данных.

mysql -uroot -p

Step 2 — Install MySQL (MariaDB)

Now that we have our web server up and running, it is time to install MariaDB, a MySQL drop-in replacement. MariaDB is a community-developed fork of the MySQL relational database management system. Basically, it will organize and provide access to databases where our site can store information.

Again, we can use yum to acquire and install our software. This time, we’ll also install some other «helper» packages that will assist us in getting our components to communicate with each other:

yum install mariadb-server mariadb

systemctl start mariadb

Now that our MySQL database is running, we want to run a simple security script that will remove some dangerous defaults and lock down access to our database system a little bit. Start the interactive script by running:

Enter current password for root (enter for none):

Setting the root password ensures that nobody can log into the MariaDB

New password: password

Re-enter new password: password

Password updated successfully!

Reloading privilege tables..

systemctl enable mariadb.service

At this point, your database system is now set up and we can move on.

Настройка apache

Для настройки веб-сервера необходимо подключить к нему нашу новую версию php и настроить виртуальные домены. В нашем примере мы настроим один виртуальный домен для php 5.4.16, второй — 5.2.17.

Подключение новой версии PHP к httpd

Устанавливаем mod_fcgid для httpd:

yum install mod_fcgid

Создаем каталог /usr/lib/cgi-bin:

#!/bin/sh
PHPRC=»/opt/php-5.2.17/»
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /opt/php-5.2.17/bin/php-cgi

* где /opt/php-5.2.17 — путь, по которому была установлена дополнительная версия PHP. Он будет зависеть от версии программного продукта.

Разрешаем запуск его на исполнение:

chmod +x /usr/lib/cgi-bin/php$PHP_VER-cgi

Создаем конфигурационный файл для httpd:

ScriptAlias /php5.2.17-cgi /usr/lib/cgi-bin/php5.2.17-cgi
Action application/x-httpd-php5.2.17 /php5.2.17-cgi
AddHandler application/x-httpd-php5.2.17 .php

Настройка виртуальных доменов

Создаем первый виртуальный домен:

Создаем второй виртуальный домен:

* обратите внимание, что для первого хоста мы используем php, который используется в нашей системе по умолчанию. Для второго домена мы подключаем конфигурационный файл php5-2-17.conf. Также мы будем использовать одну и туже директорию для DocumentRoot — для тестовых задач этого достаточно.

Проверяем конфигурацию Apache:

systemctl restart httpd

Создание тестового сайта и проверка настроек

Создаем каталог для нашего тестового сайта:

Создаем сайт, содержимое которого — один единственный скрипт:

На рабочем компьютере открываем файл hosts:

  • Для Linux: /etc/hosts
  • Для Windows: WindowsSystem32driversetchosts

Укажем, что тестовые домены — это наш веб-сервер:

192.168.0.15    test-php5-4-16.local
192.168.0.15    test-php5-2-17.local

Открываем браузер и заходим на два наших домена:

  • http://test-php5-4-16.local/
  • http://test-php5-2-17.local/

Мы должны увидеть сводку php с разными версиями:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

Установка MariaDB или MySQL

В данной статье мы установим MariaDB, но процедура установки и настройки MySQL аналогичная. Все расхождения будут отмечены явно в инструкции.

Устанавливаем MariaDB следующей командой:

* будет установлена mariadb версии 5.5. Если нужна другая, то читаем подробнее в инструкции Установка MariaDB на CentOS или Ubuntu.
** для установки mysql выполняем команду yum install mysql

Разрешаем автозапуск и запускаем СУБД:

systemctl enable mariadb —now

* для работы с mysql меняем mariadb на mysql.

Сразу создаем пароль для учетной записи root:

PHP + MariaDB (MySQL)

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

Если мы установили php5, также ставим php-mysql:

yum install php-mysql

После перезагружаем php-fpm:

И открываем наш сайт в браузере. В phpinfo появится новая секция MySQL:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

* нас не должно смущать, что установили мы mariadb, а заголовок mysql. Если посмотреть в таблицу, можно увидеть ячейку Client API version, в которой указано, что используется именно mariadb.

Verify PHP Version

Finally, verify your installation was successful. Check which version of PHP you are running with the command:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

Postfix

В CentOS postfix уже установлен и запущен. Нам необходимо сделать несколько простых настроек:

myorigin = $mydomain
smtp_generic_maps = hash:/etc/postfix/generic_map

* где myhostname — имя узла для почтового сервера (его он будет использовать в представлениях другим почтовым серверам); mydomain — домен сервера; myorigin — имя домена, которое будет подставляться всем отправляемым сообщениям без явного указания оного; smtp_generic_maps указывает на карту с общими правилами пересылки.

Открываем карту пересылки:

Для применения настроек перезагружаем почтовый сервер:

systemctl restart postfix

Установка PHP и PHP-FPM

Устанавливаем PHP и php-fpm следующей командой:

yum install php php-fpm

* В CentOS 7 будет установлена php версии 5.4. Если необходимо установить PHP 7, читайте статью Как установить PHP 7 на CentOS 7.

Запускаем php-fpm и разрешаем его автозапуск:

systemctl enable php-fpm —now

Настройка связки NGINX + PHP

Открываем файл для настройки виртуального домена по умолчанию. В зависимости от версии CentOS 7 пути могут различаться:

а) вариант 1:

б) вариант 2:

в) вариант 3:

В секции location редактируем параметр index на следующее значение:

* добавляем index.php в начало списка. Если параметра index нет, создаем его.

А внутри секции server добавим следующее:

Открываем настройки php-fpm:

Проверяем, настройки параметров:

* listen должен иметь значение /run/php-fpm/www.sock (путь до сокетного файла, который мы указали в конфигурационном файле nginx); listen.group указывает, какую группу назначить сокетному файлу.

* в данном примере мы указываем, что php-fpm будет использовать сокетный файл /run/php-fpm/www.sock для взаимодействия. Этот файл мы указали выше в настройке NGINX.

Проверяем правильность настроек nginx:

И перезагружаем его:

systemctl restart nginx

Создаем index.php в каталоге сайта по умолчанию со следующим содержимым:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

Установка Memcached

Первым этапом мы установим и настроим сервис memcached. Вторым — модуль php-memcached.

Сервис memcached

После разрешаем автозапуск и запускаем сервис кэширования:

systemctl enable memcached —now

Модуль для php

Установить компонент из репозитория:

После устаноки модуля перезапускаем php-fpm:

Чтобы проверить, что модуль memcached работаем, открываем наш сайт в браузере — в phpinfo должна появиться новая секция:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

Мы должны получить:

После запуска двух версий php, мы вскоре можем заметить, что вторая (та, что не по умолчанию) не воспринимает настройки php_value из файла .htaccess. Эта проблема связана с тем, что вторичные php мы запустили через php-cgi. Для того, чтобы нужные параметры могли задаваться с помощью htaccess, необходимо установить расширение htscanner.

Установим пакет, необходимый для компиляции расширений php:

yum install autoconf

Заходим на страницу проекта и копируем ссылку на последнюю стабильную версию:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

С помощью ссылки загружаем на сервер исходник:

tar -xvzf htscanner-*.tgz

* обратите внимание, что мы запускаем phpize из каталога той версии php, которую ставили дополнительно.

./configure —enable-htscanner —with-php-config=/opt/php-5.2.17/bin/php-config

Собираем его и устанавливаем:

Установка должна выполниться быстро, а после мы должны увидеть что-то на подобие:

* в данном примере нужный нам модуль был скопирован в каталог /opt/php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/

Отредактируем или создадим файл php.ini для новой версии PHP:

* где /opt/php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/ — путь, который мы получили после установки htscanner.

Готово — в phpinfo должен появиться модуль htscanner и php_value с php_flag должны передаваться с помощью htaccess.

Step 3 — Install PHP

PHP is the component of our setup that will process code to display dynamic content. It can run scripts, connect to our MySQL databases to get information, and hand the processed content over to our web server to display.

We can once again leverage the yum system to install our components. We’re going to include the php-mysql package as well:

yum install php php-mysql

This should install PHP without any problems. We need to restart the Apache web server in order for it to work with PHP. You can do this by typing this:

systemctl restart httpd.service

Install PHP Modules

To enhance the functionality of PHP, we can optionally install some additional modules.

To see the available options for PHP modules and libraries, you can type this into your system:

yum search php-*

The results are all optional components that you can install. It will give you a short description for each:

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library

php-cli.x86_64 : Command-line interface for PHP

php-common.x86_64 : Common files for PHP

php-dba.x86_64 : A database abstraction layer module for PHP applications

php-devel.x86_64 : Files needed for building PHP extensions

php-embedded.x86_64 : PHP library for embedding in applications

php-enchant.x86_64 : Enchant spelling extension for PHP applications

php-fpm.x86_64 : PHP FastCGI Process Manager

php-gd.x86_64 : A module for PHP applications for using the gd graphics library

To get more information about what each module does, you can either search the internet, or you can look at the long description in the package by typing:

yum info package_name

There will be a lot of output, with one field called Description which will have a longer explanation of the functionality that the module provides.

For example, to find out what the php-fpm module does, we could type this:

yum info php-fpm

Along with a large amount of other information, you’ll find something that looks like this:

Summary : PHP FastCGI Process Manager

URL : http://www.php.net/

License : PHP and Zend and BSD

Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI

: implementation with some additional features useful for sites of

: any size, especially busier sites.

If, after researching, you decide you would like to install a package, you can do so by using the yum install command like we have been doing for our other software.

If we decided that php-fpm is something that we need, we could type:

yum install php-fpm

At this point, your LAMP stack is installed and configured. We should still test out our PHP though.

Apache (httpd)

Несмотря на то, что мы установили и настроили PHP-FPM, Apache нам понадобится, как минимум, по двум причинам. Во-первых, многие сайты используют файл .htaccess, который читает только Apache. Во-вторых, последний включает большое число модулей, которые может использовать портал.

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

И так, устанавливаем httpd:

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

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

* наш веб-сервер будет слушать на порту 8080, так как на 80 уже работает NGINX.

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

Проверяем синтаксис конфигурационного файла httpd:

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

systemctl enable httpd —now

Создаем php-файл со следующим содержимым:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

NGINX + Apache

Ранее нами была настроена связка nginx + php-fpm. Теперь проверяем совместную работу первого с apache.

Открываем конфигурационный файл nginx:

* если при настройке nginx мы редактировали файл /etc/nginx/nginx.conf, то необходимо открыть его.

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

и меняем на:

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

Apache Real IP

Для решения проблемы будем использовать модуль mod_rpaf. Устанавливаем набор разработчика для apache:

yum install httpd-devel gcc unzip

Переходим в каталог /usr/local/src:

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

Собираем модуль и устанавливаем его:

* при возникновении ошибки ./apxs.sh: line 15: -c: command not found, необходимо поставить which командой yum install which.

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

LoadModule              rpaf_module modules/mod_rpaf.so
RPAF_Enable             On
RPAF_ProxyIPs           127.0.0.1
RPAF_SetHostName        On
RPAF_SetHTTPS           On
RPAF_SetPort            On
RPAF_ForbidIfNotProxy   Off

Для проверки настройки открываем на редактирование созданный index-файл для httpd:

И редактируем содержимое на:

Установка xCache

xCache не поддерживается в php7. Если мы установили именно эту версию, пропускаем установку данного пакета.

Запускаем установку xCache следующей командой:

yum install php-xcache

В phpinfo должно появиться следующее:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

Prerequisites

You can enable Remi’s PHP 7.3 repository the same way you enabled other repositories in Step 3. However, this installation may fail if you have extensions that are not compatible with PHP 7.3.

sudo yum-config-manager ––enable remi–php73

Установка еще одной версии PHP

Предположим, на нашем сервере уже установлен PHP версии 5.4.16. Добавим PHP 5.2.17 (также протестировано с версией 7.4.30).

Устанавливаем пакеты, которые нам понадобятся для сборки интерпретатора:

yum install wget libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel bzip2-devel freetype-devel aspell-devel uw-imap-devel libmcrypt-devel libmhash-devel mysql-devel postgresql-devel gcc

* данный набор пакетов не является полным. Например, для PHP версии 7 или для установки дополнительных модулей могут потребоваться другие пакеты. Тут уже нужно ориентироваться по ситуации — получив ошибку при конфигурировании, найти описании проблемы и выполнить соответствующую установку.

Создаем каталог для исходников:

Заходим на страницу загрузки PHP. В зависимости от версии, это будут разные ссылки. Для устаревших версий:

Для актуальных версий — php.net/downloads.

Так как в нашем примере мы устанавливаем PHP 5, переходим по соответствующей ссылке и копируем путь для загрузки исходника:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

* если CentOS вернет ошибку, необходимо установить wget командой yum install wget.

Для удобства, сохраняем устанавливаемую версию PHP в переменную:

Создаем каталог для установки PHP:

Распаковываем скачанный исходник:

tar zxvf php-*.tar.gz

После переходим в каталог с распакованными файлами:

./configure —prefix=/opt/php-$PHP_VER —with-config-file-path=/opt/php-$PHP_VER —with-pdo-pgsql —with-zlib-dir —with-freetype-dir —enable-mbstring —with-libxml-dir=/usr —enable-soap —enable-calendar —with-curl=/usr/bin —with-mcrypt —with-zlib —with-gd —with-pgsql —disable-rpath —enable-inline-optimization —with-bz2 —with-zlib —enable-sockets —enable-sysvsem —enable-sysvshm —enable-pcntl —enable-mbregex —with-mhash —enable-zip —with-pcre-regex —with-mysql —with-pdo-mysql —with-mysqli —with-jpeg-dir=/usr/lib64 —with-libdir=lib64 —with-png-dir=/usr —enable-gd-native-ttf —with-openssl —enable-ftp —with-imap —with-imap-ssl —with-kerberos —with-gettext —enable-cli —enable-fastcgi —enable-discard-path —enable-force-cgi-redirect —enable-cgi —enable-bcmath

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

Также мы, скорее всего, столкнемся с предупреждением configure: WARNING: unrecognized options. Это значит, что некоторые опции не отработали. Такое случается, так как от версии к версии некоторые из них больше не работают или имеют немного другое написание, например не —with-gd, а —enable-gd. Изучите предупреждение и исправьте недочеты.

Собираем пакет и устанавливаем его:

Ошибки установки и их устранение

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

Ошибки зависимостей

Проще всего решить те, которые связаны с зависимостями — для этого нужно просто установить недостающий компонент. Такие проблемы возникают на стадии конфигурирования (./configure). Например, для PHP версии 7 в нашем примере может появиться ошибка:

No package ‘oniguruma’ found

Она говорит о том, что для сборки в системе нет dev-пакета с библиотеками регулярных выражений Oniguruma. Для решения ставим пакет:

yum install oniguruma-devel

Индивидуальные ошибки

yum install patch

patch -p0 < php-5.2.17.patch

После команда make отработала.

Таким образом, обработка ошибок носит индивидуальный характер. Как правило искать решение необходимо в Интернете.

Тюнинг веб-сервера

Открываем на редактирование следующий файл:

И правим следующее:

upload_max_filesize = 256M
post_max_size = 256M
short_open_tag = On
date.timezone = «Europe/Moscow»

Перезапускаем php-fpm и httpd:

И внутри секции http добавляем:

После перезапускаем nginx:

Подробнее про тюнинг NGINX в статье Практические советы по тюнингу веб-сервера NGINX.

Чтобы отправляемая почта меньше попадала в СПАМ, необходимо выполнить следующие шаги:

Step 4 — Test PHP Processing on your Web Server

In order to test that our system is configured properly for PHP, we can create a very basic PHP script.

We will call this script info.php. In order for Apache to find the file and serve it correctly, it must be saved to a very specific directory, which is called the «web root».

In CentOS 7, this directory is located at /var/www/html/. We can create the file at that location by typing:

When you are finished, save and close the file.

firewall-cmd —permanent —zone=public —add-service=http
firewall-cmd —permanent —zone=public —add-service=https
firewall-cmd —reload

Now we can test whether our web server can correctly display content generated by a PHP script. To try this out, we just have to visit this page in our web browser. You’ll need your server’s public IP address again.

The address you want to visit will be:

The page that you come to should look something like this:

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

This page basically gives you information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If this was successful, then your PHP is working as expected.

You can always recreate this page if you need to access the information again later.

Установка NGINX

yum install nginx

Внесем небольшую корректировку в файл nginx.conf:

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

Разрешаем автозапуск сервиса и запустим его:

systemctl enable nginx —now

How To Install PHP 7, 7.2 & 7.3 On CentOS 7

* обратите внимание, что данное приветствие может иметь и другой вид.

Для настройки http/2 читайте соответствующую статью.

PHP ― язык программирования, который позволяет генерировать HTML-страницы на веб-сервере и работать с базами данных. Он облегчает взаимодействие с Apache.

Как установить PHP на Apache пошагово:

  • Установите пакеты PHP и другие модули, требуемые для работы:yum install php php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
  • sudo systemctl restart httpd

Готово, PHP установлен.

Для нативной версии PHP установка расширений может быть выполнена с помощью пакетного менеджера yum. Но для добавленной версии это не поможет — нам нужно пересобрать интерпретатор с нужными опциями. Это не так сложно. Например, добавим к нашей дополнительной версии PHP расширение iconv.

Еще раз создаем переменную с нужной версией PHP (для удобства дальнейшей работы):

* в нашем примере это версия 5.2.17.

Переходим в каталог и исходником. В нашем примере это:

* если исходника нет, просто скачиваем его еще раз, как делали во время установки.

Смотрим, с какими опциями была сконфигурирована наша дополнительная версия PHP:

Выполняем конфигурирование с этими же опциями и добавляем расширение:

* напомним, что от версии к версии PHP набор опций и способ включения расширения могут отличаться. Внимательно смотрим статус конфигурирования по его окончании.

Выполняем сборку и устанавливаем наш интерпретатор:

Проверяем, что наше расширение подключено. Это можно сделать с помощью вывода phpinfo из командной строки:

Conclusion

Now that you have a LAMP stack installed, you have many choices for what to do next. Basically, you’ve installed a platform that will allow you to install most kinds of websites and web software on your server.

Читайте также:  Изучите официальный сайт Beget Hostings для поиска надежного веб-хостинга
Оцените статью
Хостинги