Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM
После выполнения предварительных требований мы установим версии PHP 7.0 и 7.2. Репозиторий SCL (Software Collections) содержит множество версий стеков PHP для систем CentOS 7. Если вам нужна абсолютно новая версия PHP, которой нет на SCL, проверьте PPA (персональные архивы пакетов).
Начнем с установки репозитория SCL в вашу систему:
Сначала узнаем, какие версии PHP 7 доступны в SCL:
Вывод будет выглядеть следующим образом:
Вы заметите, что доступна также новейшая версия, PHP 7.3. Но в наших примерах мы установим версии 7.0 и 7.2.
Начнем с более ранней версии. Установите и :
- — это метапакет, который запускает приложения PHP.
- предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.
Повторите процедуру для PHP версии 7.2. Установите и .
Далее запустите следующие команды для начала использования обеих коллекций Software Collections:
По умолчанию обе версии PHP прослушивают порт . Но в этом обучающем руководстве мы хотим запустить две версии одновременно. Поэтому назначим два новых порта:
Для этого откройте в предпочитаемом текстовом редакторе и измените каждое представление на . Затем сохраните и закройте файл и повторите процедуру для , только сейчас замените на . Вы можете использовать эти две команды поочередно, чтобы выполнить замены:
Сейчас вы назначили выделенный порт для каждой из ваших служб PHP. Перед выполнением этих изменений необходимо, тем не менее, добавить порты в вашу конфигурацию SELinux.
SELinux — это сокращение от Security Enhanced Linux, которое активируется по умолчанию на CentOS 7. Необходимо добавить новые порты и в вашу базу данных SELinux и назначить их для ваших служб httpd, иначе ваши приложения не будут запускаться. Для выполнения этой задачи используйте команду :
Флаг указывает на то, что вы добавляете объект в базу данных. Флаг указывает тип объекта, которым в данном случае является . А флаг определяет протокол . Дополнительную информацию о SELinux и команде можно найти в этом обучающем руководстве или обратившись к официальной документации SELinux.
Теперь вы готовы запустить и активировать ваши службы PHP. Начнем со службы и активируем ее запуск во время загрузки:
Затем проверьте статус службы :
Вывод будет выглядеть следующим образом:
Повторите эту процедуру, запустите службу и активируйте ее запуск во время загрузки:
Затем проверьте статус службы :
Другой вывод будет выглядеть следующим образом:
Мы установили на сервере две версии PHP. Теперь создадим структуру каталогов для каждого сайта, который будем развертывать.
Установка и обновление
Установка проста. Вероятно, вы можете установить программу с помощью системы управления пакетами, но я предпочитаю ;
простая команда — — выполняет всю работу по установке. Не беспокойтесь, если будет установлена не самая последняя версия; обновления могут быть установлены с помощью самого Webmin.
Можно также подходящую для вашей системы версию и следовать инструкциям по установке, указанным слева на странице скачивания программы.
Работу можно начать с или установить
и добавить модули по желанию, используя функции обновления в самом Webmin.
Перед началом использования Webmin необходимо запустить сервис. Чтобы обеспечить ежедневный запуск Webmin, введите от имени root следующие команды:
Откройте браузер и наберите адрес http://127.0.0.1:10000. Введите имя пользователя и пароль администратора системы (в большинстве дистрибутивов это будет «root»; Ubuntu и другие дистрибутивы предоставляют такие права определенным пользователям и не имеют аккаунта root). После ввода нажмите на Login. Для сохранения имени пользователя и пароля можно также отметить флажок «Remember login permanently?», но это риск с точки зрения безопасности, поэтому я не рекомендую делать это.
Обновление Webmin или установка дополнительных модулей — пустяковая задача. В меню слева щелкните на Webmin -> Webmin Configuration. Выбрав Upgrade Webmin, вы сможете обновить программу через Интернет. Можно нажать на Scheduled Update и настроить систему на периодическое и автоматическое обновление.
Нажав на Webmin Modules, можно пролистать информацию, доступную на сайте Webmin, а также скачать дополнительные модули Webmin с других сайтов. Если вы выберете опцию Standard Module, всплывет окно с десятками модулей, перечисленных фактически в алфавитном порядке. Чтобы скачать модуль, щелкните на его названии, а затем на Install Module.
Одно замечание касательно безопасности: пользователи Webmin неидентичны пользователям операционной системы. При первом логине в Webmin автоматически создается пользователь root c указанным вами паролем. Но для каждого администратора вам нужно создать отдельный аккаунт, ограниченный лишь необходимыми функциями.
Инициализация кластера
Запуск первого узла Galera. Выберите любой из узлов и инициализируйте кластер. Операция не деструктивная, никакие данные не удаляются и не повреждаются:
sudo galera_new_cluster
Запуск оставшихся узлов. Каждый из оставшихся узлов запускается как обычно:
sudo systemctl start mariadb
Проверьте состояние кластера с помощью значения переменных wsrep_*:
$ mysql -uroot -e "SHOW GLOBAL STATUS LIKE 'wsrep_cluster%';" +--------------------------+--------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------+ | wsrep_cluster_conf_id | 5 | | wsrep_cluster_size | 3 | | wsrep_cluster_state_uuid | 15a6ec3c-648e-11e9-ae72-0715b07d89d9 | | wsrep_cluster_status | Primary | | wsrep_cluster_weight | 3 | +--------------------------+--------------------------------------+ $ mysql -uroot -e "SHOW GLOBAL STATUS LIKE 'wsrep_incoming%'\G" *************************** 1. row *************************** Variable_name: wsrep_incoming_addresses Value: 10.120.28.219:3306,10.120.29.124:3306,10.120.28.207:3306
Если теперь на одном из узлов выполнить команду , то вы немедленно увидите как изменится вывод вышеприведенных команд:
$ mysql -uroot -e "SHOW GLOBAL STATUS LIKE 'wsrep_cluster%';" +--------------------------+--------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------+ | wsrep_cluster_conf_id | 6 | | wsrep_cluster_size | 2 | | wsrep_cluster_state_uuid | 15a6ec3c-648e-11e9-ae72-0715b07d89d9 | | wsrep_cluster_status | Primary | | wsrep_cluster_weight | 2 | +--------------------------+--------------------------------------+ $ mysql -uroot -e "SHOW GLOBAL STATUS LIKE 'wsrep_incoming%'\G" *************************** 1. row *************************** Variable_name: wsrep_incoming_addresses Value: 10.120.28.219:3306,10.120.29.124:3306
Важно. Когда вы отключаете узлы штатным способом, как сделали выше, кластер понимает, что общий вес кластера надо уменьшить (был 3/3, стал 2/2), поэтому состояние кластера считается целостным, а не деградированным
Если же узлы отключаются аварийно, то вес кластера не уменьшается (был 3/3, стал 2/3).
Ошибки и предупреждения
sudo systemctl restart networking
Job for network.service failed because the control process exited with error code. See «systemctl status network.service» and «journalctl -xe» for details.
systemctl status network.service
● network.service — LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2021-01-19 19:09:42 EET; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 2448 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
Process: 8268 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Mar 09 17:29:36 server1.example.com network: RTNETLINK answers: File exists
Mar 09 17:29:36 server1.example.com network: RTNETLINK answers: File exists
Mar 09 17:29:36 server1.example.com network: RTNETLINK answers: File exists
Mar 09 17:29:36 server1.example.com network: RTNETLINK answers: File exists
Mar 09 17:29:36 server1.example.com network: RTNETLINK answers: File exists
Mar 09 17:29:36 server1.example.com network: RTNETLINK answers: File exists
Mar 09 17:29:36 server1.example.com systemd: network.service: control process exited, code=exited status=1
Mar 09 17:29:36 server1.example.com systemd: Failed to start LSB: Bring up/down networking.
Mar 09 17:29:36 server1.example.com systemd: Unit network.service entered failed state.
Mar 09 17:29:36 server1.example.com systemd: network.service failed.
5. Accessing Webmin
To access Webmin, open your favorite web browser, enter as protocol, enter your server IP address and use as a port number.
https://YOUR-IP-ADDRESS:10000
By default, Webmin uses a self-signed SSL certificate so your web browser will warn you that the connection is not secure. You can accept the self-signed SSL certificate and proceed to the log in screen.
The administration username which you can use to sign in is set to and the password is your current root password. In the Webmin dashboard, you can see some basic information about your system and recent logins. The modules and services which you can manage through Webmin are listed on the left panel.
Of course, you don’t have to install Webmin on CentOS 7, if you use one of our Webmin VPS hosting services, in which case you can simply ask our expert Linux admins to install and configure Webmin on your CentOS 7 server for you. They are available 24×7 and will take care of your request immediately.
If you liked this post, on how to install Webmin on CentOS 7, please share it with your friends on the social networks using the buttons below or simply leave a comment in the comments section. Thanks.
CentOS vs Ubuntu: производительность
Если вы используете ресурсоемкие приложения или службы на своем сервере, производительность операционной системы имеет значение. Хотя дистрибутивы Linux будут примерно одинаковыми по производительности по сравнению с другими операционными системами, у некоторых все же есть свои преимущества.
По умолчанию, Ubuntu Server более компактен, что дает ему преимущество. Тем не менее, вы можете настроить CentOS для увеличения производительности, если захотите. Глядя на отчет от Phoronix, Ubuntu иногда опережает CentOS, а иногда наоборот.
Победитель: Это ничья. Эта категория имеет весьма незначительный разбег.
Virtualmin Installation and Configuration with CentOS 7 on Vultr
Virtualmin Installation and Configuration with CentOS 7 on Vultr
Webmin — это веб-панель управления с открытым исходным кодом для системного администрирования для Linux / UNIX. Webmin позволяет управлять пользователями, группами, дисковыми квотами, а также настраивать наиболее популярные сервисы, включая веб, FTP, электронную почту и серверы баз данных.
В этом руководстве описывается установка Webmin на сервере CentOS 7.
Предпосылки
Прежде чем продолжить этот урок, убедитесь, что вы вошли в систему как пользователь root или пользователь с привилегиями sudo.
Установка Webmin на CentOS
Самый простой и рекомендуемый способ установки Webmin на компьютеры CentOS — включить репозиторий Webmin и установить пакет Webmin через командную строку.
Выполните следующие шаги для установки Webmin в CentOS:
-
Откройте выбранный вами редактор и создайте следующий файл репозитория:
Вставьте следующее содержимое в файл:
/etc/yum.repos.d/webmin.repo
Сохраните файл и закройте редактор.
Затем импортируйте ключ Webmin GPG, используя следующую команду:
Установите последнюю версию Webmin, набрав:
Все зависимости будут разрешены автоматически. После завершения установки отобразится следующий вывод:
Сервис Webmin запустится автоматически.
Это оно! На данный момент вы успешно установили Webmin на вашем сервере CentOS 7.
Настройте брандмауэр
По умолчанию Webmin прослушивает соединения через порт на всех сетевых интерфейсах.
Чтобы разрешить трафик через порт выполните следующие команды:
Доступ к веб-интерфейсу Webmin
Теперь, когда Webmin установлен на вашем сервере CentOS, откройте ваш любимый браузер и введите имя хоста вашего сервера или публичный IP-адрес, а затем Webmin порт :
Браузер будет жаловаться на недействительность сертификата, потому что по умолчанию Webmin использует недоверенный самозаверяющий SSL-сертификат.
Войдите в веб-интерфейс Webmin, используя свои учетные данные пользователя root или sudo:
Отсюда вы можете начать настройку и управление вашим сервером CentOS 7 в соответствии с вашими требованиями.
Вывод
Вы успешно установили Webmin на вашем компьютере CentOS 7. Теперь вы можете установить FTP-сервер или стек LAMP / LEMP и начать управление сервисами через веб-интерфейс Webmin.
Чтобы узнать больше о Webmin, посетите их официальную страницу документации.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.
Webmin Centos
Webmin — это веб-панель управления с открытым исходным кодом для администрирования серверов Linux. В этом уроке мы покажем вам, как установить Webmin на Debian 10, Buster.
Webmin — это панель управления с открытым исходным кодом, которая позволяет вам управлять вашим сервером Linux через простой в использовании веб-интерфейс. В этом руководстве объясняется, как установить Webmin в CentOS 8.
Webmin — это веб-панель управления с открытым исходным кодом для администрирования серверов Linux. В этом руководстве объясняется, как установить Webmin в Debian Linux 9.
Использование yum через прокси
Yum для работы с репозиториями программ использует протокол HTTP/1.1. Если ваш Linux сервер имеет доступ в интернет только через HTTP прокси сервер, вы можете указать имя прокси сервера в конфигурационном файле в секции :
proxy=http://proxyservername:3128
Если прокси-сервер требует авторизацию, добавьте строки:
proxy_proxy_username=user proxy_password=pass
Для проверки работы yum через прокси сервер воспользуйтесь командой:
yum clean all && yum search nginx
Для проверки я указал публичный прокси сервер с Германии и при установке, сработал плагин , нашел зеркала с которых скорость будет выше:
Install Webmin on CentOS 8/RHEL 8 From Webmin Repository
Webmin has been around since 1997. At the time of this writing, the latest stable version available is 1.970, which was released on January 6, 2021. Webmin isn’t in CentOS/RHEL software repository. It’s recommended to install Webmin from its official repository so that you can always get the latest version.
To add Webmin repository, create a repository file with a command-line text editor such as Nano.
sudo dnf install nano sudo nano /etc/yum.repos.d/webmin.repo
Add the following lines in the file.
name=Webmin Distribution Neutral #baseurl=https://download.webmin.com/download/yum mirrorlist=https://download.webmin.com/download/yum/mirrorlist enabled=1
Save and close the file. To save the file in Nano text editor, press , then press to confirm. To close the file, press . Next, we need to run the following command to download and import Webmin PGP signing key so that the package manager can verify the integrity of packages downloaded from Webmin repository.
wget http://www.webmin.com/jcameron-key.asc
Then import it with:
sudo rpm --import jcameron-key.asc
Now we can update repository and install Webmin.
sudo dnf update -y sudo dnf install webmin -y
Once installed, the Wemin built-in web server will automatically start as can be seen by running the systemctl command below:
systemctl status webmin
Output:
Hint: If the above command doesn’t quit immediately, you can press the Q key to gain back control of the terminal.
If it’s not running, you can start it with:
sudo systemctl start webmin
If you see the “” error, then you need to restart your server.
sudo shutdown -r now
Webmin server listens on port 10000, so you need to open TCP port 10000 in the firewall.
sudo firewall-cmd --permanent --add-port=10000/tcp sudo systemctl reload firewalld
Now you can access the web-based control panel via
https://your-server-ip:10000
Because it’s running in HTTPS mode and using a self-signed TLS certificate, so you will be told by the browser that the connection is not secure.
But you know this is your own server, so simply click the tab in Firefox and add exception. If you are using Google Chrome, you can click -> .
Now you will be presented with Webmin login screen. You need to use account to login.
If you don’t like the default color on the navigation menu, you can change it to a different color by clicking the icon on the bottom of the navigation menu,
then select navigation menu options and set the color palette. For example, I selected Midnight blue.
Save the change.
Приступим к установке CentOS 7
Когда загружаемся с образа, выбираем пункт Install CentOS 7 и инициализируем установку системы
Выибераем язык установки системы и нажимаем Continue
Теперь по порядку DATE & TIME
Указываем регион, город, время и дату. Функция Network Time даёт выбрать синхронизацию с NTP серверами. Ничего сложного, впрочем, как и весь процесс установки. По кнопке Done возвращаемся в предыдущее меню
В разделе KEYBOARD через кнопку + открываем список языков, ищем необходимый язык и добавляем его Add. Как добавили нужный язык переходим на предыдущее меню Done.
В разделе LANGUAGE SUPPORT тоже нет ничего хитрого
NETWORK & HOST NAME. Тут нужно выбрать сетевой интерфейс и активировать его через переключатель в правом верхнем углу. В случе отсутствия DHCP сервера ниже есть кнопка Configure… для ручной настройки сетевого интерфейса в CentOS 7.
Переходим во вкладку IPv4 Settings и указываем нужные параметры
Теперь нам необходимо выбрать место установки CentOS INSTALLATION DESTINATION выбираем диск и переходим в предыдущее меню Done.
Для ручной разбивки диска вы должны знать какой раздел для чего предназначен. При создании разделов не забываем выбрать тип LVM (кроме раздела boot — xfs)!
- корневой раздел. Под него стоит отвести не менее 20-30 Гб, так как в нём хранятся системные файлы.
-
/home это раздел с директорией пользователя. В этом разделе хранится рабочий стол пользователя, документы, изображения и .т.д. Если это не десктопная машина, а сервер, то
отведём разделу не более 10 Гб. - /swap это файл подкачки. Рассчитывается примерно так: 1 Гб ОЗУ = 2Гб
- /boot раздел для загрузки системы, с барского плеча накинем ему 1 Гб :D.
- /var очень важный раздел с точки зрения информационной безопасности, так как в него пишутся все логи, хранятся базы данных SQL и закаченные RPM пакеты. Всё что осталось, выделяем под этот раздел.
В SOFTWARE SELECTION мы можем отметить необходимые пакеты, но сейчас я оставлю всё как есть по умолчанию.
Запускаем установку системы CentOS 7 Begin Installation
В ходе установки нам нужно будет создать пользователя и установить пароль для рута.
По завершении установки системы уходим в перезагрузку Reboot
С дефолтными настройками наш сервер доступен по SSH. Вот и собственно вся установка
Автоматическое обновление системы
Для поддержания безопасности сервера на должном уровне необходимо как минимум своевременно его обновлять — как само ядро с системными утилитами, так и остальные пакеты. Можно делать это вручную, но для более эффективной работы лучше автоматизировать рутинные действия. Не обязательно устанавливать обновления автоматически, но как минимум проверять их появление. Я обычно придерживаюсь такой стратегии.
Для автоматической проверки обновлений нам поможет утилита yum-cron. Ставится она традиционно через yum из стандартного репозитория.
# yum install yum-cron
После установки создается автоматическое задание на выполнение утилиты в /etc/cron.daily и /etc/cron.hourly. По-умолчанию, утилита скачивает найденные обновления, но не применяет их. Вместо этого, администратору на локальный почтовый ящик root отправляется уведомление об обновлениях. Дальше вы уже в ручном режиме заходите и решаете, устанавливать обновления или нет в удобное для вас время. Мне такой режим работы видится наиболее удобным, поэтому я не меняю эти настройки.
Проверка репликации данных
На одном из узлов создадим базу данных, таблицу и вставим данные в нее:
$ mysql -uroot MariaDB > create database test; Query OK, 1 row affected (0.121 sec) MariaDB > create table test.test (id INT PRIMARY KEY, name VARCHAR(32)); Query OK, 0 rows affected (0.195 sec) MariaDB > insert into test.test values(1, "name"); Query OK, 1 row affected (0.003 sec)
Убедимся, что репликация произошла на оставшиеся узлы, выполнив на каждом из них команду запроса данных:
$ mysql -uroot -e 'select * from test.test;' +----+------+ | id | name | +----+------+ | 1 | name | +----+------+
Аналогичным образом вы можете осуществить проверку и для других операций.
Настройка хостинга
На предыдущем шаге представлена ссылка на статью, по которой мы сконфигурировали полноценный веб-сервер. Но для хостинга необходимо внести некоторые дополнительные настройки.
Общий пользователь
Так как к одним и тем же каталогам необходимы права доступа для nginx и apache, создаем общую группу и добавим в нее учетные записи, от которых работают данные веб-сервисы.
Добавим группу virtwww:
Задаем созданную группу как дополнительную для apache и nginx:
usermod apache -G virtwww
usermod nginx -G virtwww
Запуск виртуальных доменов от определенного пользователя
Чтобы каждый виртуальный домен apache мог работать от отдельного пользователя, устанавливаем модуль httpd-itk:
yum install httpd-itk
После открываем следующий файл:
и снимаем комментарий для LoadModule — получится:
LoadModule mpm_itk_module modules/mod_mpm_itk.so
Настройка Apache
Добавим разрешения на каталоги, в которых будут храниться файлы сайтов:
AllowOverride All Options Indexes ExecCGI FollowSymLinks Require all granted
AllowOverride All Options Indexes ExecCGI FollowSymLinks Require all granted
* по предложенной статье права были выданы на каталоги /var/www/*/www, для хостинга мы будем использовать немного другую вложенность.