NTFS 파티션에서 가상 호스트를 만들 수 있습니까?

NTFS 파티션에서 가상 호스트를 만들 수 있습니까?

저는 우분투와 윈도우를 사용하고 있습니다. Windows를 사용할 때 var/wwwLinux 파티션에 있는 파일에 액세스할 수 없습니다. 그래서 NTFS 파티션에 가상 호스트와 DirectoryRoot를 만들려고 합니다.

Windows의 WAMP 디렉터리와 Ubuntu의 가상 호스트 루트 디렉터리를 결합해 보지만 작동하지 않습니다. 항상 나타납니다 error 403 forbidden access. 그리고 아무것도 변경하지 않고 권한을 변경할 때 chmod.

어떻게 해야 하나요?

답변1

NTFS 파티션 설정

먼저 Ubuntu를 통해 NTFS 파티션에 액세스할 수 있어야 합니다. 아직 수행하지 않은 경우 다음 단계를 수행하십시오.

sudo apt-get install ntfs-3g

NTFS 파티션의 이름을 찾으세요. 예:

sudo fdisk -l | grep NTFS

NTFS 파티션의 UUID를 가져옵니다.

$ 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은 OS 부팅 중에 NTFS 파티션의 사용자로 설정합니다. 이렇게 하면 Apache 사용자가 가상 ​​호스트에 액세스할 수도 있습니다. 방향(이것이 내 문제를 해결한 것입니다).

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

www-data대신 사용자 로 파티션을 마운트하려면 사용자 ID를 찾아서 다음으로 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

아파치 다시 시작

sudo service apache2 restart

http://projects.dev마침내 Windows와 Ubuntu의 NTFS 파티션에 있는 모든 코드를 브라우저에서 사용할 수 있었습니다 . 누군가가 이것이 유용하다고 생각하기를 바랍니다. 건배!

답변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

하드 드라이브가 자동으로 마운트되도록 설정한 경우 파티션이 /mnt에 있기 때문에 envvar 편집 프로세스가 작동하지 않을 수 있습니다.

이 절차는 안전하지 않을 수 있지만 몇 분 동안은 작동했습니다. envvars에도 www-data 사용자를 남겨두고 Apache 사용자를 루트 그룹에 추가했습니다.

sudo usermod -G root www-data

로컬에서만 작동하는 방식이므로 큰 위험은 없다고 생각합니다.

관련 정보