403 запрещенная ошибка в Apache с корнем документа в разделе NTFS

Я новичок в Ubuntu, надеясь найти лучшую среду для веб-разработки, чем WIndows. Я пытаюсь получить доступ к http://localhost, но это всегда дает мне запрещенную ошибку. Я установил php, mysql и apache отдельно. Files/web_files также является моим веб-каталогом в окнах, который при доступе к окнам равен D:/Files/web_files, а в Ubuntu - media/Files/web_files. Я также перезапускаю apache после редактирования файла default, расположенного в etc/apache2/sites-available Я редактирую не тот файл? Пожалуйста, помогите.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/Files/web_files
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/Files/web_files/>
        Options FollowSymLinks
        AllowOverride All
        order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Обновление Если я использовал var/www вместо этого, он работает как магия.

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options FollowSymLinks
    AllowOverride All
    order allow,deny
    allow from all
</Directory>

Вот вывод из команды mount

/dev/loop0 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/dev/sda2 on /host type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/wern/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=wern)
/dev/sr0 on /media/2022_21092011 type udf (ro,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,iocharset=utf8,umask=0077)
/dev/sda3 on /media/Files type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sda1 on /media/System Rese

А вот вывод из ls - laR/media

ls: cannot access -: No such file or directory
ls: cannot access laR: No such file or directory
/media:
2022_21092011  Files  System Reserved

Так что мне интересно, если это проблема в файловой системе или ее разрешения. Но я не думаю, что это как-то связано с разрешениями, так как я могу прекрасно редактировать файлы в media/Files/web_files без необходимости запускать его как суперпользователь. Спасибо за тех, кто нашел время, чтобы помочь мне до сих пор.

4
задан 15 July 2012 в 10:58

7 ответов

Похоже, что ваш диск D Windows смонтирован в /media/Files

В этом случае ваши файлы фактически находятся в /media/Files/Files/web_files. Пожалуйста, попробуйте отредактировать файл по умолчанию , доступный для сайтов с этим путем, перезапустите Apache с помощью sudo service apache2 restart и посмотрите, работает ли он.

Кроме того, как отмечает Марти в комментариях, кажется, что Nautilus монтирует NTFS-разделы с нечетными разрешениями, так что ни один пользователь, кроме вас (и, конечно, root) не может читать или писать из / в него. [ 1118]

Чтобы решить эту проблему, закройте все окна Nautilus, остановите apache2, откройте терминал и сделайте следующее:

sudo umount /dev/sda3
mkdir /media/DriveD
sudo ntfs-3g /dev/sda3 /media/DriveD

Теперь запустите apache2 и посмотрите, работает ли он. Если это произойдет, то лучше установить монтировку в /etc/fstab, как заметил Марти.

Если вы не хотите редактировать файл / etc / fstab, сделайте это

  • Откройте терминал и введите

    udisks --mount /dev/sda3 --mount-options umask=022
    
[ 1123] Полагаю, ваш раздел уже был помечен как «Файлы». В этом случае он будет смонтирован в каталог /media/Files. Затем вы можете выполнить php файлы в них. Но если он не помечен как «Файлы», я рекомендую сделать это с помощью disk-utility. Или, если вы предпочитаете не добавлять метки, измените файл etc/apache2/sites-available/default на фактическую точку монтирования.

Примечание. Если у вас нет метки с разделом, она будет смонтирована в папке /media/xxxx...., где xxxx ... - это UUID раздела.

Кредит поступает этому ответчику

0
ответ дан 15 July 2012 в 10:58

Попробуйте сохранить корневой каталог Apache на собственном разделе linux (/var/www/html) и вместо этого выполните монтирование, например:

mount -o bind /media/Files/web_files /var/www/html/web_files

Имейте в виду, что папка web_files должна существовать в папках /var/www/html/ и у него достаточно атрибутов для чтения.

0
ответ дан 15 July 2012 в 10:58

Вот шаги, которые я сделал для преодоления той же ошибки. Моя ситуация состояла в том, что я хотел точку к своей папке проектов Windows Dropbox при кодировании использования Ubuntu.

Настройки для раздела NTFS

Сначала необходимо смочь получить доступ разделу NTFS с помощью Ubuntu. Сделайте следующие шаги, если Вы не имеете.

$ sudo apt-get install ntfs-3g

Найдите название своего раздела (разделов) NTFS. Пример:

$ sudo fdisk -l | grep NTFS

Получите UUID своего раздела NTFS.

$ sudo blkid

/dev/sda1: МАРКИРУЙТЕ = "окна" UUID = "4ED2A451B2A23F59" ТИП = "ntfs"

Настройте раздел в/etc/fstab (сделайте резервное копирование на всякий случай).

$ sudo cp /etc/fstab /etc/fstab.bak
$ sudo vim /etc/fstab

