내가 먼저 내가 ... 나 직장에서PHP는
너무 베어 개발자가 아닌 서버 관리 해요 가정 해 봅시다, 우리는 우리의 PHP를 개발 탑재 된 네트워크 드라이브에 파일을 업로드 (쓰기) 이동할 수 없습니다 각 Windows 컴퓨터의 공유 로컬 디렉토리에서 작업 파일을 편집하여 웹 기반 응용 프로그램을 만들 수 있습니다. 그런 다음 (linux) 스테이징 서버는 공유 드라이브를 마운트하고 서브 도메인 아래에서 각각을 제공합니다. 예 : joe.work.com은 Joe의 작업 디렉토리를 제공합니다. 그런 다음 호스트 파일을 편집하여 스테이징 서버에 하위 도메인을 지정하여 자체 스테이징 사이트에 액세스하면 모든 작업이 훌륭합니다!
PHP가 업로드 된 파일을 tmp 디렉토리에서 마운트 된 디렉토리의 디렉토리 (실제로 공유 된 Windows 드라이브 ...)로 옮길 수있는 권한이없는 것 같습니다. .
Windows 컴퓨터의 작업 디렉토리는 모든 사용자가 rw를 허용하도록 설정되어 있으며 준비 시스템의 마운트 된 디렉토리에 777을 넣으려고했지만 권한이 거부되었습니다.
예를 들어, \\joes_machine\joes_working_dir
은 스테이징 서버에 /var/mnt/joe
으로 마운트됩니다. 파일 업로드를 /images/common
(으)로 이동해야합니다.
, 난 아무것도 공상 코드 현명하고 있지 않다 :
$working_directory = '/var/mnt/joe';
$image_directory = '/images/common/';
$full_filename = $working_directory . $image_directory . $filename;
if(move_uploaded_file($_FILES['photo']['tmp_name'], $full_filename))
// do some other stuff
물론 내 오류 : 어떤 내가 파일에 대해 이해하고 있지 않다
Message: move_uploaded_file(/var/mnt/joe/images/common/resulting_filename.jpg):
failed to open stream: Permission denied
Message: move_uploaded_file(): Unable to move '/tmp/phpjsEfBc' to
'/var/mnt/joe/images/common/resulting_filename.jpg'
Linux와 PHP가 네트워크를 통해 마운트되는 Windows 공유 드라이브와 관련된 권한? 나는 그 전화를 찾는 것처럼 보이지 않는다!
일단 제작을 시작하면 우리는 스키마를 사용하지 않을 것이지만, 현재 개발 환경에서 계속할 수있는 간단한 해결책이 있다면 이상적입니다! (그리고 나는 아마도 여기에서 뭔가를 배울 것입니다 : P)
미리 감사드립니다!