Установка и настройка Apache HTTP сервера и mod_mono модуля для запуска ASP.NET приложений

Добро пожаловать!

Moderator: Blaze

Post Reply
User avatar
Blaze
DEV Team
DEV Team
Posts: 3091
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Установка и настройка Apache HTTP сервера и mod_mono модуля для запуска ASP.NET приложений

Post#1 by Blaze » 17 Apr 2018, 19:10

Установка и настройка Apache HTTP сервера и mod_mono модуля для запуска ASP.NET приложений

1. Запускаем терминал и вводим следующие команды:

Code: Select all

su
toor
usm -u usm
usm -u all
usm -g httpd nodeps
usm -g openssl nodeps
usm -g apr nodeps
usm -g apr-util nodeps
usm -g xsp nodeps
usm -g mariadb nodeps
usm -g mono nodeps
Скопируйте полученные xzm модули из /tmp/usm в /mnt/sdb1/porteus/modules, где sdb1 - раздел с установленным Porteus (у Вас может быть другой раздел)
Заметка. Так же, можно, скачать вручную все необходимые пакеты (последние, доступные версии пакетов из ветки slackware64-current) и сконвертировать их в xzm модули, скопировать в /mnt/sdb1/porteus/modules и активировать.

# httpd и openssl (опционально - зависит от версии Porteus)
ftp://ftp.slackware.com/pub/slackware/s ... kware64/n/

# apr и apr-util
ftp://ftp.slackware.com/pub/slackware/s ... kware64/l/

# mariadb
ftp://ftp.slackware.com/pub/slackware/s ... ware64/ap/

# mono
https://packages.slackonly.com/pub/pack ... ment/mono/

# xsp
https://packages.slackonly.com/pub/pack ... pment/xsp/
2. Открываем терминал и собираем модуль mod_mono

Code: Select all

su
toor
cd /tmp
git clone https://github.com/mono/mod_mono.git
cd mod_mono
./autogen.sh --prefix=/usr --with-mono-prefix=/usr
mkdir /tmp/mod_mono-xzm
make
make install DESTDIR=/tmp/mod_mono-xzm
на выходе получаем такое содержимое директории /tmp/mod_mono-xzm

Code: Select all

