Apache не будет доставлять ресурсы в подкаталогах / var / www / html

В настоящее время у меня есть сервер под управлением Ubuntu 18.04 с Apache2. Я не могу получить доступ к файлам png и svg в подкаталогах. Пример: /var/www/html/icons/new.svg, если страница расположена в /var/www/html/index.php. Однако Apache будет доставлять изображения из каталога страниц, поэтому будут доставлены все фотографии в / var / www / html.

Код ошибки для изображений - просто 404. Я могу получить доступ к страницам в /var/www/html/sub/index.php. Если это важно, все изображения используют относительные ссылки.

У меня есть неподтвержденный ssl на моем сервере, но даже на простом http он не доставляется, если это имеет значение.

Вероятно, это глупый вопрос, но в любом случае спасибо за уделенное время.

Весь код работал на локальном сервере Wamp, прежде чем быть помещенным на сервер лампы.

Пример кода:

<img src = "icons/new.svg"> <!--Wont work-->
<img src = "logo.svg"> <!--Will Work-->

Внутри / var / www / html

drwxr-xr-x 6 root root   4096 Jun 26 18:04 .
drwxr-xr-x 3 root root   4096 Jun 22 18:55 ..
drwxr-xr-x 4 root root   4096 Jun 26 17:50 icons
-rw-r--r-- 1 root root   4340 Jun 26 18:11 index.php
-rw-r--r-- 1 root root   4172 Jun 26 18:11 logo.svg
-rw-r--r-- 1 root root   1856 Jun 26 18:11 mainstyle.css
drwxr-xr-x 2 root root   4096 Jun 26 17:50 PHP
drwxr-xr-x 2 root root   4096 Jun 26 17:50 plandetails
drwxr-xr-x 2 root root   4096 Jun 26 17:50 planicons
-rw-r--r-- 1 root root 295915 Jun 26 18:11 searchbkg.jpg
-rw-r--r-- 1 root root   7366 Jun 26 18:11 searchbkg.svg

Внутри папки значков

drwxr-xr-x 4 root root 4096 Jun 26 17:50 .
drwxr-xr-x 6 root root 4096 Jun 26 18:04 ..
-rw-r--r-- 1 root root  446 Jun 26 18:37 arrowleft.svg
-rw-r--r-- 1 root root  446 Jun 26 18:37 arrowrt.svg
-rw-r--r-- 1 root root 7863 Jun 26 18:37 bestoffer.svg
-rw-r--r-- 1 root root 4024 Jun 26 18:37 free.svg
-rw-r--r-- 1 root root  477 Jun 26 18:37 informationbubble.svg
-rw-r--r-- 1 root root 3404 Jun 26 18:37 new.svg
drwxr-xr-x 2 root root 4096 Jun 26 17:50 plans
drwxr-xr-x 2 root root 4096 Jun 26 17:50 prices
-rw-r--r-- 1 root root 2272 Jun 26 18:37 save.svg

Обновлен / var / www / html perms

   drwxr-xr-x 6 root root   4096 Jun 26 18:04 .
drwxr-xr-x 3 root root   4096 Jun 22 18:55 ..
drwxr-xr-x 4 root root   4096 Jun 26 17:50 icons
-rw-r--r-- 1 root root   4340 Jun 26 18:37 index.php
-rw-r--r-- 1 root root   4172 Jun 26 18:37 logo.svg
-rw-r--r-- 1 root root   1856 Jun 26 18:37 mainstyle.css
drwxr-xr-x 2 root root   4096 Jun 26 17:50 PHP
drwxr-xr-x 2 root root   4096 Jun 26 17:50 plandetails
drwxr-xr-x 2 root root   4096 Jun 26 17:50 planicons
-rw-r--r-- 1 root root 295915 Jun 26 18:37 searchbkg.jpg
-rw-r--r-- 1 root root   7366 Jun 26 18:37 searchbkg.svg

Для всех, кому интересно, я использовал комбинацию справки ниже и это

Посмотрим код. У меня такое чувство, что это проблема пути.

bassxzero 26.06.2018 20:29

Я добавил это.

GloomyGeese 26.06.2018 20:31

что выводит ls -la /var/www/html?

bassxzero 26.06.2018 20:34

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

GloomyGeese 26.06.2018 20:36

могу ли я увидеть внутреннюю часть папки значков?

Supun Praneeth 26.06.2018 20:37

Конечно, я тоже его добавил.

GloomyGeese 26.06.2018 20:40

