Light Bullet - информационно - новостной сайт, в котором собрана информация сообщества по различным тематикам. Для ознакомления вы можете перейти в соответствующий раздел сайта.
Сервер возобновил свою работу на благо человечества.
В связи с этим скоро на канале youtube и в тематической группе telegram по minecraft будет выложен видеообзор серверного шкафа, используемого мной.
Я понимаю, что некоторым постояльцам неприятен тот факт, что сервер отключен, но не беспокойтесь: как только у меня сделают проводку, сервер снова начнет свою работу на благо человечества.
В связи с этим скоро на канале youtube и в тематической группе telegram по minecraft будет выложен видеообзор серверного шкафа, используемого мной.
Настроен прокси-сервер (хаб со связанными серверами), доступный по следующему IP-адресу: lightbullet.ru (lightbullet.ru:25565).
Теперь почти все сервера связаны между собой через Velocity. На сервер теперь можно зайти с версиями клиентов начиная с 1.20 вплоть до 1.21.8 (на момент написания статьи).
Для всех Paper-серверов доступен возврат обратно в хаб с помощью команды /hub (это пока не работает на Fabric-серверах).
Дополнительную информацию и последние новости можно найти в тематической группе telegram.
Установим необходимые компоненты
user@COMPXX:~$ sudo apt-get install icecast2 ezstream
После установки сервисов необходимо их остановить, если они запущены
user@COMPXX:~$ sudo systemctl stop icecast2.service
Создаем папку для плейлистов
user@COMPXX:~$ sudo mkdir -p /etc/icecast2/playlists
Создаем сам плейлист
user@COMPXX:~$ sudo nano /etc/icecast2/playlists/public.m3u
Пути к звуковым файлам.
Приводим файл настройки icecast2 к следующему виду:
user@COMPXX:~$ sudo nano /etc/icecast2/icecast.xml
<icecast>
<location>Russia</location>
<admin>admin@localhost</admin>
<limits>
<clients>250</clients>
<sources>20</sources>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>changeme</source-password>
<relay-password>changeme</relay-password>
<admin-user>admin</admin-user>
<admin-password>changeme</admin-password>
</authentication>
<hostname>radio.site.ru</hostname>
<listen-socket>
<port>8080</port>
</listen-socket>
<http-headers>
<header name="Access-Control-Allow-Origin" value="*" />
</http-headers>
<fileserve>1</fileserve>
<paths>
<basedir>/usr/share/icecast2</basedir>
<logdir>/var/log/icecast2</logdir>
<webroot>/usr/share/icecast2/web</webroot>
<adminroot>/usr/share/icecast2/admin</adminroot>
<alias source="/" destination="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
</logging>
<security>
<chroot>1</chroot>
<changeowner>
<user>icecast2</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
Запускаем сервис
user@COMPXX:~$ sudo systemctl start icecast2.service
Теперь можно проверить работоспособность сервера, перейдя по ссылке http://radio.site.ru:8080.
Если все настроено верно, то вы увидите страницу icecast2. На данный момент на сервере нет источников вещания: не пугайтесь, так и должно быть.
Создание директории конфигурации и логов для ezstream
user@COMPXX:~$ sudo mkdir -p /etc/ezstream
Создаем конфигурацию для ezstream:
user@COMPXX:~$ sudo nano /etc/ezstream/public.xml
<?xml version="1.0" encoding="UTF-8"?>
<ezstream>
<servers>
<server>
<name>Site Radio</name>
<hostname>localhost</hostname>
<port>8080</port>
<password>changeme</password>
</server>
</servers>
<streams>
<stream>
<server>Site Radio</server>
<mountpoint>/public</mountpoint>
<format>MP3</format>
<shuffle>0</shuffle>
<playlist_program>0</playlist_program>
<intake>Site Public</intake>
<svrinfoname>Site Public</svrinfoname>
<svrinfogenre>Public Music</svrinfogenre>
<svrinfodescription>Public Music</svrinfodescription>
<svrinfobitrate>256</svrinfobitrate>
<svrinfochannels>2</svrinfochannels>
<svrinfosamplerate>44100</svrinfosamplerate>
<svrinfopublic>1</svrinfopublic>
</stream>
</streams>
<intakes>
<intake>
<name>Site Public</name>
<type>playlist</type>
<filename>/etc/icecast2/playlists/public.m3u</filename>
</intake>
</intakes>
</ezstream>
Сменим владельца файла настройки
user@COMPXX:~$ sudo chown -R icecast2:icecast /etc/ezstream/public.xml
Создадим точку запуска сервиса ezstream
user@COMPXX:~$ sudo nano /etc/systemd/system/ezstream_public.service
[Unit]
Description=ezstream_public
After=network.target
Requires=ezstream_public.service
[Service]
User=icecast2
Group=icecast
Type=simple
PIDFile=/etc/ezstream/ezstream.pid
ExecStart=/usr/bin/ezstream -c /etc/ezstream/public.xml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
Обновляем информацио о точках запуска сервисов
user@COMPXX:~$ sudo systemctl daemon-reload
Запускаем созданный сервис
user@COMPXX:~$ sudo systemctl start ezstream_public.service
Если все настроено верно, то перейдя по ссылке http://radio.site.ru:8080/public вы сможете прослушать музыку, которая указана в плейлисте.
Для дополнительных источников вещания необходимо создать файлы настроек ezstream, плейлисты и точки запуска сервиса под каждый источник вещания отдельно.
Для настройки сетевых папок с общим доступом необходимо сначала установить samba:
user@COMPXX:~$ sudo apt-get install samba
Следующее, что необходимо сделать - создать папку для общего доступа (для примера создадим папку /SHARE в корне системы):
user@COMPXX:~$ sudo mkdir -p /SHARE
user@COMPXX:~$ sudo chown -R www-data:www-data /SHARE
user@COMPXX:~$ sudo chmod -R 0775 /SHARE
После этого необходимо изменить настройки в /etc/samba/smb.conf следующим образом:
user@COMPXX:~$ sudo nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[SHARE]
path = /SHARE
guest ok = yes
force user = www-data
browsable = yes
writable = yes
Для применения настроек на лету необходимо перезапустить службы smbd и nmbd:
user@COMPXX:~$ sudo systemctl restart smbd nmbd
После проделанных действий вы можете проверить доступность папки с другого ПК:
Если, перейдя по IP компьютера, вы увидите сетевой ресурс SHARE, значит все сделано правильно.
На этом, собственно, все.
Для установки nginx с поддержкой php, необходимо для начала их установить:
user@COMPXX:~$ sudo apt-get install nginx php php-fpm
Далее необходимо отключить nginx:
user@COMPXX:~$ sudo systemctl stop nginx
Теперь мы отключим стандартные конфигурации:
user@COMPXX:~$ sudo rm -rf /etc/nginx/sites-enabled/*
Следующее, что мы сделаем - создадим папку, где будут храниться страницы (для примера создадим папку /SITE в корне системы):
user@COMPXX:~$ sudo mkdir -p /SITE
user@COMPXX:~$ sudo chown -R www-data:www-data /SITE
user@COMPXX:~$ sudo chown -R 0775 /SITE
Теперь создадим тестовую страницу:
user@COMPXX:~$ nano /SITE/index.php
<?php
phpinfo();
?>
Перед запуском nginx необходимо создать файл настройки:
user@COMPXX:~$ sudo nano /etc/nginx/sites-enabled/site.ru.conf
server {
listen 80;
server_name site.ru;
root /SITE;
index index.php;
location /full {
set $mobile_request 0;
rewrite ^/full(.*)$ $1 break;
}
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
log_not_found off;
}
location /testing {
fastcgi_pass unix:/does/not/exist;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Обратите внимание на следующие строчки:
location ~* \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Версия php у каждого может отличаться, поэтому, для того, чтобы проверить версию php, необходимо выполнить следующую команду:
user@COMPXX:~$ php -v
На экране будет указана версия php (в моем случае - 8.2), собственно ее и указываем в файле конфигурации.
После всех проделанных действий необходимо запустить nginx:
user@COMPXX:~$ sudo systemctl start nginx
Если все сделано правильно, то введя в браузере IP компьютера, на котором запущен nginx, вы увидите страницу конфигурации php.
Теперь вы можете создавать свой сайт внутри папки /SITE.
На этом, собственно, все.