저는 우분투와 윈도우를 사용하고 있습니다. Windows를 사용할 때 var/www
Linux 파티션에 있는 파일에 액세스할 수 없습니다. 그래서 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
문제를 해결하려면 이것이 필요합니다.
기본적으로 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
로컬에서만 작동하는 방식이므로 큰 위험은 없다고 생각합니다.