Nano Hash - криптовалюты, майнинг, программирование

URL-адрес сопоставления apache httpd с общей папкой виртуального бокса

Я настроил centos7 в виртуальном боксе, в котором запускаются apache httpd, mariadb, phpmyadmin и т. д., хостом является macos

когда я пытаюсь сопоставить URL-адрес с общей папкой, я столкнулся с ошибкой

Forbidden: You don't have permission to access /tutorial/ on this server.

sudo tail -f /var/log/httpd/error_log

[Wed Oct 19 22:48:23.108758 2016] [autoindex:error] [pid 1469] (13)Permission denied: [client 192.168.144.1:51847] AH01275: Can't open directory for index: /php-tutorial/www/

/etc/httpd/conf.d/tutorial.conf

Alias /tutorial "/php-tutorial/www"

<Directory "/php-tutorial/www">
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>

права доступа к папке

drwxr-xr-x. 1 vagrant vagrant system_u:object_r:vmblock_t:s0 /php-tutorial/www 
drwxr-xr-x. 1 vagrant vagrant system_u:object_r:vmblock_t:s0 /php-tutorial
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html

Я не уверен, возможно ли это, и если возможно, как правильно его настроить.


Ответы:


1

Спасибо за ezra-s за освещение возможной проблемы.

Да, это из-за SELinux, потому что SELinux включен по умолчанию в Centos 7.2, которая является гостевой ОС, используемой здесь.

Есть два разных решения этой проблемы:

  1. Быстрое решение, отключить SELinux

    # vi /etc/selinux/config
    
    SELINUX=enforcing  # <= change enforcing to disabled
    
  2. Лучшее решение, настройка политик SELinux

    # yum install -y policycoreutils-python
    # vi httpd_t.te
    
    module httpd_t 1.0;
    
    require {
            type httpd_t;
            type vmblock_t;
            class file { read getattr open };
    }
    
    #============= httpd_t ==============
    allow httpd_t vmblock_t:file { read getattr open };
    
    # checkmodule -M -m -o httpd_t.mod httpd_t.te
    # semodule_package -o httpd_t.pp -m httpd_t.mod
    # semodule -i httpd_t.pp
    # systemctl restart httpd
    

Рекомендации:

  1. https://github.com/mitchellh/vagrant/issues/6970, кто-то столкнулся с та же проблема и нашел выход шаг за шагом.
  2. https://wiki.centos.org/HowTos/SELinux, хорошее введение в SELinux.
21.10.2016

2

Похоже, у вас есть SELinux, просмотрите журналы SELinux.

20.10.2016
  • Вы абсолютно правы, но предоставление примера списка журналов SELinux сделало бы ваш ответ гораздо более полезным. 20.02.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..