Open Source Speedtest

Posted on December 13th, 2006 in by Brandon

Fancy Speed Test


  • Upload and download bandwidth tests
  • Interactive user experience
  • Very customizable
  • Saves results in a database
  • Restrict to particular networks / IP Addresses
  • Customizable look
  • Customizable maximum file sizes

Sample Speedtest

Example test here


speedtest-1.1.zipFancy Speed Test Version 1.1 (.zip format)
speedtest-1.1.tar.gzFancy Speed Test Version 1.1 (.tar.gz format)

Installation Instructions

Detailed installation instructions can viewed online. The same instructions are available inside the downloadable archive named INSTALL


Speed test results seem accurate up to about 10 Mbps.  At speeds higher than that, the large chunks of data start to slow down the JavaScript engine on the client.


  • The download portion of this test was loosely based on an old speedtest by Gambit Design
  • The upload portion of the test was loosely based on MegaUpload

94 Responses to 'Open Source Speedtest'

Subscribe to comments with RSS or TrackBack to 'Open Source Speedtest'.

  1. TJ Burbank said,

    on January 12th, 2007 at 11:41 pm

    Awesome software with easy setup and excellent operation.

    Thanks for all your work on this project.

    Still haven’t got the upload portion of it working, but haven’t spent much time on it.


  2. Geoff Eaton said,

    on March 5th, 2007 at 9:22 am

    Hi there,

    I’m trying to install this software but I keep getting the internal server error message even though I think I’ve done everything in your instructions. Is there a common dummies mistake I’m making or an obvious pointer I’m missing?

  3. Kittivud said,

    on April 17th, 2007 at 4:15 pm

    Hello developer,

    thank you for nice work.. It’s very helpful for my project. I encountered some installation problem.before make it work.

    I use Apache 2.2 / AppServ 2.5.7. At the first installation, Fancy speed test keep error 500 during executon. Then, I have to install Active Perl ( using the installation guide line of After correctly installtion Active Perl, it works very nicely. // Kittivud.

  4. Siew, Wing Loon said,

    on June 14th, 2007 at 1:55 am

    Hi all,

    It is an awesome piece of software…I got mine working in few minutes (both download and upload). Cool, 😀

    – Wing Loon

  5. Milton said,

    on July 2nd, 2007 at 4:49 am

    With my old Xitami+ActivePerl server, I must multiply upload time tv_interval by 5000 to get the correct Upload Speed measured.

  6. erik said,

    on July 6th, 2007 at 4:07 am

    still not working, the browser keep saying error 500. here’s my apache log
    [Fri Jul 06 16:04:55 2007] [error] [client] Bareword found where operator expected at E:/web/speedtest/cgi-bin/upload.cgi line 19, near “/web/speedtest”\r, referer:
    [Fri Jul 06 16:04:55 2007] [error] [client] \t(Missing operator before peedtest?)\r, referer:
    [Fri Jul 06 16:04:55 2007] [error] [client] syntax error at E:/web/speedtest/cgi-bin/upload.cgi line 19, near “E:”\r, referer:
    [Fri Jul 06 16:04:55 2007] [error] [client] Execution of E:/web/speedtest/cgi-bin/upload.cgi aborted due to compilation errors.\r, referer:

  7. Brian W said,

    on September 4th, 2007 at 9:11 pm

    Download test works fine. Upload bar graph goes to about 80% mark and then hangs.

    Running it on a Linux Apache 2 system.

    Any ideas?


  8. Brian W said,

    on September 4th, 2007 at 10:08 pm

    Answering my own question: I had perms set wrong on the logfile.

  9. Dennis H said,

    on October 15th, 2007 at 10:28 am

    I’ve got the script working on the download side. However my upload doesn’t register and keeps causing:
    “Division by zero in /home/XXXXX/public_html/test/results.php” on line 115 & 110 and my upspeed only registers as “undefined” when the auto size option is enabled. This causes the Upload to use the max 5000kps test and register no results.

    I have all permissions set properly and am running upload.cgi out my my cgi-bin and I have the Time::HiRes perl module installed and enabled on my server. I have the upload.cgi and speedtest.cfg edited properly. I know this script works, I’ve seen it many times online and it’s fully functional. I just don’t know why it’s not working on either of my hosted servers (same provider though).

    I am on a hosted linux server with PHP 5.2.4 and Time::HiRes version 1.9708. Just curious if anyone else had the same issue and found a resolution. Much appreciated if anyone would share.

  10. Brandon said,

    on October 15th, 2007 at 10:32 am


    Do you have access to your Apache error log? That usually contains some
    details that might help pinpoint the problem.

    Brandon Checketts

  11. jz said,

    on October 31st, 2007 at 11:55 am

    results are inaccurate:

    Your test results say:
    Download Speed = 2.63 Mbps
    Upload Speed = 391.63 kbps

    True results are:
    Download Speed = 13321 Kb/s
    Upload Speed = 608 kb/s

  12. GigaNet said,

    on November 9th, 2007 at 7:16 pm

    I followed the instructions here for installation of SpeedTest onto a Ubuntu 7.10 server running Apache2 and PHP5 with Time::HiRes installed.
    When I attempt to access the bandwidth test I continue receiving 500’s.

    I was concerned that the files: header.html, footer.html, & welcome.html DO NOT EXIST!
    I thought those missing files could cause the 500’s so I created those files but still no go….

    Orignally ‘upload.cgi’ was located in ‘/var/www/web1/web/speedtest/’.
    While in this location if I ran ‘perl -x upload.cgi’ I would receive no errors no nothing- had to CTRL-C to return to the CL.

    So I decided re-locate ‘upload.cgi’ to /var/www/web1/cgi-bin/’.

    Below is my setting within ‘upload.cgi’ pointing to ‘speedtest.cfg’.
    [code]my $config_file = “/var/www/web1/web/speedtest/speedtest.cfg”;[/code]

    My settings within ‘speedtest.cfg” are:

    [code]base_url =

    upload_url =

    image_path = /var/www/web1/web/speedtest/

    logfile /var/log/speedtest.log

    I have also created the MySQL db using PHPMyAdmin and added the table.

    Defined the db name and credentials within ‘speedtest.cfg’ but I continue to receive 500’s.
    Likewise with ‘upload.cgi’ living in ‘cgi-bin’ when I run ‘perl -x upload.cgi’ no errors no response- CTRL-C to access CL again.

    If anyone could help me with some incite or possibly tell me what is the leading cause of failure I would appreciate it greatly.


  13. GigaNet said,

    on November 10th, 2007 at 12:45 pm

    I found the problem!

    After spending too much time running commands in perl and receiving absolutely no errors I decided something a bit more bold was required to make this app work on my server!

    I relocated the speedtest files from the dir ‘speedtest’ into the root web-werver dir- this due to the fact that virtually ALL CGI’s returned 500’s from the dir ‘speedtest, found that out with a hello world.cgi’
    Next I had to rename some files which were incorrectly named:
    ‘results.php > speedtestresults.php’
    ‘download.php > speedtestdownload.php’

    In all a pretty cool little tool, I wonder is Brandon is actually testing people’s abilities with the mis-named files?

    Thank you for the script!


  14. John said,

    on November 28th, 2007 at 3:31 pm

    I installed the speedtest onto a Centos web sever running Apache 2 and PHP5, but I could not get the upload portion to run. I put the upload.cgi file in the cgi-bin, ran the test, and only got the upload.cgi text file in the web browser. For some reason the system does not want to execute the upload.cgi file.

    Here is what I changed in speedtest.cfg

    base_url = http:///speedtest/

    upload_url = http://cgi-bin/upload.cgi

    image_path = /speedtest/

    This is what I changed in upload.cgi:

    my $config_file = “/speedtest/speedtest.cfg”;

    Can someone please give me some suggestions on what I could be doing wrong.

    Thank You!

  15. Brandon said,

    on November 28th, 2007 at 7:12 pm


    It sounds like your web server isn’t configured to execute the programs in the cgi-bin directory, and is instead just displaying their contents. Their are many ways to fix this, depending on how your web server is configured. The simplest would be to to create a .htaccess file with the contents:

    Options +ExecCGI

    That may or may not be allowed, depending on how tight permissions on the web server are. In some cases you may have to modify the apache configuration file, and add something like this:

    <directory “/path/to/your/speedtest”>
    Options +ExecCGI

    Brandon Checketts

  16. John said,

    on November 30th, 2007 at 1:24 pm

    I added the following to my apache configuarion file:

    Options +ExecCGI

    However, I am still getting the same result; What else do you think it could be? Thanks for your help.

  17. Justin Wilson said,

    on December 4th, 2007 at 10:49 am

    I am getting the following errors:
    [Tue Dec 04 10:48:51 2007] [error] [client] PHP Warning: Division by zero in /home/web/htdocs/speedtest/download.php on line 76, referer:
    [Tue Dec 04 10:48:54 2007] [error] [client] PHP Warning: Division by zero in /home/web/htdocs/speedtest/download.php on line 76, referer:
    [Tue Dec 04 10:48:54 2007] [error] [client] ModSecurity: Output filter: Response body too large (over limit of 524288, total length not known). [hostname “”] [uri “/speedtest/download.php?downspeed=771.4&downtime=1.062&downsize=100&auto_size=1&uptime=0.00&upsize=51.412109375&upspeed=undefined”] [unique_id “1YiXtUHdQwcAAEvxP@8AAAAN”]

  18. Chris said,

    on December 13th, 2007 at 1:41 pm


    This is a nice tool – I installed and it seems to be working – but somehow the upload speed cannot be correct, I ran a couple of times on my LAN and get speeds between 500-600 – would be good if that is the case, but I don’t think so -what could be the reason for this problem?

    I don’t get any errors in apache error log nor from your tool.

    any help is appreciated.

  19. Chris said,

    on December 14th, 2007 at 5:14 am

    it seems that no upload is done at all, download works fine – any guess where the problem could be?


  20. John said,

    on December 14th, 2007 at 1:10 pm


    Do you know what would cause this error?

    A critical error occurred: Unable to read configuration file: /speedtest/speedtest.cfg

  21. Antu said,

    on December 14th, 2007 at 5:26 pm


    I am getting error in apache error log

    PHP Notice: ob_flush(): failed to flush buffer. No buffer to flush. in /var/www/html/download.php on line 108.

  22. John said,

    on January 4th, 2008 at 10:01 am

    What operating system did you use run the speed test?

  23. Floxxx said,

    on January 5th, 2008 at 5:43 pm

    Hi, i’m trying to get your speedtest up and running, however the timing seems to be off.
    I have the upload amount set to 2000 kb, but the elapsed time shows me 4 ms, basically giving me insane upload speeds. I added some debug info to upload.cgi, and it gave me this:

    2008 004 16:37:57 Starting to read
    2008 004 16:37:57 len is 2125370
    2008 004 16:37:57 Starttime: 1199572677 576099
    2008 004 16:37:57 Endtime: 1199572677 580885
    2008 004 16:37:57 Done reading
    2008 004 16:37:57 $upload_size is 2075.556640625
    2008 004 16:37:57 $bytes_read is 2125370
    2008 004 16:37:57 $elapsed is 0.004786
    2008 004 16:37:57 $upload_speed is 3469380.09

    any idea how i can solve this?

    Running on CentOS4 with LiteSpeed btw.

  24. Kittivud said,

    on January 18th, 2008 at 12:49 pm

    Dear John,

    I experienced the same problem of your (upload cgi cannot execute). I use Apache 2.2 and php 5 (window xp). To solve my problem, I am needed that to install ‘Active Perl’. You can find software and installation guid from After correctly installtion Active Perl, My speed test works nicely. Thank you Brandon for this software.

  25. Ljubomir said,

    on January 24th, 2008 at 9:34 am


    I am trying to run your application on IIS 5.1. The download test runs smootly, but when I attempt to run the upload test I keep receiving a Cgi timeout message. it doesn’t help if I increase the timeout period for Cgi.

    Can I run this application on IIS at all or it can be run only on Apache?

    I am using Active Perl and PHP5.

    Thanks in advance

  26. Ljubomir said,

    on January 25th, 2008 at 8:12 am


    Thank you for the quick response.I took your advice and ran the application on apache 2.2. But, the following message keeps showing:

    Strict Standards: Creating default object from empty value in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\phptest\common.php on line 26

    Should I change something in the code?


  27. Jeremi said,

    on February 7th, 2008 at 5:14 am

    Everything is working fine expect that the progress bars during uploading/downloading aren’t shown. pretty_version is set to 1 and I can see the progress bars if I use your example speed test server.

    No error are shows in apache log.

    Thanks in advance

  28. Matt said,

    on February 25th, 2008 at 11:32 pm

    Very nice script. I copied the files and setup apache and it worked. Of coarse I needed to setup file rights, install php, etc…
    I verified the script gets accurate data by comparing against several other internet speed tests.

    Would be nice if I could get it to work across the LAN (100Mb and Gb) but I needed it to test broadband connectivity to our headquarters via IPSEC. For this it works great!!


  29. Carlos said,

    on March 20th, 2008 at 11:19 am

    I’m trying to install this, but at the end only shows the content of upload.cgi:

    ## Fancy Speed Test – Easily measure your upload and download speeds
    ## Home Page:
    ## Author: Brandon Checketts
    ## File: upload.cgi
    ## Version: 1.1
    ## Date: 2006-02-06
    ## Purpose: Time the upload progress, forward to results.php (or back to
    ## download.php if using auto_size)

    use strict;
    use File::Basename; ## for dirname();
    use Time::HiRes qw(gettimeofday tv_interval);

    Any ideas? Thanks

  30. on April 23rd, 2008 at 2:17 am

    This sounds like a cool tool, but when I run I get
    HTTP Error 405 – The HTTP verb used to access this page is not allowed.
    Internet Information Services (IIS)

    I have tried several things but no luck.

  31. Brandon said,

    on April 24th, 2008 at 11:40 am

    Yodi, It looks like an HTTP 405 Error is your server complaining that the POST request is not recognized? I’m familiar with IIS, but this page has a little information about script mapping, which sound like it is the cause:

    An HTTP POST is a pretty common operation, and I’m not sure why it would not work by default.

  32. Brandon said,

    on May 1st, 2008 at 10:54 am

    @carlos – You need to configure your web server to execute upload.cgi rather than just displaying it. The process for this varies widely by web server. Apache is usually configured semi-correctly, but IIS or other servers might take some tweaking

  33. anyone said,

    on June 2nd, 2008 at 12:59 pm

    I found this website by accident and tested the Speed-Test.
    I got comepletely wrong speed-values (too high).


  34. beru said,

    on July 2nd, 2008 at 11:16 pm

    i’ve install speed test, but i’ve error:
    couldn’t create child process: 720003: upload.cgi
    can somebody help me with this error?

  35. Greg said,

    on July 3rd, 2008 at 12:33 pm

    Great tool. I very much appreciate the time that it took to create this. Thanks for an excellent tool.

  36. Jelle said,

    on July 27th, 2008 at 9:31 am


    First of all, thanks for creating this application, was looking for something basic like this.

    However, i have a problem executing the CGI script, it times out…

    When i start the test the download bar reaches 100%, the upload bar reaches 100% but nothing loads after that, except for a CGI timeout error after some time.

    I’m running IIS 6.0 with basicaly every script extension installed and working. Any idea what causes the timeout?

    Thanks in advance

  37. Brandon said,

    on July 27th, 2008 at 4:22 pm


    I’ve never had an IIS server to test on, but I would suggest looking for any log files generated by the server to see if they hint at what the problem might be.

  38. Sanjay Tomar said,

    on July 31st, 2008 at 6:04 am

    The server encountered an internal error and was unable to complete your request.

    Error message:
    couldn’t create child process: 720003: upload.cgi

    If you think this is a server error,

    why am I getting this error. can you help me to sort this out.

    appreciate your help and support.

  39. Sanjay Tomar said,

    on July 31st, 2008 at 6:39 am

    Hi there,

    I have tried to run perl on upload.cgi and I’m getting below mentioned error, any thoughts.

    \htdocs\speedtest>perl -x upload.cgi
    Can’t locate in @INC (@INC contains: .) at upload.cgi line 12.
    BEGIN failed–compilation aborted at upload.cgi line 12.

  40. Brandon said,

    on July 31st, 2008 at 7:57 am


    The problem is probably the path available for perl. Typically the modules are in some directory like c:\perl\modules, but your path only includes the current directory (@INC contains: .) . You could research how to modify the path, or just add something before the ‘use strict’ line that adds the correct directory to your modules to @INC:

    push($inc, “c:\perl\modules”);

    (Note that you may have to double escape the backslashes)

  41. Todd said,

    on August 20th, 2008 at 4:35 pm

    Very handy, thanks!

  42. azhar said,

    on August 27th, 2008 at 11:04 am

    My upload speed comes out wrong. It starts doing the upload and stops half way through and goes to the results :S

  43. Brandon said,

    on August 27th, 2008 at 11:20 am


    The graph for the upload is just an estimate, and your upload is probably finishing faster than it has estimated.

  44. baldy said,

    on August 30th, 2008 at 7:44 pm

    This is an excellent script! working on trying to automate a call to it so that I can track daily statistics of internet speed. Will post if I figure out a way to do it.

  45. on October 22nd, 2008 at 10:36 am

    Question: What determines the file size used for testing?
    We are mainly using this test on our wireless network.
    It seems the file size changes in direct proportion to signal strenght. Possibly adjusting for packet loss is this the case?

  46. Brandon said,

    on October 24th, 2008 at 4:43 pm


    It does a small initial download/upload test to get a rough idea of the speed. Then it calculates the file sizes to use so that the ‘real’ test will take around 16 seconds.

    The initial download/upload size is set to 50k down and 10k up, although that can be changed in the config file.

    I don’t have any magical reason for using those sizes/times. I think I did some trial and error when trying to decide on some appropriate numbers, and it seems that it has worked out well.

    I was using this initially in a wireless network as well, so it should be pretty well suited for you.

  47. dodi said,

    on November 12th, 2008 at 5:12 am

    I managed to install and run the script flawlessly, however I observed my download results were inaccurate (too low when compared with other speed test script installed on the same server). Upload results seems accurate.

    I’ve checked the config file but find no clue where to tweak the script. Help is much appreciated. TIA.
    what could be the reason

  48. Brandon said,

    on November 12th, 2008 at 9:40 pm

    @dodi – I’ve generally had pretty accurate results for speeds up to about 5 Mbps. Between 5-15 Mbps is in the right ballpark, and faster than that, the browser has trouble keeping up, so it reports it as slower than it really is.

  49. Rob said,

    on November 14th, 2008 at 3:34 pm

    So, I have two of these that where active and working – but for some reason – it has just stopped working.
    It seems to just stop on the download.php page – My MAC shows no errors – but my PC shows errors on line 933 – object expected, line 1758 – object expected, and line 1764 char5, object expected. This is the case on two different servers.
    Looking at the source – it looks like it is the payload.js file that the browser is expecting something from. Any ideas on this? Like some sort of PHP update issues? Nothing in the apache error log –

  50. Rob said,

    on November 14th, 2008 at 9:03 pm

    Just a quick update – I have found that the header.html file will cause some weird issues if there is bad coding in it – so BeWare!!! – May help someone else – I was trying to get some tables to work in it – but it may have freaked out some other code.

  51. Brandon said,

    on November 14th, 2008 at 9:06 pm

    @Rob – I would guess that if there is a javascript syntax error anywhere in the header, it stops the javascript from continuing to execute on the rest of the page, which would obviously break the speedtest. Good catch.

  52. dodi said,

    on November 16th, 2008 at 1:01 pm

    you’re right, I’ve got no problem with download results for speed below 1Mbps (typical ADSL access), only the test in LAN (at office) give inaccurate download readings.

    If somebody know a way to overcome this, do share it here.

  53. BORIN said,

    on December 15th, 2008 at 9:11 pm


    I install the speed test in my local server Fedora Core 4 with Perl 5.8.x. and Apache/2.0.54. I could not get the upload work and got the 500 Internal Server Error.

    Please advice on this issue.


  54. BORIN said,

    on January 5th, 2009 at 8:30 pm

    Hi all,

    Could anyone help me to get this script working? So far, I could not get it work at all on my server.


  55. Yves said,

    on March 4th, 2009 at 2:40 pm

    How is the log file extension? txt?


  56. dave said,

    on March 26th, 2009 at 7:08 pm

    Works great!

    Ran into a couple minor issues:
    Base URL needs to end in “/”. If you put “”, a script directs your browser to “”

    Someone above said this was a problem with misnamed files – it’s not, it’s how a script handled the base URL when trying to get the properly named file. Renaming the file will work, until you move speedtest to a folder with a different name.

  57. on April 13th, 2009 at 10:55 am

    Howdy Brandon. I’m checking out your Speedtest app and it’s exactly what I’m looking for! I know you’re intending for this to be open source, but is there a particular license you assume is in effect here?

    I’m interested in using it at work for commercial purposes.


  58. Brandon said,

    on April 13th, 2009 at 3:08 pm

    @Brooks – The license is GNU GPLv3.


  59. David said,

    on April 24th, 2009 at 9:31 am

    Is there anything special with the payload.js file?

    That seems to be the reason why it is inaccurate. I’m trying to fix that but I can not get around the payload.js file every time I try to change it, the progress bar then stops working.

    Is the payload.js like jquery, mootools, prototype etc. js library or something?

    Or is it just some random file you base64ed?


  60. Brandon said,

    on April 24th, 2009 at 9:44 am


    It has been a while since I have written this, but IIRC for some reason the file has to have slashes at the end of each line. It just uses raw javascript, no 3rd party libraries. If I was to rewrite it today (something I keep intending to do, but never have time to), I would do it with jquery.

  61. edgood1 said,

    on July 24th, 2009 at 1:24 pm

    I second the fact that the results are not accurate at all…. if you disable the upload test, your download speed with appear to multiply by 10.

    something is very off with the calculations here.

  62. rick said,

    on August 28th, 2009 at 11:45 am

    Hello I’m giving this a try on the following:
    WinXP Pro
    IIS 5.1
    ActivePerl 5.10.1 Build 1006
    PHP 5.3.0

    I Unzipped into the default c:\Inetpub\ directory.
    Configured base_url and upload_url with &
    Configured directory for scripts & executables

    After beginning download from index.php by clicking the ‘start test’ button it hangs with message ‘Calculating appropriate file sizes for testing’. Then it eventually times out.

    Does anyone have a working IIS configuration?

  63. Seb est la said,

    on October 13th, 2009 at 12:34 pm


    That script works very well.
    I’ve installed it in less than 45min.

    Including template customization.

    Thanks again.

  64. dmitry said,

    on November 17th, 2009 at 6:59 am

    Big thanks! After a lot of googling I found this speedtest and realized that it completely covered my needs.

  65. dmitry said,

    on November 18th, 2009 at 3:59 am

    Fancy Speed Test returns slightly higher results than real if gzip compresion enabled on web server. That is no problem, placing “BrowserMatch .* no-gzip” resolves the issue.

  66. ab rocket said,

    on December 29th, 2009 at 3:24 pm

    if you’re running XAMPP on Windows, as was my case, be sure to replace: “#!/usr/bin/perl -w
    at the the top of your UPLOAD.CGI file with:

  67. on April 29th, 2010 at 11:01 am

    […] Open Source Speed Test Tool – Fancy Speed Test […]

  68. franclevy said,

    on September 20th, 2010 at 2:37 pm

    Very good tool just what I was looking for. After some setbacks with the execution of upload.cgi this runs smoothly, but I do not give any speed increase, but if the download speed.
    The test file I worked without problems tiempo.cgi
    I have a server with
    Centos – Apache2 – PHP5 – Pelras installed
    Copy the apache error log

    [Mon Sep 20 15:19:07 2010] [error] [client Mi IP] PHP Warning: Division by zero in /Uno/test/pruebas/speedtest/results.php on line 110, referer: http://mi_sitio/pruebas/speedtest//download.php
    [Mon Sep 20 15:19:07 2010] [error] [client MI IP] PHP Warning: Division by zero in /Uno/test/pruebas/speedtest/results.php on line 110, referer: http://mi_sitio/pruebas/speedtest//download.php
    [Mon Sep 20 15:19:07 2010] [error] [client MI IP] PHP Warning: Division by zero in /Uno/test/pruebas/speedtest/results.php on line 110, referer: http://mi_sitio/pruebas/speedtest//download.php
    [Mon Sep 20 15:19:07 2010] [error] [client MI IP] PHP Warning: Division by zero in /Uno/test/pruebas/speedtest/results.php on line 110, referer: http://mi_sitio/pruebas/speedtest//download.php
    [Mon Sep 20 15:19:07 2010] [error] [client MI IP] PHP Warning: Division by zero in /Uno/test/pruebas/speedtest/results.php on line 110, referer: http://mi_sitio/pruebas/speedtest//download.php
    [Mon Sep 20 15:19:07 2010] [error] [client MI IP] PHP Warning: Division by zero in /Uno/test/pruebas/speedtest/results.php on line 115, referer: http://mi_sitio/pruebas/speedtest//download.php

  69. harker said,

    on September 22nd, 2010 at 3:37 am

    this is awesome,
    its runing and working..
    but how to make sure that this is accurate ?
    i try many times and the result show randomly

  70. D said,

    on September 27th, 2010 at 4:59 pm

    Can you post an example for using the ‘Allow’ and ‘Disallow’ sections of the config file? Thanks, -D

  71. on December 17th, 2010 at 7:07 am

    1). EDIT /etc/httpd/conf/httpd.conf :

    ScriptAlias /speedtest/ “/home/speedtest/public_html/”
    Alias /speedtest-image/ “/home/speedtest/public_html/”

    Options +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all

    2). EDIT /home/speedtest/public_html/speedtest.cfg:
    image_path = /speedtest-image/

    *Restart “httpd” , test your site :)

  72. Prothero said,

    on January 30th, 2011 at 5:50 pm

    What are the units of the speed? Is it Bits/second or Bytes/second. The only way it is consistent with my own download times is if it is in Bits/second. Would you verify this for me?

    I also assume that it downloads and uploads to my computer.


  73. Prothero said,

    on January 30th, 2011 at 5:52 pm

    I got it working on but couldn’t get it working on
    It gave me a page not found error. I did the speedtest.cfg file appropriately. Maybe there’s a bug.

  74. TP said,

    on February 3rd, 2011 at 11:29 am

    No matter what I try, I can’t get this to work.

    The closest I have come is the download.php notifying ‘Calculating appropriate file sizes for testing’, then returning to the Start page without printing any results. This is with all configs pointing to the speedtest directory.

    If I put upload.cgi in a separate directory and change the httpd.conf and speedtest.cfg files to reflect, I get 403 forbidden. The download test looks like it has run, as the URL in the 403 error page shows ‘…/cgi-bin/?downspeed=7186&downtime=0.114&downsize=100&auto_size=1′

    In either case, other CGI scripts run just fine from this same CGI directory on my XP box running Apache2.2.

  75. Brandon said,

    on February 25th, 2011 at 4:09 pm

    @Prothero, Yes, like most bandwidth speeds, this is measured in bits per second.

  76. Eduardo Mejia said,

    on June 3rd, 2011 at 12:43 pm

    When I try [Start Test] I can see the application working and calculating the value for both criteria (upload/download).

    but when the process of calculate is over, appears the next message:
    “Fatal error: Call to undefined function mysql_connect() in /usr/local/www/apache22/data/speedtest/results.php on line 22″

    I see the script in this file and it seems ok, even when I try to do a direct connection to my data base I have no problems with it.

    mysql -u $user -p$password -h $host $db_name.
    Then I can’t finish my testing :(

    Best regards.

  77. Hemanshu said,

    on June 15th, 2011 at 6:17 am

    Upload speed is not accurate.
    When i start test, download speed checks works fine but in upload speed it went till half stage and then suddenly hits the end.
    I am talking about progress bar, it reaches to half stage and then to 100% stage.
    always it suggests upload speed more than 3 times the download speed.
    in ADSL connection this is not possible. I think there is some problem in scripting/time calculation.


  78. BSD said,

    on June 18th, 2011 at 6:41 am

    Hi Brandon nice script, I got it working on my ubuntu 10.04 workstation :) inside my private network, is there a way for me to disallow 5 or more IP address from my LAN in using the speed test? Thanks

  79. Dagner said,

    on July 7th, 2011 at 10:55 am


    Do you know what would cause this error?

    A critical error occurred: Unable to read configuration file: /speedtest/speedtest.cfg

  80. Firas said,

    on July 10th, 2011 at 6:21 am

    Thanks for the great tool. Is it possible to also add latency (and if possible traceroute) to the output results? I am trying to find a tool that would help me troubleshoot latency problems of my clients.

    Thanks again!

  81. Sonny said,

    on July 26th, 2011 at 1:40 am

    Hi very useful script

    When I set, skip_upload = 1
    I get, Warning: Division by zero in /home/…download.php on line 66

    any idea why? thanks for making this available.


  82. Colin said,

    on September 23rd, 2011 at 5:20 pm

    Lovely bit of software, just what I needed for my server to help find out why friends abroad seemed to be experiencing slow downloads.
    Server running Centos 6, Apache 2.2, PHP 5.3, just copied software into place, set up config file and it worked, upload and download tests both working fine.

    Thank You

  83. on October 3rd, 2011 at 6:09 am

    Worked great for me, converted it to a XOOPS module, found the permission otherwise know as forbidden would occur cause of the enabling of Execution of CGI in the .htaccess.

    Made a few nice changed, check out speedtest 1.01 beta for XOOPS based on this open source,134,-1.html


  84. Kai said,

    on October 4th, 2011 at 6:32 pm

    I’m trying to get this awesome script running, but still have Error 500 on upload.cgi :(
    I installed “sudo perl -MCPAN -e install Time::HiRes” already.
    Maybe you can help me to get this running?
    Twitter @seokai or mail from obove.

    Thanks a lot

  85. on January 26th, 2012 at 2:02 am

    […] Brandon Checketts » Open Source Speedtest – January 26th ( tags: speedtest performance monitoring app ) […]

  86. on February 26th, 2012 at 10:00 pm

    Works Great for me, this is brandett checkit speed test 1.03 for XOOPS version 1.03



  87. amanda said,

    on May 16th, 2012 at 7:54 pm

    I’ve got the same problem as TP (Feb, 3, 2011).
    DL and UL seems working but after the test finishes, it jumps to my main website ( instead of showing the results page.

    Any help would be greatly appreciated!

  88. Arief K said,

    on December 5th, 2013 at 10:07 pm

    I can get the measuring result displayed but there’re 6 lines of “Warning: Creating default object from empty value in /var/htdocs/speedtest/v2/common.php on line 26″
    Is there anything I should do?

  89. on July 20th, 2014 at 7:19 am


    I’ve just installed the speedtest and after some testing it´s running well.

    Thank You for this fine script!

  90. Domas said,

    on October 7th, 2014 at 11:31 pm

    when i push “Start Test” i get
    Calculating appropriate file sizes for testing

    {‘general’}->{‘image_paest” meurlr.gif”funcinpwoulypd_tdisplaload_bar” /> splaupload_bar” /> splaupremud_b

    What i did wrong?

  91. Domas said,

    on October 13th, 2014 at 4:11 am

    after i push “Start test” i get :

    Calculating appropriate file sizes for testing

    {‘general’}->{‘image_paest” meurlr.gif”funcinpwoulypd_tdisplaload_bar” /> splaupload_bar” /> splaupremud_b

  92. Karl said,

    on October 26th, 2014 at 1:35 pm

    Anyone having the same problem as TP or amanda, check permissions on your upload.cgi. It’s probably 644 default, change to 755. You may also have to add a couple lines to the .htaccess file, RewriteEngine On and Options +FollowSymLinks.

  93. Shastri said,

    on November 7th, 2014 at 10:08 am


    Great project..I was able to set up successfully, however I am trying to pass a variable (customer name) from the welcome screen to the result page but it is not working. I used POST, Session, Javascript. Nothing works. Can you assist me?


  94. Nathan said,

    on January 6th, 2015 at 1:53 pm

    I’m getting the same error as Airef K
    Please advise!

    6 lines of “Warning: Creating default object from empty value in /var/htdocs/speedtest/v2/common.php on line 26″

Post a comment

Please copy the string Mlgvgg to the field below: