Устанавливаем файловый сервер

Создаем папку для файлов на внешнем USB носителе

Создадим на внешнем присоединенном USB носителе папку, в которой будут храниться файлы (в моем случае это файлы баз).

Открываем программу WinSCP, подключаемся к нашему «Подопытному» роутеру. Заходим на присоединенный внешний USB диск для файлов (в моем случае это папка Server_Baz) и нажимаем в любом свободном месте правую клавишу. В появившемся меню выбираем «New», «Directory…» (Создать папку) или же просто нажмем F7.

В появившемся окне зададим название папки «www» и права доступа, установив недостающие галочки как на рисунке ниже (дадим права всем на чтение, запись и редактирование), для создания папки нажимаем «ОК».

После нажатия кнопки «ОК» появится наша созданная пака www.

Далее, в папке www, аналогично, создадим еще одну папку для наших файлов. Так как у меня там будут базы — я назвал свою паку mirror (Зеркало).

В завершении, в папку mirror в программе WinSCP скопируем, для проверки нашего будущего файлового сервера, допустим, музыкальный альбом.

Важно. Дабы избежать некоторых проблем в будущем, копируем названия папок и файлов только на латинице, кириллицу программа WinSCP и роутер не понимают!

Примечание. Не знаю, почему такая низкая скорость записи на USB Flash в программе WinSCP, но факт остается фактом, причем, загрузка процессора «Подопытного» роутера всего 27%…

При чтении с USB Flash в программе WinSCP скорость немного повыше, так там и загрузка микропроцессора роутера на 100% – но тоже не айс…

Установка сервера lighttpd

Устанавливать мы с вами будем легкий и быстрый сервер lighttpd, причем настройка будет в простейшем его виде.

Примечание. Так как я не гуру в устанавливаемых пакетах, я приведу пример того, что необходимо установить, что бы заработал наш файловый сервер — об излишестве пакетов судить Вам. Будет приведен пример списка пакетов для установки, с которыми у меня все прекрасно заработало, а так же настройка необходимых файлов конфигурации сервера. Все это взято с одного уважаемого сайта.

Итак, заходим «Система», «Программное обеспечение» и обновляем список пакетов (интернет на «Подопытном» роутере уже должен быть настроен и подключен).

Копируем и вставляем в окно «Загрузить и установить пакет» следующее строки по порядку, т.е. копируем и вставляем строку, а затем нажимаем «ОК» для установки, ждем завершения установки пакетов и так повторяем 3 раза для каждой строки:

lighttpd lighttpd-mod-cgi lighttpd-mod-access lighttpd-mod-redirect zoneinfo-core
zoneinfo-europe libsqlite3 php5-cgi php5-mod-pdo php5-mod-sqlite php5-mod-sqlite3
php5-mod-gd php5-mod-session php5-mod-json php5-mod-xml php5-mod-dom

Примечание. Можно было вставить и все содержимое строк сразу как будто это всего одна строка, но это уже Вам решать, как Вы будите устанавливать пакеты, по мне так проще построчно. Мало того, если что то при установке пакетов пойдет не так, то сразу станет видно, на каком этапе это произошло.

После установки первой строки увидим следующее содержимое

После установки второй строки и автоматического обновления экрана картина будет такая

Ну и после установки третьей строки пакетов и обновления экрана увидим это

Настройка файла конфигурации сервера lighttpd.conf

Сконфигурируем файл lighttpd.conf нашего файлового сервера – укажем необходимые настройки.
Файл lighttpd.conf находится по пути /etc/lighttpd/lighttpd.conf.
Открывать lighttpd.conf необходимо через программу WinSCP.

Примечание. Если программа WinSCP у Вас была открыта до установки пакетов сервера lighttpd, то ее необходимо закрыть и сделать новое подключение что бы в ней обновились папки.

Итак, щелкаем по файлу lighttpd.conf 2 раза, перед нами откроется подобие блокнота в Windows.

Примечание. Раскомментируем – имеется ввиду, где надо, уберем впереди строки запрещающую выполнение скрипта решетку (будет выделено зеленым). А так же поправим текст необходимых строк.

