Как установить и настроить сервер OpenLiteSpeed на Fedora 31 вместе с MariaDB
На этой странице
- Предпосылки
- Шаг 1. Настройка брандмауэра
- Шаг 2. Установите OpenLiteSpeed
- Шаг 3. Установите PHP
- Шаг 4. Установите MariaDB
- Шаг 5. Настройка OpenLiteSpeed
- Настройка панели администратора
- Переключите HTTP-порт обратно на 80.
OpenLiteSpeed — это облегченная версия сервера LiteSpeed с открытым исходным кодом, разработанная LiteSpeed Technologies. Он поддерживает правила Apache Rewrite, HTTP/2 и HTTP/3, а также протоколы TLS v1.3 и QUIC. Он поставляется с панелью администрирования на основе веб-интерфейса, которая отличает его от других серверов и упрощает управление.
В этом руководстве мы узнаем, как установить сервер OpenLiteSpeed на Fedora 31 вместе с сервером PHP 7.4 и MariaDB.
Предпосылки
-
Fedora 31 based web server.
-
A non-root user account with sudo privileges.
-
Update your system.
$ sudo dnf update
-
libnsl package. This package contains the public client interface for NIS services. To install it, issue the following command.
$ sudo dnf install libnsl -y
Шаг 1. Настройте брандмауэр
Прежде чем мы начнем с руководства, нам нужно настроить брандмауэр Fedora, который обычно включен по умолчанию. Давайте сначала проверим состояние брандмауэра.
$ sudo systemctl status firewalld
Если он не работает, то запустите брандмауэр.
$ sudo systemctl start firewalld
Далее нам нужно включить SSH, HTTP, HTTPS и порты 7080, 8088 для брандмауэра.
$ sudo firewall-cmd --permanent --add-service=ssh $ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https $ sudo firewall-cmd --permanent --add-port=7080/tcp $ sudo firewall-cmd --permanent --add-port=8088/tcp
Когда вы закончите, вы увидите список исключений, которые будут реализованы.
$ sudo firewall-cmd --permanent --list-all
Когда вы будете удовлетворены изменениями, перезагрузите брандмауэр, чтобы изменения вступили в силу.
$ sudo firewall-cmd --reload
Включите брандмауэр, чтобы он перезагружался при каждой загрузке.
$ sudo systemctl enable firewalld
Шаг 2 — Установите OpenLiteSpeed
Выполните следующую команду, чтобы загрузить бинарный пакет OpenLiteSpeed с веб-сайта. На момент написания этого руководства последней доступной версией была 1.6.4. Проверьте последнюю версию на странице загрузок и при необходимости измените URL-адрес.
$ wget https://openlitespeed.org/packages/openlitespeed-1.6.4.tgz
Распакуйте архив.
$ tar -zxvf openlitespeed-1.6.4.tgz
Перейдите в каталог
openlitespeed
и запустите скрипт установки.$ cd openlitespeed $ sudo ./install.sh
Запустите веб-сервер.
$ sudo /usr/local/lsws/bin/lswsctrl start
Проверьте состояние сервера.
$ sudo /usr/local/lsws/bin/lswsctrl status
Откройте http://
:8088, чтобы получить доступ к вашему веб-серверу. Вы должны увидеть следующую страницу. Шаг 3 — Установите PHP
Сервер OpenLiteSpeed поставляется с предустановленным PHP 5.6. Но мы хотим использовать PHP 7.4, поэтому установим нашу копию.
Установите репозиторий REMI, который является официальным репозиторием Fedora для установки пакетов PHP.
$ sudo dnf -y install https://rpms.remirepo.net/fedora/remi-release-31.rpm
Включите репозитории
remi
иremi-php74
и отключите репозиторийremi-modular
. Это включает репозиторий, необходимый для установки пакетов PHP 7.4.$ sudo dnf config-manager --set-enabled remi $ sudo dnf config-manager --set-enabled remi-php74 $ sudo dnf config-manager --set-disabled remi-modular
Установите PHP 7.4 вместе с некоторыми дополнительными пакетами.
$ sudo dnf install php php-mysqlnd php-gd php-mcrypt php-bcmath php-litespeed
Проверьте установку PHP.
$ php -v PHP 7.4.0 (cli) (built: Nov 26 2019 20:13:36) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies
Вы можете проверить включенные модули PHP.
$ php --modules
Позже мы настроим PHP для работы с OpenLiteSpeed.
Шаг 4 — Установите MariaDB
Установите сервер MariaDB.
$ sudo dnf install mariadb-server
Запустите и включите службу MariaDB.
$ sudo systemctl start mariadb $ sudo systemctl enable mariadb
Защитите свою установку MariaDB. Этот сценарий установит ваш пароль root, удалит анонимных пользователей, запретит удаленный вход в систему root и сбросит тестовые таблицы. Выберите надежный пароль и ответьте на вопросы, как описано ниже.
$ sudo mysql_secure_installation [sudo] password for username: NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Как только это будет сделано, вы можете войти в оболочку MySQL, используя следующую команду.
$ sudo mysql -u root -p
Создайте тестовую базу данных и пользователя с правами доступа. Замените
testdb
иtestuser
соответствующими именами для вашей установки. Заменитеpassword
надежным паролем.CREATE DATABASE testdb; CREATE USER 'testuser' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'; FLUSH PRIVILEGES;
Выйдите из оболочки MySQL.
exit
Шаг 5 — Настройте OpenLiteSpeed
Настроить панель администратора
Задайте учетные данные панели администратора.
$ sudo /usr/local/lsws/admin/misc/admpass.sh
С помощью этой команды вы можете установить как имя пользователя, так и пароль. Вы также можете использовать эту команду, если забыли данные для входа.
Чтобы получить доступ к панели администрирования, откройте http://
:7080. Переключите HTTP-порт обратно на 80
Давайте изменим HTTP-порт по умолчанию на 80. Войдите в свою административную панель по адресу http://
:7080, используя только что созданные учетные данные. Вас встретит следующий экран.
Посетите раздел «Слушатели» слева. Вы увидите прослушиватели по умолчанию с портом 8080.
Нажмите кнопку «Просмотр», чтобы просмотреть подробные сведения о конфигурации. На следующей странице в разделе Listener Default > General Page щелкните значок Edit и измените порт с 8088 на 80.
Нажмите «Сохранить», а затем перезапустите сервер, нажав кнопку «Мягкий перезапуск».
Шаг 6 — Настройте PHP
На этом шаге нам нужно связать нашу копию PHP 7.4 с сервером.
Нажмите на раздел «Конфигурация сервера» слева, а затем на вкладку «Внешнее приложение». Вы увидите существующее приложение LiteSpeed для PHP 5.6. Мы создадим собственное приложение LiteSpeed для PHP 7.4. Вы можете легко переключаться между ними позже, если хотите.
Нажмите кнопку «Добавить», чтобы создать новое приложение. В качестве типа выберите приложение LiteSpeed SAPI и нажмите «Далее».
Затем добавьте конфигурацию ниже. Оставьте все остальные поля пустыми.
Name: lsphp74 Address: uds://tmp/lshttpd/lsphp.sock Max Connections: 35 Environment: PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 LSAPI_AVOID_FORK=200M Initial Request Timeout (secs): 60 Retry Timeout : 0 Persistent Connection: Yes Response Buffering: no Start By Server: Yes(Through CGI Daemon) Command: /usr/bin/lsphp Back Log: 100 Instances: 1 Priority: 0 Memory Soft Limit (bytes): 2047M Memory Hard Limit (bytes): 2047M Process Soft Limit: 1400 Process Hard Limit: 1500
Нажмите Сохранить, когда закончите.
Теперь, когда мы создали собственное приложение на основе PHP 7.4, нам нужно сообщить серверу, чтобы он начал его использовать.
Перейдите на вкладку «Обработчик сценариев» и отредактируйте обработчик lsphp. Переключите имя дескриптора на lsphp74 в раскрывающемся меню.
Нажмите «Сохранить», а затем перезапустите сервер, нажав кнопку «Мягкий перезапуск».
Чтобы проверить, правильно ли переключился ваш PHP, посетите http://
/phpinfo.php в своем браузере. Шаг 7 — Настройка виртуального хоста
Во-первых, нам нужно создать каталоги для нашего виртуального хоста.
$ sudo mkdir /usr/local/lsws/example.com/{html,logs} -p
В каталоге
html
будут храниться общедоступные файлы, а в каталогеlogs
— журналы сервера.Затем откройте консоль администратора, войдите в раздел «Виртуальные хосты» слева и нажмите кнопку «Добавить».
Заполните значения, как указано
Virtual Host Name: example.com Virtual Host Root: $SERVER_ROOT/example.com/ Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf Follow Symbolic Link: Yes Enable Scripts/ExtApps: Yes Restrained: Yes External App Set UID Mode: Server UID
Нажмите на кнопку Сохранить, когда закончите. Вы получите следующую ошибку, потому что файл конфигурации на данный момент не существует. Нажмите на ссылку, чтобы создать файл конфигурации.
Нажмите кнопку «Сохранить» еще раз, чтобы завершить создание виртуального хоста.
После создания виртуального хоста перейдите в раздел «Виртуальные хосты» -> «Выбрать виртуальный хост (example.com)» -> «Общие» и измените конфигурацию, как указано.
Document Root: $VH_ROOT/html/ Domain Name: example.com Enable Compression: Yes
Нажмите кнопку Сохранить, когда закончите. Далее нам нужно настроить индексные файлы. Нажмите кнопку редактирования рядом с файлами индекса под общим разделом. Установите следующие параметры.
Use Server Index Files: No Index files: index.php, index.html, index.htm Auto Index: No
Нажмите Сохранить, когда закончите. Далее нам нужно выбрать файлы журнала. Перейдите в раздел «Журнал», нажмите «Изменить в журнале виртуального хоста» и заполните следующие значения.
Use Server’s Log: Yes File Name: $VH_ROOT/logs/error.log Log Level: ERROR Rolling Size (bytes): 10M
Вы можете выбрать уровень журнала как DEBUG, если вы находитесь на машине производства/разработки.
Нажмите «Сохранить», а затем откройте раздел «Журнал доступа». Заполните следующие значения.
Log Control: Own Log File File Name: $VH_ROOT/logs/access.log Piped Logger: Not Set Log Format: Not Set Log Headers: Not Set Rolling Size (bytes): 10M Keep Days: 30 Bytes log: Not Set Compress Archive: Yes
Нажмите Сохранить, когда закончите. Далее нам нужно настроить контроль доступа в разделе «Безопасность». Установите следующие значения.
Allowed List: * Denied List: Not set
Нажмите Сохранить, когда закончите. Далее нам нужно установить обработчик скрипта. Установите следующие значения.
Suffixes: php Handler Type: LiteSpeed SAPI Handler Name: [Server Level]: lsphp74
Далее нам нужно установить Rewrite Control в разделе Rewrite. Установите следующие значения.
Enable Rewrite: Yes Auto Load from .htaccess: Yes Log Level: Not Set
И, наконец, нам нужно установить Listeners. Перейдите в раздел Listeners и нажмите кнопку View напротив Default Listener. Затем нажмите кнопку «Добавить» напротив сопоставлений виртуальных хостов, чтобы добавить новое сопоставление и установить следующие значения.
Virtual Host: example.com Domains: example.com
Нажмите Сохранить, когда закончите. Теперь нажмите кнопку «Мягкий перезапуск», чтобы применить все вышеуказанные изменения и перезапустить сервер.
Шаг 8 — Настройка SSL
Чтобы использовать Lets Encrypt, нам нужно установить инструмент Certbot.
$ sudo dnf install certbot
Получите сертификат SSL.
$ sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ -d example.com
Следуйте интерактивной подсказке.
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org ------------------------------------------------------------------------------- Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory ------------------------------------------------------------------------------- (A)gree/(C)ancel: A ------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. ------------------------------------------------------------------------------- (Y)es/(N)o: N Obtaining a new certificate Performing the following challenges: http-01 challenge for example.com Using the webroot path /usr/local/lsws/example.com/html for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example/fullchain.pem. Your key file has been saved at: /etc/letsencrypt/live/linode.nspeaks.com/privkey.pem Your cert will expire on 2020-03-07. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Теперь откройте консоль администратора и перейдите в Listeners >> Add New Listener и добавьте следующие значения.
Listener Name: SSL IP Address: ANY Port: 443 Secure: Yes
Нажмите Сохранить, когда закончите. Затем перейдите в раздел «Сопоставление виртуальных хостов» в разделе «Прослушиватель SSL», нажмите кнопку «Добавить» и заполните следующие значения.
Virtual Host: example.com Domains: example.com
Нажмите Сохранить, когда закончите.
Затем перейдите в «Прослушиватели» >> «Прослушиватель SSL» >> вкладка «SSL» >> «Закрытый ключ и сертификат SSL» (кнопка «Изменить») и заполните следующие значения.
Private Key File: /etc/letsencrypt/live/example.com/privkey.pem Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem Chained Certificate: Yes
Нажмите Сохранить, когда закончите. Перезагрузите сервер, нажав кнопку «Мягкий перезапуск».
Шаг 9 - Тестовый сайт
Создайте тестовый файл в каталоге
html
.$ sudo nano /usr/local/lsws/example.com/html/index.php
Вставьте следующий код в редактор Nano.
<html> <head> <h2>OpenLiteSpeed Server Install Test</h2> </head> <body> <?php echo '<p>Hello,</p>'; // Define PHP variables for the MySQL connection. $servername = "localhost"; $username = "testuser"; $password = "password"; // Create a MySQL connection. $conn = mysqli_connect($servername, $username, $password); // Report if the connection fails or is successful. if (!$conn) { exit('<p>Your connection has failed.<p>' . mysqli_connect_error()); } echo '<p>You have connected successfully.</p>'; ?> </body> </html>
Откройте свой сайт по адресу https://example.com в браузере, и вы должны увидеть следующую страницу.
Вот и все для этого урока. Если у вас остались вопросы, задавайте их в комментариях ниже.