хорошо, перейдите на свой URL-адрес localhost/your_site/icons, вы получаете ошибку 404?

Supun Praneeth 26.06.2018 20:42

У меня ошибка 403 сейчас

GloomyGeese 26.06.2018 20:45

это значит, что с папкой все в порядке. но запрещено. теперь перейдите к localhost/your_site/icons/new.svg

Supun Praneeth 26.06.2018 20:48

если он говорит 403, выполните эти две команды find /var/www/html -type d -print0 | xargs -0 chmod 0755 find / var / www / html -type f -print0 | xargs -0 chmod 0644`

Supun Praneeth 26.06.2018 20:52

Посмотрите свои лог-файлы Apache, они покажут, что не так.

Patrick Mevzek 26.06.2018 20:52

Я предлагаю вам проверить, не является ли это проблемой с разрешением, запустив chmod -R 0777 var/www/html. Если ваш сайт работает, значит, у вас есть проблема с разрешениями для ваших файлов / каталогов, если нет, то ваша проблема в другом месте.

bassxzero 26.06.2018 21:10

Да, после этого все еще не работало.

GloomyGeese 26.06.2018 21:15
Применение градиента к изображению с помощью CSS
Применение градиента к изображению с помощью CSS
Здравствуйте, братья и сестры, как дела? Недавно я застрял на применении градиента к изображению. Я применял это много раз, но иногда наши требования...
Получение URL-адреса изображения курса в Moodle с помощью PHP
Получение URL-адреса изображения курса в Moodle с помощью PHP
Moodle - это популярная система управления обучением с открытым исходным кодом, используемая многими учебными заведениями и организациями по всему...
0
13
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это не вопрос php, это вопрос apache и вопрос разрешений, попробуйте:

chmod a+rx /var/www/html/sub/

а также

chmod a+r /var/www/html/*

Обновлено:

Ваш виртуальный хост должен быть:

DocumentRoot /var/www/html

<Directory /var/www/html>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Require all granted
</Directory>

Я пробовал это и теперь не могу получить доступ к /var/www/html/index.php. У вас нет разрешения на доступ к / на этом сервере.

GloomyGeese 26.06.2018 20:55

Это потому, что у вас нет разрешений на доступ к этому файлу, отправьте вывод ls -la

Jorge 26.06.2018 21:02

Я заставил индексную страницу работать, настроив apache <Directory />, чтобы все, кроме изображений, по-прежнему не доставлялись человеку, просматривающему веб-страницу. Я добавил код в сообщение, потому что здесь он плохо отформатирован.

GloomyGeese 26.06.2018 21:04

вы добавили новый каталог для приложения "sub" в httpd.conf?

Jorge 26.06.2018 21:09

Не специально, но это должно быть в / var / www /, так как есть несколько папок, таких как / var / www / html / PHP и / var / www / html / icons.

GloomyGeese 26.06.2018 21:13

так же, как сказал bassxzero, это проблема пути, проверьте путь DocumentRoot, он должен быть / var / www / html, а каталог также должен быть установлен / var / www / html

Jorge 26.06.2018 21:16

Да, они оба.

GloomyGeese 26.06.2018 21:22

как насчет журнала apache?, если вы обращаетесь, вы все равно получаете ошибку 403?

Jorge 26.06.2018 21:23

У меня есть пара мыслей. Вы создали файл .conf для приложения? Включили ли вы сайт? или вы обрабатываете подпапку и часть дерева приложений для извлечения ресурсов? Если да, значит, папки имеют правильные разрешения для ПОЛЬЗОВАТЕЛЯ и для ГРУППЫ?

Jorge 26.06.2018 21:26

Я считаю, что ошибка возникает, когда я пытался получить доступ к / var / www / html / icons /. И, по-видимому, он пытается обслуживать / user / share / apache2 / icons /, когда это должно быть / var / www / html / icons /. Но он также говорит, что нет соответствующего DirectoryIndex, потому что в папке значков нет страницы для загрузки, только .svgs

GloomyGeese 26.06.2018 21:32

Да, я просто пытаюсь получить файлы .svg из подкаталога, там нет файлов .php для загрузки.

GloomyGeese 26.06.2018 21:34

Это ваши настройки VirtualHost, он ищет корневую папку apache вместо веб-папки. добавьте это в .htaccess AddType image/svg+xml svg svgzAddEncoding gzip svgz

Jorge 26.06.2018 21:35

Другие вопросы по теме