Установка apache в centos 8

Шаг 1 — Установка Apache

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

С помощью пользователя sudo без прав root, настроенного согласно предварительным требованиям, обновите локальный индекс пакета Apache , чтобы отразить последние изменения:

После обновления пакетов установите пакет Apache:

После подтверждения установки выполнит установку Apache и всех требуемых зависимостей.

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

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

Затем перезагрузите брандмауэр, чтобы новые правила начали действовать:

После перезагрузки брандмауэра вы будете готовы запустить службу и проверить веб-сервер.

Обновление опубликованной через web базы 1с

Подключившись к опубликованной базе через web, нет возможности обновить ее. Если у вас база на сервере 1С, то это не проблема. Просто подключаетесь толстым клиентом и делаете все, что нужно. Если у вас файловая база, настроенная по предложенному в статье способу, вам нужно будет каким-то образом подключаться к ней через толстого клиента. Проще всего это сделать напрямую, через Samba.

Подойдет любой способ ее настройки. У меня есть статья — быстрая и простая настройка samba. Можете взять подходящий вам способ аутентификации и все сделать. Далее подключаетесь к файловой базе как обычно по сети толстым клиентом и обновляете ее.

Доступ в web интерфейс Freepbx

Переходим в браузере по ip адресу или доменному имени сервера и создаем учетную запись администратора Freepbx. При первом заходе в 14-ю версию я увидел ошибку.

Текст ошибки.

Whoops \ Exception \ ErrorException (E_DEPRECATED)
Methods with the same name as their class will not be constructors in a future version of PHP; gui_hidden has a deprecated constructor in /var/www/html/admin/libraries/components.class.php on line 571

Насколько я понял, это сообщение о том, что используется какая-то конструкция, которая объявлена Deprecated и скоро не будет работать. Что с этим делать сейчас, я не понял. Нашел баг репорт с этой ошибкой — https://issues.freepbx.org/browse/FREEPBX-19941 Он почему-то отклонен, помещен как дублирующий, но найти эту же ошибку в трекере я не смог.

Если взять версию php 5.6, то там этой ошибки не будет. Freepbx 14 официально поддерживает только 5.6, но откатываться на нее совсем не хочется.

Я решил просто отключить обработчик ошибок bootstrap. Для этого открываем конфиг freepbx и добавляем туда новое значение.

# mcedit /etc/freepbx.conf
$bootstrap_settings = false;

Заходим в web интерфейс freepbx еще раз и создаем администратора.

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

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

Step 4 — Testing PHP with Apache

The default Apache installation on CentOS 8 will create a document root located at . You don’t need to make any changes to Apache’s default settings in order for PHP to work correctly within your web server.

The only adjustment we’ll make is to change the default permission settings on your Apache document root folder. This way, you’ll be able to create and modify files in that directory with your regular system user, without the need to prefix each command with .

The following command will change the ownership of the default Apache document root to a user and group called sammy, so be sure to replace the highlighted username and group in this command to reflect your system’s username and group.

We’ll now create a test PHP page to make sure the web server works as expected.

The default text editor that comes with CentOS 8 is . is an extremely powerful text editor, but it can be somewhat obtuse for users who lack experience with it. You might want to install a more user-friendly editor such as to facilitate editing files on your CentOS 8 server:

Type when prompted to confirm the installation.

Now, create a new PHP file called at the directory:

The following PHP code will display information about the current PHP environment running on the server:

/var/www/html/info.php

When you are finished, save and close the file. If you are using , you can do that by typing , then and to confirm.

Now we can test whether our web server can correctly display content generated by a PHP script. Go to your browser and access your server hostname or IP address, followed by :

You’ll see a page similar to this:

After checking the relevant information about your PHP server through that page, it’s best to remove the file you created as it contains sensitive information about your PHP environment and your CentOS server. You can use to remove that file:

You can always regenerate this file if you need it later. Next, we’ll test the database connection from the PHP side.

Создание виртуального хоста с поддержкой ssl

Далее необходимо либо создать новый виртуальный хост apache, либо отредактировать существующий в файле /etc/httpd/conf/httpd.conf. Добавляем в конец файла:

<VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile /root/cert/zeroxzed.ru.crt
 SSLCertificateKeyFile /root/cert/zeroxzed.ru.kye
 <Directory /var/www/vhosts/zeroxzed.ru/www>
 AllowOverride All
 </Directory>
 DocumentRoot /var/www/vhosts/zeroxzed.ru/www
 ServerName zeroxzed.ru
 </VirtualHost>

После сохранения проверяем конфигурацию apache:

# httpd -t

Если появляется предупреждение:

 _default_ VirtualHost overlap on port 443, the first has precedence

То ищем в /etc/httpd/conf/httpd.conf строчку NameVirtualHost *:80 и добавляем после нее NameVirtualHost *:443

Снова проверяем. Если ошибок нет, перезапускаем апач и заходим на сайт, прописав в адресной строке https, вместо http. Теперь ваш сайт доступен по протоколу https. Но пользователи сайта могут об этом не знать. Было бы разумным сделать переадресацию с открытого протокола на защищенный. Сделаем это.

Почему проект CentOS шлёт мне всякий спам?

Скорее всего это не они. CentOS — это Операционная система, как например Microsoft Windows 7 или Mac OSX. Операционные системы установлены на компьютеры, а люди используют эти компьютеры по своему усмотрению. Что-то, что они делают — хорошо, что-то — плохо. У проекта CentOS нет возможности контроллировать, что люди делают при помощи компьютеров с установленной на них CentOS операционной системой, как и у Microsoft нет возможности контроллировать, кто шлёт почту с компьютера, если на нём стоит Windows 7.

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

CentOS - это операционная система, использующаяся для запуска этого сайта; однако сам веб-сервер пренадлежит владельцу домена, а не проекту CentOS. 
Если у вас наблюдаются проблемы при использовании этого сайта, вам следует связаться с владельцем домена, а не с проектом CentOS.
Проект CentOS не обязательно имеет что-то общее с содержимым этого веб-сервера или с содержимым писем, направляющих вас на этот сайт, если только
этот сервер не пренадлежит домену CentOS.org.

К примеру, если вы имеет дело с вебсайтом www.example.сom, то владельца этого сайта можно найти при помощи поиска WHOIS server.

После того, как вы получили IP-адрес, вы можете воспользоваться American Registry for Internet Numbers, чтобы найти владельца сервера. Если IP-адрес не пренадлежит США, то ARIN перенаправит вас на подходящий Regional Internet Registry реестр.

Одним словом, владелец сервера, а не люди, которые написали операционную систему, в ответе за приходящие письма.

Установка веб-сервера

Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.

СУБД

В данному инструкции мы будем использовать сервер баз данных mariadb.

Для установки вводим:

dnf install mariadb-server

Разрешаем автозапуск сервера баз данных и запускаем mariadb:

systemctl enable mariadb —now

Задаем пароль для суперпользователя СУБД:

mysqladmin -u root password

* после ввода команды система потребует ввести пароль два раза.

Веб-сервер

Для наших целей будем использовать веб-сервер NGINX. Для его установки вводим команду:

dnf install nginx

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

systemctl enable nginx —now

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипы, написанные на нем. На момент написания инструкции веб-интерфейс Zabbix Server работал под php версии 5.4. Если установить на CentOS PHP 7, при установке zabbix-web возникнут проблемы.

Устанавливаем php и необходимые компоненты:

dnf install php php-fpm php-mysqli

Для настройки php, открываем файл:

vi /etc/php.ini

Редактируем следующие параметры:

date.timezone = «Europe/Moscow»
max_execution_time = 300
post_max_size = 16M
max_input_time = 300

* где:

  • date.timezone — задаем временную зону для PHP.
  • max_execution_time — максимальное время работы скрипта. В данном примере, если он не успеет отработать за 300 секунд, PHP принудительно завершит его работу.
  • post_max_size — максимальный размер загружаемых данных на сервер средствами PHP.
  • max_input_time — время в секундах, за которое PHP должен разобрать входные данные GET и POST.

Запустим php-fpm:

systemctl enable php-fpm —now

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:

vi /etc/nginx/nginx.conf

В разделах http — server добавляем настройку для обработки запросов php (location ~ \.php$):

http {
    …
    server {
        listen       80 default_server;
        …
        location ~ \.php$ {
            set $root_path /usr/share/nginx/html;
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }
    }
    …
}

* где /usr/share/nginx/html — корневой путь хранения скриптов.

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

nginx -t

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

systemctl restart nginx

В домашнем каталоге NGINX создаем index.php со следующим содержимым:

vi /usr/share/nginx/html/index.php

<?php phpinfo(); ?>

Веб-сервер готов для работы с Zabbix Web.

Могу ли я добавить поддержку X-ов уже после установки? Я ставил с ISO-образа, предназначенного для сервера и не поставил Х-ы. Как теперь я могу поставить Х?

Самый простой способо установки Х-ов (и GUI вообще) — использование «yum groupinstall». Для начала вы можете вывести все доступные yum-группы при помощи yum grouplist. Можно поставить Gnome или KDE следующим образом:

CentOS-5: yum groupinstall «X Window System» «GNOME Desktop Environment» или yum groupinstall «X Window System» «KDE (K Desktop Environment)»

CentOS-6: yum groupinstall «X Window System» «Desktop» или yum groupinstall «X Window System» «KDE Desktop».

Возможно вы захотите установить какие-либо другие группы из списка, например «Graphical Internet» или «Office/Productivity»

Note: Если, используя CentOS5, вы запускаете yum groupinstall «GNOME Desktop Environment», то может возникнуть ошибка отсутствия libgaim.so.0. Это известный баг, смотрите

Голос в поддержку Red Hat

Несмотря на то, что большинство специалистов не поддерживают решение Red Hat свернуть поддержку CentOS 8 существенно раньше срока, нашлись и те, кто оценил идею компании сконцентрироваться CentOS Stream. В пользу такого решения высказался ни кто иной, как Джим Перрин (Jim Perrin), бывший разработчик Red Hat, вносивший свой вклад в развитие CentOS, и нынешний старший программный инженер Microsoft.

Red Hat нашла поддержку в лице бывших сотрудников

Перрин назвал три преимущества нового подхода, из которых, тем не менее, лишь два имеют отношение к CentOS. По его словам, шаг, на который пошла Red Hat, позволит сделать разработку RHEL более прозрачной. Также он позволяет независимым разработчикам вносить исправления в код CentOS Stream, которые затем могут быть добавлены в итоговую версию RHEL. Третье преимущество, по мнению Перрина – это возможность сообщества высказывать свое мнение по поводу дальнейшего развития ОС, добавления тех или иных функций и т.д.

Как мне обновиться?

В качестве рекомендуемого инструмента для обновлений и установки пакетов CentOS использует «yum». Смотрите PackageManagement, PackageManagement/Yum и this guide for Managing software with Yum.

Так же доступен инструмент up2date, который не связан каким-либо образом с Вендором ПО, а использует CentOS Network (CN) в качестве источника для обновлений. Начиная с CentOS 4 yum будет импортировать ключ репозитория, но только после того, как вы его увидите и подтвердите.

Для разъяеснения вопросов импортирования ключей CentOS RPM есть отдельный .

Замечание при использовании yum: имейте в виду, что начиная с CentOS-4 используется новая версия yum (относительно CentOS-3), где применяется новая система метаданных, в которой hdr-файлы собраны и заархивированы в один отдельный файл (а не во множество мелких).

Прощай, CentOS 8

Компания Red Hat объявила о грядущем полном прекращении поддержки Linux-дистрибутива CentOS 8. Выпущенный в сентябре 2019 г., он изначально должен был получать апдейты до 31 мая 2029 г., но теперь последнее обновление для него выйдет 31 декабря 2021 г.

CentOS – это своего рода модификация дистрибутива Red Hat Enterprise Linux (RHEL), но без корпоративной поддержки. Отказавшись от CentOS 8, Red Hat, которую в 2019 г. с гигантской переплатой в миллиарды долларов купила IBM (общая сумма сделки составила $34 млрд – примерно на 60% дороже рыночной стоимости Red Hat), предложила пользователям перейти на CentOS Stream. Ее главное отличие от обычной CentOS заключается в подходе к процессу выпуска обновлений. Отметим, что CentOS 8 и CentOS Stream были анонсированы одновременно – 24 сентября 2019 г.

Изначально Red Hat не имела к CentOS никакого отношения. Проект существует с 2004 г., а Red Hat «присоединилась» к нему лишь в январе 2014 г., объявив, что будет спонсировать дальнейшее его развитие. В этот же период времени к ней перешли все права на товарные знаки Cent OS.

Step 1 — Installing the Apache Web Server

