Search code examples
phpapache.htaccesscodeigniter

codeigniter htaccess php instructions not working


In my php.ini I have disabled file upload globally:

file_uploads = Off

And i tried to enable file upload for my codeigniter site only. So i added to the .htaccess file the following:

php_flag file_uploads 1

And I made sure that AllowOverride is setup as follow in the apache config file:

<Directory /var/www/my_codeigniter_app/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

However file upload is not working. It only works, when I enable file upload globally.


Solution

  • You cannot set the file_uploads directive via .htaccess.

    According to the manual, file_uploads is a PHP_INI_SYSTEM type setting. That means you can only set it via php.ini and httpd.conf.

    To enable it only for your CodeIgniter site, you can set the directive in your VirtualHost configuration by using php_admin_value instead of php_value, since php_value can only set PHP_INI_ALL or PHP_INI_PERDIR level settings:

    <VirtualHost *:80>
        DocumentRoot /var/www/my_codeigniter_app
        # [...] all your other settings
    
        php_admin_value file_uploads 1
    </VirtualHost>
    

    If you don't have a VirtualHost config for your CodeIgniter site, you might be able to also set it in the <Directory> section of your Apache config (again, using php_admin_value), although I haven't tried that myself so I'm not 100% sure that'll work:

    <Directory /var/www/my_codeigniter_app/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        php_admin_value file_uploads 1
    </Directory>