เชคเชฎเชพเชฐเซ‹ เชชเซ‹เชคเชพเชจเซ‹ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ‡เชกเชฟเชฏเซ‹

เช†เชชเชฃเชพเชฎเชพเช‚เชฅเซ€ เช˜เชฃเชพเชจเซ‡ เชธเชตเชพเชฐเซ‡ เชฐเซ‡เชกเชฟเชฏเซ‹ เชธเชพเช‚เชญเชณเชตเชพเชจเซเช‚ เช—เชฎเซ‡ เช›เซ‡. เช…เชจเซ‡ เชชเช›เซ€ เชเช• เชธเชฐเชธ เชธเชตเชพเชฐเซ‡ เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชนเซเช‚ เชธเซเชฅเชพเชจเชฟเช• เชเชซเชเชฎ เชฐเซ‡เชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชถเชจเซ‹ เชธเชพเช‚เชญเชณเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชจเชฅเซ€. เชฐเชธ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เช† เช†เชฆเชค เชนเชพเชจเชฟเช•เชพเชฐเช• เชธเชพเชฌเชฟเชค เชฅเชˆ. เช…เชจเซ‡ เชฎเซ‡เช‚ เชเชซเชเชฎ เชฐเซ€เชธเซ€เชตเชฐเชจเซ‡ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐเชฅเซ€ เชฌเชฆเชฒเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชฎเซ‡เช‚ เชเชกเชชเชฅเซ€ Aliexpress เชชเชฐ เชญเชพเช—เซ‹ เช–เชฐเซ€เชฆเซเชฏเชพ เช…เชจเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซเชฏเซเช‚.

เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เชตเชฟเชถเซ‡. เชฐเซ€เชธเซ€เชตเชฐเชจเซเช‚ เชนเซƒเชฆเชฏ ESP32 เชฎเชพเช‡เช•เซเชฐเซ‹เช•เชจเซเชŸเซเชฐเซ‹เชฒเชฐ เช›เซ‡. KA-เชฐเซ‡เชกเชฟเชฏเซ‹เชฎเชพเช‚เชฅเซ€ เชซเชฐเซเชฎเชตเซ‡เชฐ. เชญเชพเช—เซ‹เชจเซ€ เช•เชฟเช‚เชฎเชค เชฎเชจเซ‡ $12 เช›เซ‡. เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเซ€ เชธเชฐเชณเชคเชพเช เชฎเชจเซ‡ เชคเซ‡เชจเซ‡ เชฅเซ‹เชกเชพ เชฆเชฟเชตเชธเซ‹เชฎเชพเช‚ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ€. เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เชธเซเชฅเชฟเชฐ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. 10 เชฎเชนเชฟเชจเชพเชจเชพ เช•เชพเชฎเชฎเชพเช‚, เชคเซ‡ เชฎเชพเชคเซเชฐ เชฌเซ‡ เชตเช–เชค เชฅเซ€เชœเซ€ เช—เชฏเซเช‚, เช…เชจเซ‡ เชชเช›เซ€ เชฎเชพเชคเซเชฐ เชฎเชพเชฐเชพ เชชเซเชฐเชฏเซ‹เช—เซ‹เชจเซ‡ เช•เชพเชฐเชฃเซ‡. เชเช• เช…เชจเซเช•เซ‚เชณ เช…เชจเซ‡ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชคเชฎเชจเซ‡ เชธเซเชฎเชพเชฐเซเชŸเชซเซ‹เชจ เช…เชจเซ‡ เช•เชฎเซเชชเซเชฏเซเชŸเชฐเชฅเซ€ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชเช• เชถเชฌเซเชฆเชฎเชพเช‚, เช† เชเช• เช…เชฆเซเชญเซเชค เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เช›เซ‡.

เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช›เซ‡. เชชเชฐเช‚เชคเซ เชเช• เชตเชนเซ‡เชฒเซ€ เชธเชตเชพเชฐเซ‡ เชนเซเช‚ เชจเชฟเชทเซเช•เชฐเซเชท เชชเชฐ เช†เชตเซเชฏเซ‹ เช•เซ‡ เชนเชœเชพเชฐเซ‹ เชฐเซ‡เชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชถเชจเซ‹เชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชฐเชธเชชเซเชฐเชฆ เชธเซเชŸเซ‡เชถเชจ เชจเชฅเซ€. เชนเซเช‚ เชœเชพเชนเซ‡เชฐเชพเชคเซ‹ เช…เชจเซ‡ เชชเซเชฐเชธเซเชคเซเชคเช•เชฐเซเชคเชพเช“เชจเซ€ เชฎเซ‚เชฐเซเช– เชฎเชœเชพเช•เชฅเซ€ เชจเชพเชฐเชพเชœ เชนเชคเซ‹. เชธเชคเชค เชเช• เชธเซเชŸเซ‡เชถเชจเชฅเซ€ เชฌเซ€เชœเชพ เชธเซเชŸเซ‡เชถเชจเซ‡ เช•เซ‚เชฆเชตเชพเชจเซเช‚. เชฎเชจเซ‡ Spotify เช…เชจเซ‡ Yandex.Music เช—เชฎเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชฆเซเชƒเช–เชจเซ€ เชตเชพเชค เช เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เชฎเชพเชฐเชพ เชฆเซ‡เชถเชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเชคเชพ เชจเชฅเซ€. เช…เชจเซ‡ เชนเซเช‚ เชคเซ‡เชฎเชจเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เชฆเซเชตเชพเชฐเชพ เชธเชพเช‚เชญเชณเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚.

เชฎเชจเซ‡ เชฎเชพเชฐเซเช‚ เชฌเชพเชณเชชเชฃ เชฏเชพเชฆ เช†เชตเซเชฏเซเช‚. เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชเช• เชŸเซ‡เชช เชฐเซ‡เช•เซ‹เชฐเซเชกเชฐ เช…เชจเซ‡ เชฌเซ‡ เชกเชเชจ เช•เซ‡เชธเซ‡เชŸ เชนเชคเซ€. เชฎเซ‡เช‚ เชฎเชฟเชคเซเชฐเซ‹ เชธเชพเชฅเซ‡ เช•เซ‡เชธเซ‡เชŸเชจเซ€ เช†เชช-เชฒเซ‡ เช•เชฐเซ€. เช…เชจเซ‡ เชคเซ‡ เช…เชฆเซเชญเซเชค เชนเชคเซเช‚. เชฎเซ‡เช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช•เซ‡ เชฎเชพเชฐเซ‡ เชฎเชพเชฐเชพ เช“เชกเชฟเชฏเซ‹ เช†เชฐเซเช•เชพเช‡เชตเซเชธเชจเซ‡ เชซเช•เซเชค เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เชชเชฐ เชธเซเชŸเซเชฐเซ€เชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชฒเชฌเชคเซเชค, เช“เชกเชฟเชฏเซ‹ เชชเซเชฒเซ‡เชฏเชฐ เช…เชฅเชตเชพ เช†เช‡เชชเซ‹เชกเชจเซ‡ เชธเซเชชเซ€เช•เชฐเซเชธ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชตเชฟเช•เชฒเซเชช เช›เซ‡ เช…เชจเซ‡ เชšเชฟเช‚เชคเชพ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เช† เช…เชฎเชพเชฐเซ€ เชฐเซ€เชค เชจเชฅเซ€! เชฎเชจเซ‡ เช•เชจเซ‡เช•เซเชŸเชฟเช‚เช— เช•เชจเซ‡เช•เซเชŸเชฐเซเชธเชจเซ‡ เชจเชซเชฐเชค เช›เซ‡)

เชฎเซ‡เช‚ เชคเซˆเชฏเชพเชฐ เช‰เช•เซ‡เชฒเซ‹ เชถเซ‹เชงเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚. Radio-Tochka.com เชชเชฐเชฅเซ€ เชคเชฎเชพเชฐเซ‹ เชชเซ‹เชคเชพเชจเซ‹ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ‡เชกเชฟเชฏเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชœเชพเชฐเชฎเชพเช‚ เช“เชซเชฐ เช›เซ‡. เชฎเซ‡เช‚ 5 เชฆเชฟเชตเชธ เชธเซเชงเซ€ เชคเซ‡เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซเชฏเซเช‚. เชฎเชพเชฐเชพ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚. เชชเชฐเช‚เชคเซ เช•เชฟเช‚เชฎเชค เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช†เช•เชฐเซเชทเช• เชจ เชนเชคเซ€. เชฎเซ‡เช‚ เช† เชตเชฟเช•เชฒเซเชชเชจเซ‡ เชจเช•เชพเชฐเซ€ เช•เชพเชขเซเชฏเซ‹.