Я создал мой следующим образом (на основе UUID. Следующие опции устанавливают чтение, пишут, выполняют полномочия, и uid=1000 устанавливает Вас как пользователя раздела NTFS во время начальной загрузки ОС. Это также гарантирует, что пользователь Apache может получить доступ к Вашему виртуальному направлению хоста (это - то, что решило мою проблему).

/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8  0 0

Обратите внимание, что Вы, возможно, должны создать/media/windows каталог, если он не существует.

$ cd /media
$ sudo mkdir windows
$ sudo chown sagun:users windows

Перезагрузите свой компьютер и подтвердите, что Ваш диск NTFS автомонтируется с чтением, запишите, выполнитесь, полномочия включили.

Настройки для конфигурирования Виртуального Хоста в Apache

Создайте каталоги для размещения файлов журнала (если Вы хотите):

$ sudo mkdir /var/log/apache2/projects.dev

Создайте новый файл конфигурации внутри/etc/apache2/sites-available каталог. Пример:

$ sudo vim /etc/apache2/sites-available/projects.dev

Установите свою конфигурацию, подобную этому, и сохраните файл:

<VirtualHost *:80>
    ServerAdmin webmaster@projects.dev
    ServerName projects.dev
    ServerAlias projects
    DocumentRoot /media/windows/Users/sagun/Dropbox/projects
    <Directory />
        Options FollowSymLinks
        AuthType None
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    <Directory /media/windows/Users/sagun/Dropbox/projects/>
        Options Indexes FollowSymLinks MultiViews
        AuthType None
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/projects.dev/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/projects.dev/access.log combined
</VirtualHost>

Затем, отредактируйте/etc/hosts файл.

$ sudo vim /etc/hosts

Добавьте следующую строку и сохраните:

127.0.0.1 projects.dev

Активируйте хост следующей командой:

$ sudo a2ensite projects.dev

Apache перезапуска

$ sudo service apache2 restart

Наконец я смог перейти к http://projects.dev от своего Браузера со всем моим кодом, находящимся в разделе NTFS и из Windows и из Ubuntu. Я надеюсь, что кто-то находит это полезным.Удачи!

0
ответ дан 15 July 2012 в 10:58

Ваш диск монтируется во время работы apache? Я не знаю, будет ли автоматического монтажа достаточно или нет, но если есть проблема, вы можете явно смонтировать диск /etc/fstab. Я уверен, что этот автоматический монтаж выполняется только по требованию; он не монтируется, пока вы не откроете его в Nautilus, затем он монтируется.

Я провел тест с NTFS-разделом, смонтированным путем открытия в Nautilus, и у него не установлены разрешения ни для кого, кроме владельца и группы владельца, так что это, скорее всего, источник проблемы. Вам нужно будет установить права на монтирование, чтобы у каждого были права на чтение и выполнение (r-x) для раздела. Вы знаете, как монтировать диски в `/ etc / fstab 'или любым другим способом. Здесь есть некоторые подробные инструкции .

Основой является то, что вам нужно создать каталог для монтирования раздела, традиционно как подкаталог /mnt/, а не /media/; /media/ традиционно используется для автоматически монтируемых устройств, например, когда вы открываете не подключенное устройство в Nautilus, или для CD / USB-приводов.

Создать каталог

Каталог, который вы создаете, должен иметь разрешения и владельца, которых вы хотите; Я обычно устанавливаю владельца для себя с правами только для чтения для остальной части вселенной (drwxr-xr-x). Этот каталог должен быть пустым, но не обязательно. Но любые файлы будут недоступны, когда что-то подключено к нему. Чтобы создать и установить разрешения для этого каталога (измените LOGIN_NAME на свое имя для входа):

cd /mnt
sudo mkdir Files
sudo chown LOGIN_NAME:LOGIN_NAME Files
sudo chmod 755 Files

Редактировать fstab

Затем вы создаете запись в файле [ 116] для монтирования раздела в этот каталог. Обычно это довольно просто, хотя для NTFS требуется некоторая дополнительная информация для настройки владельца и разрешений. Строка, которую я использую для NTFS, выглядит следующим образом (все в одной строке):

UUID=0000000000000000 /mnt/Files ntfs-3g auto,users,uid=LOGIN_NAME,gid=LOGIN_NAME,utf8,dmask=002,fmask=113 0 0

Примечания : заменить правильный UUID на 0000000000000000; UUID получается при вводе командной строки sudo blkid в терминале. Также замените логин на LOGIN_NAME.

Отредактируйте файл конфигурации Apache

Затем в файле /etc/apache2/sites-available/default измените DocumentRoot, который изначально был /var/www/, на /mnt/Files/web-files. Также внесите те же изменения в каталог вашего веб-сайта. Предполагается, что в корне раздела, смонтированного в /mnt/Files/, есть каталог /web-files/.

Кроме того, убедитесь, что у вас есть файл HTML / PHP в корневой директории документа (.../web-files)? Это должно быть что-то вроде index.html или index.php. Вы скопировали файлы из /var/www/ в этот каталог?

0
ответ дан 15 July 2012 в 10:58

DocumentRoot необходимо изменить в двух файлах конфигурации Apache:

/etc/apache2/sites-available/default
/etc/apache2/apache2.conf
0
ответ дан 15 July 2012 в 10:58

Лично я не пробовал NTFS, но это спасло меня:

Единственное, что вам нужно сделать, это:

<Directory "/www/mywebdirectoryinapartitioneddisk">
    Require all granted
</Directory>

, это решит проблему

вот пост в моем блоге, объясняющий все подробно. Он может работать на NTFS

http://www.tbogard.com/2014/09/12/making-apache-server-to-read-a-partitioned-disk-the-definitive- раствор /

0
ответ дан 15 July 2012 в 10:58

Для всех, кто не хочет иметь дело с монтированием и перемонтированием разделов просто, удостоверяются, что у Вас есть корректный путь монтирования в apache.conf, и 000-default.conf затем редактируют/etc/apache2/envvars

, Изменяют www-данные

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

К Вашему имени пользователя

export APACHE_RUN_USER=youruser
export APACHE_RUN_GROUP=youruser

апач Перезапуска, сделанный.

0
ответ дан 21 October 2019 в 17:22

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

Похожие вопросы: