Поиск по сайту:

Как установить и настроить сервер OpenLiteSpeed на Fedora 31 вместе с MariaDB


На этой странице

  1. Предпосылки
  2. Шаг 1. Настройка брандмауэра
  3. Шаг 2. Установите OpenLiteSpeed
  4. Шаг 3. Установите PHP
  5. Шаг 4. Установите MariaDB
  6. Шаг 5. Настройка OpenLiteSpeed
    1. Настройка панели администратора
    2. Переключите 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 в браузере, и вы должны увидеть следующую страницу.

    Вот и все для этого урока. Если у вас остались вопросы, задавайте их в комментариях ниже.