Speedtest у себя на сервере

Версия для печатиОтправить другуPDF version

Думаю каждый пользователь Интернета хоть раз в жизни измерял скорость своего канала Internet. Способов измерения есть довольно много...

Например, вот здесь находится один из тестов скорости соединения, позволяющий измерить скорость download/upload от Вас до множества точек по всему миру. Да, согласен, погрешность иногда он дает неплохую (именно из-за этого пользуюсь другими методами)... Спишем это на известность сервиса, и на загруженость маршрутизаторов.

Но мало кто знает, что похожий сервис можно разместить у себя на сервере. Условия - работающий веб-сервер с поддержкой PHP. Что ж... Нужно проверить как это работает.

Создадим рабочий каталог и выставим необходимые права:

# mkdir /usr/local/www/speedtest
# chown www:www /usr/local/www/speedtest
# cd /usr/local/www/speedtest

1. Скачиваем архив теста с сайта.

Дистрибутив можно загрузить на странице проекта: http://speedtest.net/mini.php. Кстати, здесь же присутствует краткая инструкция по установке и настройке

# wget http://c.speedtest.net/mini/mini.zip
--2011-12-04 16:21:41--  http://c.speedtest.net/mini/mini.zip
Распознаётся c.speedtest.net... 93.184.221.133
Устанавливается соединение с c.speedtest.net|93.184.221.133|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 98993097 (94M) [application/zip]
Сохраняется в каталог: `mini.zip'.
 
100%[===================================================>] 98 993 097   716K/s   в 2m 24s
 
2011-12-04 16:24:06 (672 KB/s) - `mini.zip' сохранён [98993097/98993097]

2. Распаковываем архив. В нашем случае это zip-файл. Поэтому используем утилиту unzip. Если у Вас она не установлена, то установить ее можно из портов (/usr/ports/archivers/unzip).

# unzip mini.zip
Archive:  mini.zip
  inflating: crossdomain.xml
  inflating: index-asp.html
  inflating: index-aspx.html
  inflating: index-php.html
   creating: speedtest/
  inflating: speedtest/random2000x2000.jpg
  inflating: speedtest/upload.asp
  inflating: speedtest/random500x500.jpg
  inflating: speedtest/upload.aspx
  inflating: speedtest/upload.php
  inflating: speedtest/random1000x1000.jpg
  inflating: speedtest/swfobject.js
  inflating: speedtest/random750x750.jpg
  inflating: speedtest/random350x350.jpg
 extracting: speedtest/latency.txt
  inflating: speedtest/random1500x1500.jpg
  inflating: speedtest.swf
  inflating: troubleshooting.txt
  inflating: speedtest/random4000x4000.jpg
  inflating: speedtest/random2500x2500.jpg
  inflating: speedtest/random3500x3500.jpg
  inflating: speedtest/random3000x3000.jpg

3. Необходимо переименовать index-php.html в index.html (кстати, исходя из предложеных расширений, поддерживаются также asp/asp.net)

# mv index-php.html index.html

4. "Поправим" конфигурационный файл Apache. Добавим в в /usr/local/etc/apache22/httpd.conf (в секцию alias_module) такие строки:

Alias /speedtest "/usr/local/www/speedtest"
<Directory "/usr/local/www/speedtest">
  DirectoryIndex index.html
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

 Проверяем, не допустили ли мы ошибок при редактировании и перезапускаем Apache:

# apachectl configtest
Syntax OK
# apachectl graceful

Результат этих действий можно просмотреть здесь (необходима поддержка Flash в браузере), как раз и скорость можно протестировать

Ваша оценка: Нет Средняя: 3.4 (9 голосов)

Уважаемый, спасибо вам за

Уважаемый, спасибо вам за статью.

НЕ подскажете, что может быть.

Поставил speedtest mini, он запускается, но при начале тестирования выдает ошибку

Upload test returned an error while trying to read upload file

Я еще не встречал такой

Я еще не встречал такой ошибки. Но по тексту понятно - возникает ошибка чтения файла.

У меня будет встечный вопрос - как расставим систему координат? Аплоад - это со стороны клиента? Если да, то тогда, как вариант, не хватает прав для создания временного файла на сервере.

Еще одна мысль - срабатывают ограничения PHP. Попробуйте добавить файл .htaccess в каталог /usr/local/www/speedtest следующего содержания:

php_value max_execution_time 600
php_value memory_limit 200M
php_value post_max_size 500M
php_value upload_max_filesize 500M

Также посмотрите лог-файлы Apache, возможно тогда что-то прояснится.

привет. вот вчера обновил

привет. вот вчера обновил минитест (кстати, Мафф, тебе тоже надо обновить его :)   )

даунлоад тестит, а как токо доходит до аплоада - выдает вот как раз эту ошибку ("...an error while trying to read the upload file"). До вчерашнего обновления минитеста он у меня без проблем работал пару лет уже, тестирую скорость до сервера из разных сегментов сети). Изменений в апаче не делалось, думаю это проблема именно со стороны минитеста.

Новая версия!

Обновил. Все работает без проблем.

Твой speedtest доступен из Сети, или только из локалки? Я мог бы потестить, и сообщить результат.

У меня была таже ошибка на

У меня была таже ошибка на Фре, ставил из портов, все настройки по умолчанию.

Нужно скопировать файл upload.php из папки /usr/local/www/speedtest-mini/speedtest в папку /usr/local/www/speedtest-mini/

Круто... Уже и портировали. А

Круто... Уже и портировали.

А статья написана по установке дистрибутива, загруженного с сайта Speedtest-a.

Please update your client.

привет. спасибо за статью. все сделал как тут написано. но при открытии станицы выдает  Please update your client.

на винде обновил флеш. не помогло :( 

Дело именно в клиентской

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

Проблему решил дописав в

Проблему решил дописав в speedtest.conf вот такую строку:

 

AddHandler application/x-httpd-php .php

 

Актуально для Apache 2.X

На apache 1.X все завелось без проблем.

 

/Marshall

Интересно, где ты его взял?

Интересно, где ты его взял? speedtest.conf ? Самим его создавать? Куда прикрутить?

Исходя из истории

Исходя из истории комментов, можно понять, что speedtest.conf - это название конфигурационного файла, который инклюдится в основной файл конфигурации Apache - httpd.conf. Создается он самостоятельно, и наполняется содержимым в зависимости от необходимости (отталкиваясь от глобальных настроек в  httpd.conf).

При написании статьи, я отталкивался от того, что связка Apache+PHP уже настроена и корректно работает. А добавление строки

AddHandler application/x-httpd-php .php

необходимо при интеграции Apache и PHP. Просмотреть статью о настройке связки Apache и PHP можно по этой ссылке.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература