Я использую Ubuntu и Windows. Когда я использую Windows, я не могу получить доступ к своему файлу в var/www
моего раздела Linux. Поэтому я пытаюсь сделать виртуальный хост и DirectoryRoot в моем разделе NTFS.
Я объединю каталог WAMP в Windows и корневой каталог виртуального хоста в Ubuntu, но он не работает. Всегда появляется error 403 forbidden access
. И когда я меняю права доступа с помощью chmod
, ничего не меняется.
Что мне делать?
Настройки для раздела 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. Следующие опции устанавливают чтение, пишут, выполняют полномочия, и uid=1000 устанавливает Вас как пользователя раздела NTFS во время начальной загрузки ОС. Это также гарантирует, что пользователь Apache может получить доступ к Вашему виртуальному направлению хоста (это - то, что решило мою проблему).
/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8 0 0
Если Вы хотите смонтировать раздел как www-data
пользователь вместо этого, затем найдите www-data
идентификатор пользователя и замена uid=1000
с этим:
id -u www-data
Обратите внимание, что Вы, возможно, должны создать/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.conf
Установите свою конфигурацию, подобную этому, и сохраните файл:
<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/>
Require all granted
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. Я надеюсь, что кто-то находит это полезным.Удачи!
Это то, что вам нужно, чтобы решить проблему
Обычно вам нужна такая запись в файле httpd.conf
<Directory "physical path to the directory">
Order Allow,Deny
Allow from All
# Any other directory-specific stuff
</Directory>
Если вы настроили жесткий диск на автоматическое монтирование, вероятно, процесс редактирования envvars не будет работать, потому что раздел будет в /mnt.
Эта процедура может быть не такой безопасной, но она работала в течение мин. Я оставил пользователя www-data даже в envvars и добавил пользователя apache в корневую группу.
sudo usermod -G root www-data
Как это работает только локально, я считаю, что нет никаких серьезных рисков.
Лучшим решением для меня было изменение пользователя Apache, это может пойти на небольшой риск, но для меня это сработало.
sudo vim /etc/apache2/envvars