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

Это руководство поможет вам.

Как вы скрываете диски от появления в Наутилусе? Во-первых, вы должны знать, какие диски и / или разделы вы хотите скрыть. Из того, что я заметил, Наутилус либо представит эти устройства по этикетке. Если у него нет метки, то устройство будет связано с размером диска / раздела. Посмотрите на изображение ниже. В красной рамке нет ярлыков. Файловая система всегда является текущим разделом /root, в то время как файловая система размером 45 ГБ - это раздел, который не имеет метки. В этом примере это раздел /root моего Ubuntu 10.10 (я работаю над Natty Narwhal, но сохранил Maverick Meerkat в качестве резервной копии). Остальные два - Lucid Lynx и Karmic Koala - являются ярлыками моих 2 разделов NTFS. Этикетки важны, если вы не знакомы с тем, как Linux относится к этим устройствам. В Windows, будь то диск или раздел, они вызываются буквами - C или D - и так далее. Linux имеет более конкретную систему именования. Обычно это sdaX или hdbY, где X и Y - номера разделов на дисках sda или hdb, соответственно. Таким образом, если на диске sda есть 3 раздела, тогда будут sda1, sda2 и sda3. Windows скорее всего просто назовет его C, D и E. Теперь смонтируйте все ваши диски и / или разделы. Вы знаете, как это сделать, не так ли? Нажмите имя в Nautilus, и оно будет монтировать его для вас. Я предлагаю вам размонтировать и удалить все съемные диски, чтобы избежать путаницы. После того, как вы установили все, откройте терминал, запустив gnome-terminal. Просто введите это в тире, если вы используете Natty, или найдите его в меню, если вы используете классический рабочий стол Ubuntu. Причина, по которой монтаж всех - это более простой способ узнать имена устройств, заключается в том, что mount буквально скажет вам, что устройство X смонтировано в каталоге Y с именем Z. Легко ли? Вы можете посмотреть в /proc/partitions или /dev/disks/, но это только смутит вас. Запустите команду mount один раз. Из вывода обратите внимание на имена диска или разделов через связанный с ним ярлык. Он будет выглядеть примерно так, как показано ниже. На втором изображении выше вы заметите, что нет ссылки на установленную файловую систему на 45 ГБ. Это потому, что у последнего нет метки, как я уже упоминал ранее, и uuid слишком длинный и будет выглядеть ужасно на Наутилусе. Подсистема будет монтировать его по имени uuid на / media, в то время как остальные будут установлены его меткой. Так как Файловая система размером 45 ГБ (/dev/sdb2) действительно не отображается в Nautilus, я хочу скрыть это. Я также хочу скрыть Karmic Koala (/dev/sda1), потому что это мой раздел Windows C. Небеса запрещают я удалять файлы из любого из этих разделов случайно. Теперь начинается укрытие! Но прежде, убедитесь, что вы знаете, какие разделы вы хотите скрыть (например, как я определил их выше). Вы также можете перечислить все свои разделы, используя команду sudo fdisk -l, чтобы быстрее идентифицировать их. Я буду скрывать sda1 и sdb2 в следующих шагах, но вместо этого вы должны заменить имена разделов. Создайте файл с именем 99-hide-disks.rules, используя ваш любимый редактор. В этом файле мы помещаем правило, чтобы ядро ​​Linux скрывало это устройство. Я не буду объяснять, почему имя файла кажется забавным. Это будет предметом для другого поста, если я не буду слишком лениво объяснять это. Поместите текст ниже в только что созданном файле, но не забудьте изменить имя устройства, которое относится к вашему делу. На моем я хочу скрыть sda1 и sdb2. Общий формат (это чувствительно к регистру):
KERNEL=="device name", ENV{UDISKS_PRESENTATION_HIDE}="1"
В моем случае я напишу следующее в 99-hide-disks.rules:
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
Не забудьте сохранить, когда все будет готово. Теперь скопируйте файл в /etc/udev/rules.d/ с помощью команды,
sudo cp 99-hide-disks.rules  /etc/udev/rules.d/
Теперь мы закончили. Это будет незамедлительно замечено системой, потому что udev (устройство для Linux) ищет изменения в папке правил через inotify (это служба уведомления о событиях файловой системы). Однако он не будет применяться до перезагрузки. Предположительно вы можете использовать команду udevadm для запуска новых правил, но я еще не тестировал ее. Перезагрузите Ubuntu и обратите внимание, как разделы больше не видны в Nautilus. Изменить: по крайней мере, для Ubuntu 12.10 строки выше больше не работают и должны быть изменены, чтобы использовать этот формат:
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
1
задан 15 July 2012 в 11:58

5 ответов

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

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

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

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

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

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

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

Затем вы создаете запись в файле /etc/fstab, чтобы установить раздел в этот каталог. Обычно это довольно просто, хотя для 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/ в этот каталог?

3
ответ дан 25 May 2018 в 08:40
  • 1
    кажется, что это проблема в файловой системе, потому что если я использую / var / www как веб-каталог, он работает. Возможно, мне нужно установить разрешения или что-то еще, но я не знаю, как это сделать. Пожалуйста помоги. – Wern Ancheta 15 July 2012 в 09:05
  • 2
    проверьте это unix.stackexchange.com/questions/14671/… – Manula Waidyanatha 15 July 2012 в 09:07
  • 3
    Я уже редактировал файл 000-default. Я все еще не могу получить доступ к localhost, когда я использую / media / Files / web_files в качестве корня документа, но я могу получить к нему доступ, когда я использовал / var / www в качестве корня документа. – Wern Ancheta 15 July 2012 в 09:17
  • 4
    Разрешения должны быть в порядке, я бы подумал. какая файловая система использует раздел - FAT32, NTFS? – Marty Fried 15 July 2012 в 09:23
  • 5
    Он использует NTFS – Wern Ancheta 15 July 2012 в 09:26

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

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

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

1
ответ дан 25 May 2018 в 08:40

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

/etc/apache2/sites-available/default
/etc/apache2/apache2.conf
0
ответ дан 25 May 2018 в 08:40

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

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

Сначала вам нужно иметь доступ к вашему разделу NTFS через Ubuntu. Выполните следующие шаги, если вы этого не сделали.

$ sudo apt-get install ntfs-3g

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

$ sudo fdisk -l | grep NTFS

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

$ sudo blkid
/ dev / sda1: LABEL = "windows" UUID = "4ED2A451B2A23F59" TYPE = "ntfs"

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

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

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

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

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

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

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

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

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

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

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

Установите конфигурацию ar для этого и сохраните файл:

<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

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

/ dev / sda1: LABEL = "windows" UUID = "4ED2A451B2A23F59" TYPE = "ntfs"

127.0.0.1 projects.dev

$ sudo a2ensite projects.dev

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

$ sudo service apache2 restart

Перезапустить Apache

0
ответ дан 25 May 2018 в 08:40

Лично я не пробовал на 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-solution/

0
ответ дан 25 May 2018 в 08:40

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

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