เชฎเซ‡เช‚ เชนเซ‹เชธเซเชŸเชฟเช‚เช— 10 GB เชšเซ‚เช•เชตเซเชฏเซเช‚ เช›เซ‡. เชฎเซ‡เช‚ เชเชตเซ€ เช•เซ‹เชˆ เชตเชธเซเชคเซ เชชเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเช–เชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เชœเซ‡ เชฎเชพเชฐเซ€ mp3 เชซเชพเช‡เชฒเซ‹เชจเชพ เช‘เชกเชฟเชฏเซ‹ เชธเซเชŸเซเชฐเซ€เชฎเชจเซ‡ เชธเซเชŸเซเชฐเซ€เชฎ เช•เชฐเชถเซ‡. เชฎเซ‡เช‚ เชคเซ‡เชจเซ‡ PHP เชฎเชพเช‚ เชฒเช–เชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชฎเซ‡เช‚ เชคเซ‡เชจเซ‡ เชเชกเชชเชฅเซ€ เชฒเช–เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเซเชฏเซเช‚. เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚. เชคเซ‡ เช เช‚เชกเซ€ เชนเชคเซ€! เชชเชฐเช‚เชคเซ เชฅเซ‹เชกเชพ เชฆเชฟเชตเชธเซ‹ เชชเช›เซ€ เชฎเชจเซ‡ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชถเชจ เชคเชฐเชซเชฅเซ€ เชเช• เชชเชคเซเชฐ เชฎเชณเซเชฏเซ‹. เชคเซ‡เชฎเชพเช‚ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชฎเชฟเชจเชฟเชŸเชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพ เช“เชณเช‚เช—เชพเชˆ เช—เชˆ เชนเชคเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชตเชงเซ เชŸเซ‡เชฐเชฟเชซเชฎเชพเช‚ เช…เชชเช—เซเชฐเซ‡เชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€. เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช•เชพเชขเซ€ เชจเชพเช–เชตเซ€ เชชเชกเซ€ เช…เชจเซ‡ เช† เชตเชฟเช•เชฒเซเชช เช›เซ‹เชกเซ€ เชฆเซ€เชงเซ‹.

เช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฅเชฏเซเช‚? เชนเซเช‚ เชฐเซ‡เชกเชฟเชฏเซ‹ เชตเชฟเชจเชพ เชœเซ€เชตเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€. เชœเซ‹ เชคเซ‡เช“ เชคเชฎเชจเซ‡ เช•เซ‹เชˆ เชฌเซ€เชœเชพเชจเชพ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เชชเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชคเชพ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชธเชฐเซเชตเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซเชฏเชพเช‚ เชนเซเช‚ เชฎเชพเชฐเชพ เช†เชคเซเชฎเชพเชจเซ€ เชˆเชšเซเช›เชพ เชชเซเชฐเชฎเชพเชฃเซ‡ เช•เชฐเซ€เชถ.

เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฌเซ‡เชŸเชฐเซ€ เชตเชฟเชจเชพเชจเซ€ เชชเซเชฐเชพเชšเซ€เชจ เชจเซ‡เชŸเชฌเซเช• เช›เซ‡ (CPU - 900 MHz, RAM - 512 Mb). เชตเซƒเชฆเซเชง เชฎเชพเชฃเชธ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ 11 เชตเชฐเซเชทเชจเซ‹ เช›เซ‡. เชธเชฐเซเชตเชฐ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ. เชนเซเช‚ เช‰เชฌเซเชจเซเชŸเซ 12.04 เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเช‚ เช›เซเช‚. เชชเช›เซ€ เชนเซเช‚ Apache2 เช…เชจเซ‡ php 5.3, samba เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเช‚ เช›เซเช‚. เชฎเชพเชฐเซเช‚ เชธเชฐเซเชตเชฐ เชคเซˆเชฏเชพเชฐ เช›เซ‡.

เชฎเซ‡เช‚ Icecast เช…เชœเชฎเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชฎเซ‡เช‚ เชคเซ‡เชจเชพ เชชเชฐ เช˜เชฃเซเช‚ เชฎเชพเชจเชพ เชตเชพเช‚เชšเซเชฏเซเช‚. เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ เชคเซ‡ เชฎเซเชถเซเช•เซ‡เชฒ เชฒเชพเช—เซเชฏเซเช‚. เช…เชจเซ‡ เชฎเซ‡เช‚ PHP เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชธเชพเชฅเซ‡ เชตเชฟเช•เชฒเซเชช เชชเชฐ เชชเชพเช›เชพ เชซเชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เช† เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ‡ เชกเซ€เชฌเช— เช•เชฐเชตเชพเชฎเชพเช‚ เชฅเซ‹เชกเชพ เชฆเชฟเชตเชธเซ‹ เชชเชธเชพเชฐ เชฅเชฏเชพ. เช…เชจเซ‡ เชฌเชงเซเช‚ เชธเชฐเชธ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚. เชชเช›เซ€ เชฎเซ‡เช‚ เชชเซ‹เชกเช•เชพเชธเซเชŸ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชชเชฃ เชฒเช–เซ€. เช…เชจเซ‡ เชฎเชจเซ‡ เชคเซ‡ เชเชŸเชฒเซเช‚ เช—เชฎเซเชฏเซเช‚ เช•เซ‡ เชฎเซ‡เช‚ เชเช• เชจเชพเชจเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชคเซ‡เชจเซ‡ IWScast เช•เชนเซ‡ เช›เซ‡. เช—เซ€เชฅเชฌ เชชเชฐ เชชเซ‹เชธเซเชŸ เช•เชฐเซเชฏเซเช‚.

เชคเชฎเชพเชฐเซ‹ เชชเซ‹เชคเชพเชจเซ‹ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ‡เชกเชฟเชฏเซ‹

เชฌเชงเซเช‚ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡. เชนเซเช‚ mp3 เชซเชพเช‡เชฒเซ‹ เช…เชจเซ‡ index.php เชซเชพเช‡เชฒเชจเซ‡ Apache เชฐเซเชŸ เชซเซ‹เชฒเซเชกเชฐ /var/www/ เชฎเชพเช‚ เช•เซ‰เชชเชฟ เช•เชฐเซเช‚ เช›เซเช‚ เช…เชจเซ‡ เชคเซ‡ เชฐเซ‡เชจเซเชกเชฎ เชฐเซ€เชคเซ‡ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฒเช—เชญเช— 300 เช—เซ€เชคเซ‹ เชฒเช—เชญเช— เช†เช–เชพ เชฆเชฟเชตเชธ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเชพ เช›เซ‡.
index.php เชซเชพเช‡เชฒ เช เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชœ เช›เซ‡. เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชเชฐเซ‡เชฎเชพเช‚ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ MP3 เชซเชพเช‡เชฒเซ‹เชจเชพ เชคเชฎเชพเชฎ เชจเชพเชฎเซ‹ เชตเชพเช‚เชšเซ‡ เช›เซ‡. เช“เชกเชฟเชฏเซ‹ เชธเซเชŸเซเชฐเซ€เชฎ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ MP3 เชซเชพเช‡เชฒเซ‹เชจเชพ เชจเชพเชฎเชจเซ‡ เชฌเชฆเชฒเซ‡ เช›เซ‡. เชเชตเชพ เชธเชฎเชฏเซ‡ เชนเซ‹เชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช—เซ€เชค เชธเชพเช‚เชญเชณเซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชคเซ‡ เช—เชฎเซ‡ เช›เซ‡. เชคเชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‹เชฃ เช—เชพเชฏ เช›เซ‡? เช†เชตเชพ เช•เซ‡เชธ เชฎเชพเชŸเซ‡, เชฒเซ‹เช— log.txt เชฎเชพเช‚ เชธเชพเช‚เชญเชณเซ‡เชฒเชพ เชŸเซเชฐเซ‡เช•เชจเชพ เชจเชพเชฎเชจเซเช‚ เชฐเซ‡เช•เซ‹เชฐเซเชกเชฟเช‚เช— เช›เซ‡
เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช•เซ‹เชก เชชเซ‚เชฐเซเชฃ เช•เชฐเซ‹