Делаем необходимые настройки файла lighttpd.conf нашего простейшего файлового сервера по порядку сверху вниз (скриншоты будут сразу после описания части настроек):

1. Удалим решетку в строке server.modules = (
2. Добавим строку без решетки «mod_access»,
3. Удалим решетку в строке «mod_redirect»,
4. Удалим решетку в строке «mod_cgi»,
5. Удалим решетку перед закрывающей скобкой )

Должно получиться так, как на рисунке ниже.

Примечание. Не важно, где от начала строки будет находиться выражение. Хоть вплотную к краю слева, хоть через несколько пробелов, главное, если мы хотим что бы было выполнение, необходимо, убрать или не ставить решетку перед выражением.

6. Меняем место расположения файлов сервера lighttpd с /www/ на /Server_Baz/www/. У Вас, конечно же, будет другой путь, куда Вы смонтировали внешний USB диск для файлов и создали папки для сервера. Ну, а замена адреса сервера необходима для того, что по первому адресу у нас работает веб-морда прошивки OpenWRT. Обратите внимание, путь к папке должен быть обязательно в кавычках.

7. Включим логирование сервера убрав решетку перед строкой server.errorlog = «/var/log/lighttpd/error.log».

8. Добавим поддержку php на сервер, добавив в строку index-file.names = после запятой следующее выражение

«index.php»

9. Укажем порт, который будет слушать наш файловый сервер. Все дало в том, что стандартный 80 порт слушает сервер веб-морды нашего «Подопытного» роутера с прошивкой OpenWRT. Поэтому, тут 2 варианта, либо сменить стандартный порт веб интерфейса прошивки роутера, либо просто изменить порт нашего будущего файлового сервера – что мы и сделаем. На примере я выбрал порт 2221. Уберем решетку и впишем необходимый порт в строке server.port =.

10. Включим листинг для всех каталогов убрав решетку перед строкой.

11. Добавим веб-серверу поддержку php-cgi. Для этого перед строкой cgi.assign = уберем решетку и добавим после запятой следующее содержимое

«.php» => «/usr/bin/php-cgi»

12. После изменения этих строк сохраняем настройки файла lighttpd.conf нажав кнопку «Сохранить» и закрываем файл lighttpd.conf.

Настройка файла конфигурации php.ini

Сконфигурируем файл php.ini нашего файлового сервера – укажем необходимые настройки.
Файл php.ini находится по пути /etc/php.ini.
Открывать php.ini необходимо через программу WinSCP.

1. Укажем путь к папке сервера, изменив содержимое строки doc_root = (строка находится примерно в середине всего текста файла php.ini). В моем случае это будет папка по пути /Server_Baz/www.

Повторюсь, путь к папке должен быть в «Кавычках».

2. Далее, чуть ниже по тексту файла php.ini после редактирования пути к серверу, раскомментируем строки, убрав точку с запятой перед строкой в следующих строках:

extension=gd.so
extension=mysql.so
extension=pdo.so
extension=session.so
extension=sqlite.so
extension=sqlite3.so

3. Сохраним настройки файла php.ini нашего файлового сервера нажав кнопку «Save» (Сохранить).

На этом, настройка нашего файлового сервера закончена.

Включим наш файловый сервер и проверим его работу

Заходим в OpenWRT во вкладку по пути «Система», «Загрузки» и щелкаем левой клавишей мышки в строке lighttpd по кнопке «Отключено».

Скрипт lighttpd включится.

Сохраним настройки и перезагрузим «Подопытный» роутер любым способом.

Итак, в браузере введем ip адрес роутера и укажем порт. У меня ip адрес роутера 192.168.0.150, а порт как Вы помните, я задал 2221. После перехода по ссылке 192.168.0.150:2221 мы увидим подключение к серверу.

Нажмем каталог DJ Vint и выберем любую песню. В появившемся окне нажмем открыть.

Ву-а-ля все работает – песня поет…

Для проверки нашего сервера через сеть интернет воспользуемся услугой сервиса NO-IP, но об этом я расскажу в следующей статье…