In order to display web pages to our site visitors, we are going to employ Apache, a popular open source web server that can be configured to serve PHP pages. We’ll use the package manager, which is the new default package manager on CentOS 8, to install this software.

Install the package with:

When prompted, enter to confirm that you want to install Apache.

After the installation is finished, run the following command to enable and start the server:

In case you have enabled the firewall as per our initial server setup guide, you will need to allow connections to Apache. The following command will permanently enable HTTP connections, which run on port by default:

To verify that the change was applied, you can run:

You’ll see output like this:

You’ll need to reload the firewall configuration so the changes take effect:

With the new firewall rule added, you can test if the server is up and running by accessing your server’s public IP address or domain name from your web browser.

Note: In case you are using DigitalOcean as DNS hosting provider, you can check our for detailed instructions on how to set up a new domain name and point it to your server.

If you do not have a domain name pointed at your server and you do not know your server’s public IP address, you can find it by running the following command:

This will print out a few IP addresses. You can try each of them in turn in your web browser.

As an alternative, you can check which IP address is accessible, as viewed from other locations on the internet:

Type the address that you receive in your web browser and it will take you to Apache’s default landing page:

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

Возможные проблемы

1. upstream sent too big header while reading response header from upstream

Ошибка появляется во время установки zabbix в веб-интерфейсе.

Причина: zabbix отправляет размер заголовка больше, чем Nginx может прочитать.

Решение: увеличить размер заголовка в конфигурационном файле nginx:

vi /etc/nginx/nginx.conf

    …
    location ~ \.php$ {
        …
        fastcgi_buffer_size 32k;
        fastcgi_buffers 4 32k;
        …
    …

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

systemctl restart nginx

2. Zabbix server is not running

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

Причина: как правило, не запущена служба сервера.

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

systemctl enable zabbix-server

Запускаем службу:

systemctl start zabbix-server

Корректность запуска можно проверить командой:

systemctl status zabbix-server

Установка NGINX

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

yum install nginx

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

vi /etc/nginx/nginx.conf

http {
    …
    server_names_hash_bucket_size 64;
    ….
}

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

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

systemctl enable nginx —now

Проверим, что веб-сервер работает. Для этого открываем браузер на другом компьютере, который находится в одной сети и вводим в адресной строке IP-адрес сервера. В итоге мы должны увидеть заголовок «Welcome to nginx!»:

* обратите внимание, что данное приветствие может иметь и другой вид. Для настройки http/2 читайте соответствующую статью

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

Web сервер на CentOS 7

Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:

  1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
  2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
  3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Последнее время я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 8 Gb
Диск 150 Gb SSD

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

Если у вас еще нет сервера, то вам надо выполнить установку CentOS 7. А если сервер уже установлен, то не забудьте его настроить

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

Step 2 – Install PHP with PHP-FPM

The Remi repository contains the latest PHP packages for the CentOS 8 Linux system. So first of all, you need to add the REMI repository to your system. Just execute the following command to add the repository.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Then enable the required DNF module for PHP installation. Here we are enabling the module for installing PHP 7.4. You can change this to PHP 7.3 or PHP 7.2 as per your requirements.

sudo dnf module reset php
sudo dnf module enable php:remi-7.4

Now, install the PHP on your system. As we are going to use FastCGI Process Manager (FPM) for this setup. So install the php-fpm package as well.

sudo dnf update
sudo dnf install php php-fpm  php-gd php-mysqlnd

You may also require some more PHP modules, So install them before going next. After completing PHP installation enable PHP-FPM service and start it.

sudo systemctl enable php-fpm
sudo systemctl start php-fpm

Make sure the php-fpm service is running.

sudo systemctl status php-fpm

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-09 21:44:57 PST; 1h 24min ago
 Main PID: 29280 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 3, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 10321)
   Memory: 24.6M
   CGroup: /system.slice/php-fpm.service
           ├─29280 php-fpm: master process (/etc/php-fpm.conf)
           ├─29281 php-fpm: pool www
           ├─29282 php-fpm: pool www
           ├─29283 php-fpm: pool www
           ├─29284 php-fpm: pool www
           └─29285 php-fpm: pool www

Dec 09 21:44:57 tecadmin.example.com systemd: Starting The PHP FastCGI Process Manager...
Dec 09 21:44:57 tecadmin.example.com systemd: Started The PHP FastCGI Process Manager.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

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