Можно ли создать виртуальный хост в разделе NTFS?

Можно ли создать виртуальный хост в разделе NTFS?

Я использую Ubuntu и Windows. Когда я использую Windows, я не могу получить доступ к своему файлу в var/wwwмоем разделе Linux. Поэтому я пытаюсь создать виртуальный хост и DirectoryRoot в моем разделе NTFS.

Я объединяю каталог WAMP в Windows и корневой каталог виртуального хоста в Ubuntu, но это не работает. Всегда появляется error 403 forbidden access. И когда я меняю разрешения, chmodничего не меняется.

Что я должен делать?

решение1

Настройки для раздела 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 [email protected]
    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. Надеюсь, кто-то найдет это полезным. Ура!

решение2

Вот что вам нужно, чтобы решить проблему

https://stackoverflow.com/questions/89118/apache-gives-me-403-access-forbidden-when-documentroot-points-to-two-different-d

По сути, вам нужна такая запись в вашем файле httpd.conf

<Directory "physical path to the directory">
    Order Allow,Deny
    Allow from All
    # Any other directory-specific stuff
</Directory>

решение3

Лучшим решением для меня было сменить пользователя Apache. Это может быть рискованно, но в моем случае это сработало.

sudo vim /etc/apache2/envvars

решение4

Если вы настроили автоматическое монтирование жесткого диска, вероятно, процесс редактирования envvars не сработает, поскольку раздел будет находиться в /mnt.

Эта процедура может быть не такой безопасной, но она работала в течение мин. Я оставил пользователя www-data даже в envvars и добавил пользователя apache в группу root.

sudo usermod -G root www-data

Поскольку это работает только локально, я считаю, что серьезных рисков нет.

Связанный контент