Skip to main content
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
deleted 61 characters in body
Source Link
dma_k
  • 121
  • 5
<Directory /var/www/magento>
    Options -Indexes +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride FileInfo Options=All,MultiViews AuthConfig Indexes...
</Directory>
<Directory /var/www/magento>
    Options -Indexes +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride FileInfo Options=All,MultiViews AuthConfig Indexes
</Directory>
<Directory /var/www/magento>
    Options -Indexes +FollowSymLinks +SymLinksIfOwnerMatch
    ...
</Directory>
Source Link
dma_k
  • 121
  • 5

FollowSymLinks is enabled for <Directory> however Apache returns HTTP 403 for image request

It seems like I have some generic Apache configuration issue, but I cannot spot the problem. I have Magento v2.2.7 installed to default Apache document root directory (/var/www/magento) under user magento (GID www-data). The corresponding Apache configuration is the following:

<Directory /var/www/magento>
    Options -Indexes +FollowSymLinks
    AllowOverride FileInfo Options=All,MultiViews AuthConfig Indexes
</Directory>

I haven't changed anything in .htaccess files – they are used as provided by Magento installation. For example, /var/www/magento/.htaccess contains the following:

    Options +FollowSymLinks
    RewriteEngine on

"Use Web Server Rewrites" option is enabled, and URL rewrites work appropriately. All resources (JS, CSS, fonts) are loaded correctly both in admin and store, except images that I have uploaded to Magento via admin interface, namely:

  • Site logo
  • Product images

For example when I request URI /magento/pub/media/logo/websites/1/logo.jpg, status HTTP 403 is returned with the following logged to Apache error log:

# root@server:~# tail -f /var/log/apache2/error.log
[Wed Feb 20 10:54:56.588137 2019] [rewrite:error] [pid 24674] [client 189.64.12.201:10934] AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions : /var/www/magento/pub/media/logo/websites/1/logo.jpg, referer: https://www.server.com/magento/
[Wed Feb 20 11:25:24.497872 2019] [rewrite:error] [pid 24698] [client 189.64.12.201:10400] AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions : /var/www/magento/pub/media/catalog/product/cache/aefcd4d8d5c59ba860378cf3cd2e94da/5/2/52681140.jpg, referer: https://www.server.com/magento/home.html

Here is the uploaded logo:

magento@server:/var/www/magento$ ls -ld pub pub/media pub/media/logo pub/media/logo/websites pub/media/logo/websites/1 pub/media/logo/web
sites/1/logo.jpg                                                                                                                            
drwxr-x--- 1 magento  www-data   176 Feb 17 23:37 pub                                                                                       
drwxrws--- 1 magento  www-data   160 Feb 20 08:57 pub/media                                                                                 
drwxrwsr-x 1 www-data www-data    30 Feb 20 09:03 pub/media/logo                                                                            
drwxrwsr-x 1 www-data www-data     2 Feb 20 09:03 pub/media/logo/websites                                                                   
drwxrwsr-x 1 www-data www-data    16 Feb 20 09:03 pub/media/logo/websites/1                                                                 
-rw-rw-r-- 1 www-data www-data 40324 Feb 20 09:03 pub/media/logo/websites/1/logo.jpg                                                        

When I enable SymLinksIfOwnerMatch

<Directory /var/www/magento>
    Options -Indexes +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride FileInfo Options=All,MultiViews AuthConfig Indexes
</Directory>

then requests for images start to work, however once reindexing takes place, symlinks are created with www-data ownership and Apache refuses to follow them (hence everything breaks down):

[Mon Feb 18 11:27:06.360297 2019] [core:error] [pid 12079] [client 189.64.12.201:10400] AH00037: Symbolic link not allowed or link target not accessible: /var/www/magento/pub/static/adminhtml/Magento/backend/en_US/mage/requirejs/mixins.js, referer: https://www.server.com/magento/control/admin/system_config/index/key/2376d1328b68bd0679181a3c8e78f992e87a39157c80ffa0deadaaa617342843/

Site is in default mode:

magento@server:/var/www/magento$ ./bin/magento deploy:mode:show
Current application mode: default. (Note: Environment variables may override this value.)

Any suggestion about how to make images working without enabling SymLinksIfOwnerMatch are welcome.