2017-02-20 3 views
0

Apache 2.4를 우분투 16에 설치했습니다. 모두 작동합니다.Apache 별칭이 .htaccess에서 작동하지 않습니다.

localhost에 앉아 웹 사이트를 운영하고 있는데, 이는 정상적으로 작동합니다.

웹 사이트 내에서 사용하려면 USB 드라이브의 파일에 액세스 할 수 있어야합니다.

PHP를 사용하여 USB 드라이브에 액세스하고 파일 정보를 얻는 데는 문제가 없지만 웹 페이지에 이미지를 표시하려고 할 때 문제가 발생합니다. 나는 htaccess로 파일을 사용하고 웹 사이트에 USB 드라이브에 폴더를 추가 할 mod_alias가를 사용하기 위해 노력하고있어

, 여기

DirectoryIndex index.php 
    Alias "/USB" "/mnt/sdb1/images" 
    <Directory "mnt/sdb1/images"> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all granted 
    </Directory> 
    AddType audio/mpeg .mp3 

그래서 내가 알고 내 htaccess로 파일의 내용이다. LocalHost에 갈 때 기본 파일로 index.php 파일을로드하기 때문에 htaccess 파일이 작동합니다.

PHP 스크립트가 액세스하여 페이지에 표시 할 이미지 파일을 수집했기 때문에 PHP가 scandir을 사용하여 폴더의 모든 이미지를 가져 오므로 USB 드라이브의 파일 경로가 정확하다는 것을 알고 있습니다 (/ mnt/sdb1/images) 이미지를 표시하도록 페이지에 올바르게 표시합니다 (예 :

<img src="/USB/image1.jpg" /> 

는하지만 이미지는 페이지 자체에로드되지 않으며 나는 별칭이 동작하지 않는 것 때문에 그것의 추정한다.

도와주세요.

답변

0

한 가지 가능성은 USB 파일에 www 데이터 액세스 권한을 부여해야한다는 것입니다. 보통 아파치 디렉토리에, 당신은 같은에 소유자를 설정합니다

chown root:www-data * 
chmod 750 * (for directories) 
chmod 640 * (for files) 

, 당신은 USB 드라이브 (죄송합니다, USB 처리하지 않음)에 해당 할 수 없을 수도 있지만, 특정 그룹 인 경우 당신이 그 그룹에 www가 데이터를 추가 할 수 있습니다

sudo usermod -a -G <USBGroup> www-data 

따라서, 예를 들어, 내가 추측하고 내 가상 머신 (/ 미디어/sf_node)의 공유 드라이브가는 USB 드라이브처럼 많이 작동 . 나는 다음과 같은 명령을 실행 그래서 :

ls -la /media/sf_node 

을 나는 참조 : 그 디렉토리의 그룹 vboxsf을 보여줍니다

drwxrwx--- 1 root vboxsf 4096 Jan 27 11:10 web 

합니다. 그러면 다음 작업을 수행 할 수 있습니다.

usermod -a -G vboxsf www-data 
+0

도움 주셔서 감사합니다. PHP를 통해 드라이브에 액세스 할 수 있다는 사실은 내 권한이 양호하다는 것을 의미하지 않습니까? –

+0

Nope. 코드가 실행될 때 PHP가 누구이며 파일에 대한 권한이 필요합니다. PHP가 사용자 이름으로 실행될 때 권한이 있지만 아파치에서 실행될 때는 www-data – Katie

+0

다시 한번 감사드립니다. 나는 다음을 시도했다. sudo chown -R root : www-data/mnt/sdb1 그러나 '작동이 허용되지 않습니다.'라는 메시지가 나타납니다. –