<?php
set_time_limit(0);
header('Content-type: audio/mpeg');
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("icy-br: 128 ");
header("icy-name: your name");
header("icy-description: your description"); 
$files = glob("*.mp3");
shuffle($files); //Random on

for ($x=0; $x < count($files);) {
  $filePath =  $files[$x++];
  $bitrate = 128;
  $strContext=stream_context_create(
   array(
     'http'=>array(
       'method' =>'GET',
       'header' => 'Icy-MetaData: 1',
       'header' =>"Accept-language: enrn"
       )
     )
   );
//Save to log 
  $fl = $filePath; 
  $log = date('Y-m-d H:i:s') . ' Song - ' . $fl;
  file_put_contents('log.txt', $log . PHP_EOL, FILE_APPEND);
  $fpOrigin=fopen($filePath, 'rb', false, $strContext);
  while(!feof($fpOrigin)){
   $buffer=fread($fpOrigin, 4096);
   echo $buffer;
   flush();
 }
 fclose($fpOrigin);
}
?>

เชœเซ‹ เชคเชฎเชจเซ‡ เชŸเซเชฐเซ…เช•เซเชธเชจเซ‡ เช•เซเชฐเชฎเชฎเชพเช‚ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ index.php เชฎเชพเช‚ เชฒเชพเช‡เชจเชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

shuffle($files); //Random on

เชชเซ‹เชกเช•เชพเชธเซเชŸ เชฎเชพเชŸเซ‡ เชนเซเช‚ /var/www/podcast/ เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚ เชคเซเชฏเชพเช‚ เชฌเซ€เชœเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸ index.php เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เชชเซ‹เชกเช•เชพเชธเซเชŸ เชŸเซเชฐเซ‡เช• เชฎเซ‡เชฎเซ‹เชฐเชพเช‡เชเซ‡เชถเชจ เช›เซ‡. เช†เช—เชฒเซ€ เชตเช–เชคเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชฐเซ€เชธเซ€เชตเชฐ เชšเชพเชฒเซ เช•เชฐเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เช†เช—เชฒเซเช‚ เชชเซ‹เชกเช•เชพเชธเซเชŸ เชŸเซเชฐเซ‡เช• เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชตเช—เชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชŸเซเชฐเซ‡เช•เชจเซ‹ เชฒเซ‹เช— เชชเชฃ เช›เซ‡.
counter.dat เชซเชพเช‡เชฒเชฎเชพเช‚, เชคเชฎเซ‡ เชŸเซเชฐเซ‡เช• เชจเช‚เชฌเชฐเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชชเซ‹เชกเช•เชพเชธเซเชŸ เชชเซเชฒเซ‡เชฌเซ‡เช• เชถเชฐเซ‚ เชฅเชถเซ‡.

เชชเซ‹เชกเช•เชพเชธเซเชŸเชจเชพ เชธเซเชตเชšเชพเชฒเชฟเชค เชกเชพเช‰เชจเชฒเซ‹เชกเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชชเชพเชฐเซเชธเชฐเซเชธ เชฒเช–เซเชฏเชพ. เชคเซ‡ RSS เชจเชพ เชจเชตเซ€เชจเชคเชฎ 4 เชŸเซเชฐเซ‡เช• เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡ เช›เซ‡. เช† เชฌเชงเซเช‚ เชธเซเชฎเชพเชฐเซเชŸเชซเซ‹เชจ, IPTV เชธเซ‡เชŸ-เชŸเซ‹เชช เชฌเซ‹เช•เซเชธ เช…เชฅเชตเชพ เชฌเซเชฐเชพเช‰เชเชฐเชฎเชพเช‚ เชธเชฐเชธ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.

เชฌเซ€เชœเซ€ เชธเชตเชพเชฐเซ‡ เชฎเชจเซ‡ เชฅเชฏเซเช‚ เช•เซ‡ เชŸเซเชฐเซ‡เช• เชชเชฐ เชชเซเชฒเซ‡เชฌเซ‡เช• เชชเซ‹เชเชฟเชถเชจ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เช–เซ‚เชฌ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡. เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ เชนเชœเซ เชธเซเชงเซ€ เช–เชฌเชฐ เชจเชฅเซ€ เช•เซ‡ PHP เชฎเชพเช‚ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚.

เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ github.com/iwsys/IWScast

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