OBJECTIVE

  • Installing PECL uploadprogress. To have a nice animated upload progress bar.

REQUIREMENTS

  • Root access to your server. Usually VPS or dedicated servers. It will NOT work on share hosting without root access. If unsure ask your host.
  • Filefield 6.x-3.2
  • Drupal 6.x
  • Ubuntu 8.04.x LTS server edition
  • PHP version 5.x
  • Apache version 2.x

STEPS

  1. Install Filefield module.
  2. Type in the following command line in Terminal to install NANO text editor.
    apt-get install nano
  3. Type in the following command line in Terminal to make NANO create a new empty file title uploadprogress.ini.
    sudo nano /etc/php5/apache2/conf.d/uploadprogress.ini
    Note about above command line: This is the Ubuntu & Debian way of adding a new module. The file uploadprogress.ini will be picked up by PHP.ini. The advantage is that PHP can be upgraded without having to re-edit the default PHP.ini file. Much easier :)
  4. NANO editor will automatically create an empty file for you. Then will open it.
  5. Type in the following single line into your uploadprogress.ini file
    extension=uploadprogress.so
  6. On your keyboard press the key CTRL-X to exit NANO.
  7. NANO will ask “Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?” Type in Y and press RETURN key.
  8. Type in the following in Terminal. This will install the PHP developer package for PHP version 5, php-pear, and make.
    sudo apt-get install php5-dev php-pear make
  9. Type in the following in Terminal to install PECL uploadprogress library.
    sudo pecl install uploadprogress
  10. Terminal will output the following error message. Ignore it because you have already added the extension to the uploadprogress.ini file using the Ubuntu & Debian way.
    “configuration option "php_ini" is not set to php.ini location

    You should add "extension=uploadprogress.so" to php.ini”

  11. Type in the following in Terminal to restart Apache
    sudo /etc/init.d/apache2 restart
  12. Apache is restarting. Wait until Terminal return a blinking cursor. Usually you have to wait up to 2 minutes.
  13. To test open your internet browser then go to
    http://YOUR-DOMAIN-NAME-HERE.com/admin/reports/status
  14. Search for Upload progress section. If successful the status reads Enabled (PECL uploadprogress). Next time you upload a file with filefield or imagefield modules you will see a nice upload progress bar.
  15. That's it. You have successfully installed PECL uploadprogress.

Comments

matw8’s picture

This procedure also worked for me running Ubuntu 10.04 LTS Server

Gomesh’s picture

No , This process not working for me . I still get the same error in status report .
Please help me .

Vacilando’s picture

It does not work in Ubuntu Lucid (Mercury 1.1).

I see there is /etc/php5/apache2/conf.d/uploadprogress.ini in "additional .ini files parsed" in phpinfo() but the extension in it does not seem to be loading.

Edit: This method worked all right for me: http://freestylesystems.co.uk/blog/installng-pecl-uploadprogress-extensi...

alex’s picture

1. sudo apt-get update
2. sudo apt-get install php5-dev php-pear
3. sudo pecl install uploadprogress
4. sudo echo "extension = uploadprogress.so" > /etc/php5/apache2/conf.d/uploadprogress.ini
5. sudo /etc/init.d/apache2 reload

may also work on older Ubuntu releases with apache2 and php5

whatdoesitwant’s picture

Adding it to php.ini seems to work fine too (originally saw this in a script by Krimson). What's the difference? Am i limiting the plugin to php (gui)?

sudo -s
aptitude install -y php5-dev php-pear
pecl install uploadprogress
sed -i '/; extension_dir = "ext"/ a\
extension=uploadprogress.so' /etc/php5/apache2/php.ini
/etc/init.d/apache2 reload
alex’s picture

It's mostly a personal preference. Having extensions configuration as include files rather than putting it in php.ini itself makes it easier to manage and keeps it from getting overwritten on software update.

Francewhoa’s picture

I agree with alex. On Ubuntu it's recommended to override instead of hacking. The easiest way to override is to use conf.d. Editing a core php.ini file is consider hacking. Hacking core is an evil behavior (joke ;). Same thing with Drupal it's recommended to override instead of hacking Drupal core.

Loving back your Drupal community result in multiple benefits for you  
JCL324’s picture

On my Linode Ubuntu 10.04 LTS server, the dir /etc/php5/apache2/conf.d did not exist. I found it at /etc/php5/conf.d. Created the uploadprogress.ini file there and worked like a charm.

JCL

robert.redl@easytouch.cc’s picture

I tried to satisfy all status messages in Drupal and had both apc and uploadprogress active in php.ini
After disabling apc.rfc1867 (; in front) uploadprogress started to work (even with multiple fields)
(Ubuntu 8.04 server, PHP 5.2.9, Apache2, Drupal 6.19)

[PHP]
;apc.rfc1867 = 1
extension=uploadprogress.so
murraybiscuit’s picture

crikey. thanks for this. worked 100% on debian lenny.

Bagz’s picture

Works like a charm for Ubuntu 10.04 as well. Comments:
Step 1 - Ignore for Drupal 7
Step 2 - command should start with "sudo "; can ignore this step if you have gedit
Step 3 - can substitute nano for gedit
Step 6 & 7 - if using gedit just close the window and choose "Save"

Lars Toomre’s picture

I had this library previously installed when running Ubuntu 8.04 version of Linux. An upgrade to Ubuntu 10.04 (Lucid) two weeks ago removed this functionality. It can be fixed by doing the following on the Linux server command line:

1) sudo pecl uninstall uploadprogress
One may get a message to remove package reference from php.ini file if defined there. Ignore this message.
2) sudo pecl install uploadprogress
(This will rebuild the library to take advantage of the current version of Ubuntu.)
3) Check that the extension=uploadprogress.so line is defined either in php.ini (deprecated method) or there is this directive in the file /etc/php5/apache2/conf.d/uploadprogress.ini (preferred method). Create the file if necessary and/or adjust as appropriate.
4) Restart apache2 server with command sudo /etc/init.d/apache2 restart.
5) Check your PHP installation by reviewing the results from phpinfo() function call. Down towards the bottom of that webpage you should see a block of information about uploadprogress library.
6) If you have followed these steps successfully, Voila! The updateprogress library will once again be working on an upgraded Ubuntu website.

[Nota Bene - Remember that upgrading from Ubuntu 8.04 (Hardy) to Ubuntu 10.04 (Lucid) also default upgrades PHP to version 5.3. This can cause problems for a Drupal 6 website since PHP 5.3 is not officially supported and D6 has a number of problems around the issue of passing variables by reference vis-a-vis passing variables-by-value. Not to worry though PHP 5.3 does work in Drupal 7 where this PHP library apparently no longer is needed.]

Lars Toomre
Managing Director
Toomre Capital Markets LLC

http://lars.toomre.com/

ofktoubro’s picture

This did it for me as well...
uninstall,
reinstall
moving extension=uploadprogress.so from php.ini to /etc/php5/apache2/conf.d/uploadprogress.ini

(ubuntu 10.04, php 5.2)

Anonymous’s picture

I had to put uploadprogress.so in

/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/

and edited php.ini in

/opt/lampp/etc/

Then

/opt/lampp/lampp restart

That's all.

mellett68’s picture

Works a treat. Thanks!

praneeth87’s picture

Thanks.

JordiGuilleumes’s picture

It works!
Thanks to all, specialy the summary provided by Alex for Ubuntu 10.04 LTS

Kethram’s picture

Had to change the path to uploadprogress.ini to get it to load:
/etc/php5/cgi/conf.d/uploadprogress.ini