2014-10-21 12 views
30

Tôi đã cài đặt sạch Mac OSX Yosemite nhưng tôi không thể định cấu hình Apache 2.4 như tôi đã luôn thực hiện trên các phiên bản OSX cũ hơn.Thay đổi thư mục localhost cho Yosemite Apache 2.4

Đây là những gì tôi muốn làm: đặt thư mục "localhost" thành "/ Users/username/Public /". Nhưng, mọi thứ tôi đã thử sẽ không hoạt động, tôi luôn nhận được một "Forbiden, không thể truy cập vào /" hoặc tôi nhận được mặc định "Nó hoạt động!" trang ...

Cách đơn giản chạy lại máy chủ cục bộ của tôi?

Thx

EDIT (nhờ Krister Andersson cho câu trả lời)

Đối với Mac OSX 10.10 Yosemite

Tôi cũng gửi những thay đổi tôi phải làm gì để giữ cho mọi thứ đang chạy.

Trong "/ etc/apache2/users /", tôi đã tạo tệp có tên người dùng như "myUsername.conf".

Bạn có thể lấy tên người dùng của mình bằng cách nhập "id" vào thiết bị đầu cuối. Bạn nên tìm tên người dùng của mình lúc bắt đầu bằng "uid = 501 (myUsername)".

Trong tệp mới "myUsername.conf" này, chỉ cần sao chép qua này:

<Directory "/Users/myUsername/Sites/"> 
    AllowOverride All 
    Options Indexes MultiViews 
    Options +FollowSymLinks 
    Require all granted 
</Directory> 

Dont tha thứ để thay đổi giá trị myUsername.

Sau đó, trong tập tin "/etc/apache2/httpd.conf", bỏ ghi chú tất cả hai dòng sau:

167 #LoadModule userdir_module libexec/apache2/mod_userdir.so 
169 #LoadModule php5_module libexec/apache2/libphp5.so 

Đường dây 236, thay đổi thư mục của "DocumentRoot" để bất cứ điều gì bạn muốn. Dòng 250, đặt "Tùy chọn" thành "Tùy chọn" Tùy chọn Chỉ mục FollowSymLinks Multiviews ". Dòng 258, đặt" AllowOverride None "thành" AllowOverride All ". Dòng 263, đặt" Yêu cầu tất cả bị từ chối "thành" Yêu cầu tất cả được cấp "

Trong Terminal, khởi động lại apache bằng cách gõ "sudo apachectl restart".

Nó làm việc cho tôi trên Mac OS X 10.10 Yosemite sạch cài đặt.

+1

Tôi thích cách bạn sử dụng từ "Và" có ... ("những gì bạn đã cố gắng cho đến nay?" là không được phép.) –

+0

có thể trùng lặp của [Apache localhost/~ tên người dùng/không làm việc] (http://stackoverflow.com/questions/ 24583859/apache-localhost-username-not-working) –

+0

Không, nó không phải là một bản sao. – Jordan

Trả lời

41

tôi vừa mới cài đặt Yosemite và tôi cố gắng thay đổi DocumentRoot Đầu tiên tôi sửa đổi các dòng sau trong /private/etc/apache2/httpd.conf:

DocumentRoot "/Library/WebServer/Documents" 
<Directory "/Library/WebServer/Documents"> 
Options FollowSymLinks Multiviews 

AllowOverride None 
</Directory> 

tới:

DocumentRoot "<CUSTOM_PATH>" 
<Directory "<CUSTOM_PATH>"> 
Options Indexes FollowSymLinks Multiviews 

AllowOverride All 
</Directory> 

trên sẽ thiết lập một tùy chỉnh DocumentRoot, cho phép danh sách thư mục và cho phép cấu hình để được ghi đè bởi .htaccess tập tin.

Sau đó, tôi đã khởi động lại apache bằng cách thực hiện sudo apachectl restart.

Một cách tiếp cận khác là thiết lập máy chủ ảo.Trước tiên hãy chắc chắn để các dòng sau là uncomment trong /private/etc/apache2/httpd.conf tập tin của bạn:

# Virtual hosts 
#Include /private/etc/apache2/extra/httpd-vhosts.conf 

Sau đó, bạn có thể thêm như sau trong httpd-vhosts.conf file:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/Library/WebServer/Documents" 
    ServerName example.local 
    ErrorLog "/private/var/log/apache2/example.local-error_log" 
    CustomLog "/private/var/log/apache2/example.local-access_log" common 

    <Directory "/Library/WebServer/Documents"> 
    Options Indexes FollowSymLinks Multiviews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

trên sẽ thiết lập một thư mục gốc tài liệu cho một mới máy chủ ảo có tên example.local và bật danh sách thư mục và cho phép các cấu hình bị ghi đè bởi các tệp .htaccess. Tất nhiên bạn cũng sẽ cần phải khởi động lại apache để những thay đổi có hiệu lực:

sudo apachectl restart 
+1

Điều này làm việc cho tôi. Cảm ơn! – ksb86

+1

Đẹp! Nó cũng có tác dụng với tôi. Tôi xấu trong 'cấu hình máy chủ'. Cảm ơn rất nhiều, tôi cũng trả lời câu hỏi của mình để đăng cấu hình (tôi thêm một số thay đổi từ các nguồn khác). Tiền thưởng: Bạn có biết cách đặt localhost thành root "/" chỉ có sẵn cho 127.0.0.1 và 127.0.0.1 được yêu cầu từ bên ngoài được chuyển hướng đến thư mục khác không? – Jordan

+0

@Jordan - Tôi có thể giúp, nhưng vì đây có vẻ là một câu hỏi khác nên tôi nghĩ bạn nên tạo một câu hỏi mới và bạn cũng nên cố gắng thêm thông tin rõ ràng hơn về những gì bạn đang cố gắng làm. – Cyclonecode

10

On El Capitan, bạn nên khởi động lại apache với "-k" cờ: sudo apachectl -k restart

+1

Điều này giải quyết được vấn đề của tôi với thư mục gốc không cập nhật :) – borislemke

Các vấn đề liên quan