|-- etc
|   `-- httpd
|       `-- mod_mono.conf
`-- usr
    |-- lib64
    |   `-- httpd
    |       `-- modules
    |           |-- mod_mono.so -> mod_mono.so.0.0.0
    |           `-- mod_mono.so.0.0.0
    `-- man
        `-- man8
            `-- mod_mono.8
не закрывая терминал вводим:

Code: Select all

cd ..
dir2xzm mod_mono-xzm mod_mono-3.13-$(arch)-1.xzm
Копируем mod_mono-3.13-$(arch)-1.xzm из директории /tmp в /mnt/sdb1/porteus/modules и активируем.
Заметка. Все необходимые модули в одном архиве на выбор:
3. В терминале делаем резервную копию

Code: Select all

su
toor
cp /etc/httpd/httpd.{conf,conf.bak}
4. Открываем под root пользователем заводской /etc/httpd/httpd.conf и вносим следующие правки

Найти:

Code: Select all

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
Заменить на:

Code: Select all

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName YourHostNameOrIPAddres:80
Найти:

Code: Select all

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/srv/httpd/htdocs"
<Directory "/srv/httpd/htdocs">
Заменить на:

Code: Select all

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/htdocs"
<Directory "/var/www/htdocs">
Найти:

Code: Select all

# Virtual hosts
#Include /etc/httpd/extra/httpd-vhosts.conf
Заменить на:

Code: Select all

# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
Добавить в самый конец:

Code: Select all

# Activate UTF-8 encoding
AddDefaultCharset Utf-8

# Uncomment the following line to enable ASP.NET support
# via mod_mono module for Apache HTTP Server
Include /etc/httpd/mod_mono.conf
5. Открываем под root пользователем /etc/httpd/extra/httpd-vhosts.conf и вносим следующие правки

Найти:

Code: Select all

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
    CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
    CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>
Заменить на:

Code: Select all

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias www.example.com
    ServerAdmin web-admin@www.example.com
    ErrorLog "/var/log/httpd/www.example.com-error_log"
    CustomLog "/var/log/httpd/www.example.com-access_log" common
    DocumentRoot /var/www/htdocs
    MonoServerPath "/usr/bin/mod-mono-server4"
    MonoSetEnv LANG=ru_RU.UTF-8
    MonoSetEnv MONO_IOMAP=all
    MonoUnixSocket "/tmp/.mod_mono"
    MonoApplications "/monoapps:/var/www/htdocs/monoapps/"
 
    <Location "/monoapps">
        SetHandler mono
        Order allow,deny
        Allow from all
    </Location>

    <Location /mono>
        SetHandler mono-ctrl
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>

    <IfModule dir_module>
        DirectoryIndex index.aspx Default.aspx default.aspx view.htm index.html
    </IfModule>
</VirtualHost>
где <VirtualHost *:80> - указываем нужный порт (если все устраивает, то оставляем по умолчанию 80), плюс не забудьте указать его в /etc/httpd/httpd.conf - для этого найдите

Code: Select all

Listen 80
добавьте после

Code: Select all

Listen здесь_ваш_порт
где www.example.com имя Вашего домена, если нет домена можете задать статический ip адрес
где monoapps это папка, в которой обработка файлов с расширением .aspx и т.д., должна быть делегирована mod_mono (вместо того, чтобы Apache обрабатывал их как текстовые файлы).

6. В терминале выполняем следующие команды:

Code: Select all

su
toor
rm -rf /var/www/htdocs/*
mkdir -p /.mono /etc/mono/registry /root/.mono/registry /var/www/htdocs/monoapps
chown apache:apache -R /.mono/ /etc/mono/registry/ /root/.mono/registry/ /var/www/htdocs/*
chmod 775 -R /.mono/ /etc/mono/registry/ /root/.mono/registry/ /var/www/htdocs/*

# Пример распаковки клиента Бюджет-WEB (WEB5 линейки) фирмы Кейсистемс
wget -P /var/www/htdocs/monoapps https://keysystems.ru/files/web/INSTALL/test/MONO/web5.tar
tar xf /var/www/htdocs/monoapps/web5.tar -C /var/www/htdocs/monoapps
rm -f /var/www/htdocs/monoapps/web5.tar
# После каждой распаковки обязательно выполнить от root пользователя команду
# chown apache:apache -R /var/www/htdocs/* && chmod 775 -R /var/www/htdocs/*

# Пример распаковки клиента Бюджет-WEB (WEB6 линейки) фирмы Кейсистемс
wget -P /var/www/htdocs/monoapps https://keysystems.ru/files/web/INSTALL/WEB6/WB6.0/wb6.TAR.gz
tar xf /var/www/htdocs/monoapps/wb6.TAR.gz -C /var/www/htdocs/monoapps
mv /var/www/htdocs/monoapps/ks_web_build/* /var/www/htdocs/monoapps
rmdir /var/www/htdocs/monoapps/ks_web_build
rm -f /var/www/htdocs/monoapps/wb6.TAR.gz
# После каждой распаковки обязательно выполнить от root пользователя команду
# chown apache:apache -R /var/www/htdocs/* && chmod 775 -R /var/www/htdocs/*

chmod 755 /etc/rc.d/rc.httpd
/etc/rc.d/rc.httpd start

# Необходимо перезагрузить компьютер! 
# Если этого не сделать, то получите ошибку:
# Access to the path "/root/.mono" is denied.
reboot
7. Открываем в браузере http://localhost/monoapps/
Заметка. в /var/www/htdocs/ можете создать любую index.html страницу, содержащую гиперссылку на mono приложение, расположенное в /var/www/htdocs/monoapps, чтобы данная страница открывалась по http://localhost и имела удобную навигацию.

Для того, чтобы создать несколько приложений-каталогов под mod_mono, привожу следующий пример:

Code: Select all

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias www.example.com
    ServerAdmin web-admin@www.example.com
    ErrorLog "/var/log/httpd/www.example.com-error_log"
    CustomLog "/var/log/httpd/www.example.com-access_log" common
    DocumentRoot /var/www/htdocs
    MonoServerPath "/usr/bin/mod-mono-server4"
    MonoSetEnv LANG=ru_RU.UTF-8
    MonoSetEnv MONO_IOMAP=all
    MonoUnixSocket "/tmp/.mod_mono"
    MonoApplications "/web2018:/var/www/htdocs/web2018/"
    MonoApplications "/svod2018:/var/www/htdocs/svod2018/"
 
    <Location "/web2018">
        SetHandler mono
        Order allow,deny
        Allow from all
    </Location>

    <Location "/svod2018">
        SetHandler mono
        Order allow,deny
        Allow from all
    </Location>

    <Location /mono>
        SetHandler mono-ctrl
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>

    <IfModule dir_module>
        DirectoryIndex index.aspx Default.aspx default.aspx view.htm index.html
    </IfModule>
</VirtualHost>
При этом не забудьте создать /var/www/htdocs/web2018 и /svod2018:/var/www/htdocs/svod2018 и в терминале выполнить:

Code: Select all

su
toor
chown apache:apache -R /var/www/htdocs/* && chmod 775 -R /var/www/htdocs/*
Linux 5.4.85-porteus #1 SMP Wed Dec 23 12:36:37 UTC 2020 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

User avatar
Blaze
DEV Team
DEV Team
Posts: 3091
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Установка и настройка Apache HTTP сервера и mod_mono модуля для запуска ASP.NET приложений

Post#2 by Blaze » 21 Mar 2019, 16:49

Официальный сайт для загрузки .NET Core https://dotnet.microsoft.com/download/dotnet-core

:url: .NET Core 2.2 (включает SDK 2.2.300, Runtime 2.2.5 и зависимости) released 2019-05-21

Code: Select all

dotnet-host-2.2.5-x86_64-1.xzm
dotnet-runtime-2.2.5-x86_64-1.xzm
dotnet-sdk-2.2.300-x86_64-1.xzm

Code: Select all

# dotnet --version
2.2.300

# dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.2.300
 Commit:    73efd5bd87

Runtime Environment:
 OS Name:     Slackware
 OS Version:  15.0
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /opt/dotnet/sdk/2.2.300/

Host (useful for support):
  Version: 2.2.5
  Commit:  0a3c9209c0

.NET Core SDKs installed:
  2.2.300 [/opt/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.5 [/opt/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.5 [/opt/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.5 [/opt/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
Старые сборки доступны под спойлером:
Linux 5.4.85-porteus #1 SMP Wed Dec 23 12:36:37 UTC 2020 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Post Reply