Apache không tìm thấy thư mục trên Hệ thống tệp; Nối thêm \ \ xe2 \ x80 \ x9d vào cuối Đường dẫn tệp


10

Tôi có ba Máy chủ ảo đang chạy trong apache2 trên máy Macintosh cá nhân của tôi đang chạy OS X Mavericks và tôi đã gặp phải một sự nhầm lẫn. Chúng được cấu hình trong tệp httpd-vhosts.conf của tôi như sau:

<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ServerAlias localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev1"
ServerName dev1.local
ServerAlias www.dev1.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev2"
ServerName dev2.local
ServerAlias www.dev2.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev3”
ServerName dev3.local
ServerAlias www.dev3.local
</VirtualHost>

Lưu ý: Mục nhập đầu tiên cho phép tôi nhập "localhost" và tải nó như bạn mong muốn nếu không có Máy chủ ảo đang chạy.

dev1 và dev2 hoạt động tốt, nhưng tôi nhận được Lỗi 404 nói rằng "URL được yêu cầu / không được tìm thấy trên máy chủ này." khi tôi cố tải dev3 trên máy cục bộ. Tất cả ba thư mục Dev đều có cùng quyền tôi đã xác minh tên. Khi tôi kiểm tra error_log tôi thấy điều này:

[Thứ Sáu 24 tháng 1 12:55:07 2014] [lỗi] [client 127.0.0.1] Tệp không tồn tại: / Library / WebServer / Documents / dev3 \ xe2 \ x80 \ x9d

Có ai biết tại sao Apache lại thêm "\ xe2 \ x80 \ x9d" vào cuối đường dẫn Thư mục hay tại sao dev3 không tải? (Tôi nghi ngờ những ký tự được thêm ngẫu nhiên này là tại sao) Mọi sự chào đón! Cảm ơn vì đã đọc!

Câu trả lời:


16
DocumentRoot "/Library/WebServer/Documents/dev3”
                                               ^----- no proper quotation mark :9

Nếu bạn đã cài đặt php:

<?php
echo "\xe2\x80\x9d";

// or

echo utf8_decode("\xe2\x80\x9d");

// should give you ”

2
makes a "Not Bad" face and face palms hand through headBây giờ nhìn thấy, điều đó rất có ý nghĩa. Điều này cũng xảy ra với tôi với các biểu mẫu HTML ... CẢM ƠN BẠN! Tôi đã gãi đầu trong một giờ về việc này. Làm thế nào để nhân vật đó được gõ ra so với dấu ngoặc kép thông thường @DanFromGermany?
Chú Nerdicus

@UncleNerdicus phụ thuộc vào trình soạn thảo văn bản của bạn! Tôi thực sự chỉ sử dụng NetBeans, notepad ++ và vi cho mọi thứ và không bao giờ gặp vấn đề như vậy
Daniel W.

1
@DavidHoude Nó khiến tôi phải chờ thêm vài phút nữa (bộ tính giờ ngu ngốc!), Tôi không quên!
Chú Nerdicus

1
@UncleNerdicus nếu bạn gặp phải ^Mở cuối dòng hoặc tương tự, đó là do kết thúc dòng sai ( \r\nchars) dos / unix / mac (có các công cụ: dos2unix, v.v.), chỉ trong trường hợp; D
Daniel W.

2
Bạn không biết sự phóng thích niềm vui của tôi lớn đến mức nào khi tôi đọc giải pháp này. Tham gia cộng đồng này chỉ để nâng cao điều này.
roberrrt-s

1

Bạn đã bỏ lỡ VirtualHostcài đặt.

NG: DocumentRoot "/Library/WebServer/Documents/dev2"

ĐỒNG Ý: DocumentRoot /Library/WebServer/Documents/dev2


CÁi này đã sửa nó giúp tôi. Cảm ơn
Bashar Abdullah

0

DocumentRoot "/ Thư viện / Máy chủ web / Tài liệu"

nó nên

DocumentRoot / Library / WebServer / Documents

không "" trong DocumentRoot


1
Chào mừng bạn đến với Lỗi Máy chủ! Mặc dù câu trả lời của bạn có thể đúng, nhưng về cơ bản, đó là cùng một câu trả lời mà chúng tôi đã có.
jornane
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.