Thay đổi thư mục gốc tài liệu Apache sang ổ cứng thứ cấp


28

Tôi đã cài đặt phiên bản máy chủ Ubuntu 12.04 cho máy chủ của mình. tôi đã cài đặt máy chủ đèn. tôi cần thay đổi vị trí var / www thành vị trí đĩa cứng thứ cấp của mình. tôi đã được cấu hình rất nhiều lần tại gedit / etc / apache2 / sites-Available / default đây là mã của tôi

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

và cũng được sử dụng

sudo chown -R var/www /media/myserver/

chmod -R 755 /media/myserver/

tôi vẫn không thể kết nối / media / myserver và trình duyệt của tôi hiển thị thông báo sau

Forbidden

You don't have permission to access / on this server.

Vui lòng cho mọi người biết cách gắn myserver tại var / www của tôi, cảm ơn trước


ổ đĩa thứ hai được định dạng và gắn vào thư mục / media / myserver? bạn đã thêm một mục fstab cho ổ đĩa đó?
damien

Bạn đã kiểm tra xem dấu gạch chéo trên gốc tài liệu có phải là vấn đề hay không, chú ý xem nó đã nhận xét ở đâu không, nhưng trên bản chỉnh sửa của bạn, có.
Chris

Bạn đã thử thay đổi tập tin apache2.conf chưa?
Golden_flash

Câu trả lời:


40

Bạn sẽ phải chỉnh sửa apache2.conf000-default.confthay đổi gốc tài liệu của apache.

Máy chủ Apache được cài đặt trên var/www/html. Đây là thư mục gốc mặc định của apache.

Thay đổi thư mục gốc của Apache hoặc chuyển dự án sang /var/www/html.

  1. Để thay đổi thư mục gốc của Apache, hãy chạy:

    cd /etc/apache2/sites-available
    
  2. Sau đó mở 000-default.conftệp bằng lệnh:

    nano 000-default.conf
    
  3. Chỉnh sửa DocumentRoottùy chọn:

    DocumentRoot /path/to/my/project
    
  4. Sau đó khởi động lại máy chủ apache:

    sudo service apache2 restart
    

Nếu bạn nhận được Forbidden You don't have permission to access / on this serversau khi thay đổi gốc của apache thì hãy làm theo các bước sau

  1. Tìm apache2.confvị trí trong /etc/apache2và mở nó bằng cách sử dụng:

    nano apache2.conf
    
  2. Sử dụng Ctrl+ Wvà tìm kiếm Thư mục (Nó phải ở dòng 153)

  3. Nó sẽ giống như thế này

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Thay đổi nó thành

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Khởi động lại apache

    sudo service apache2 restart
    

Tôi đã tạo một kịch bản thay đổi root apache trong một lệnh duy nhất. Bạn có thể tìm thấy nó trên github của tôi .


Đó là loại công việc cho tôi nhưng tôi phải thêm <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. Trong /etc/apache2/apahce2.conftrước khi khởi động lại dịch vụ apache2.
r0ng

19

Có lẽ hơi muộn một chút. Nhưng vẫn..

Bạn nên chỉnh sửa quyền thư mục của mình trong apache.conf dưới / etc / apache2

Tìm kiếm cái này

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

và thêm mã này theo mã này, cho phép truy cập vào thư mục của bạn

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

Chỉ cần thay đổi gốc tài liệu trong cấu hình kích hoạt của bạn. /etc/apache2/sites-enabled/000-default và sau đó hãy chắc chắn tải lại apache của bạn.

Vì vậy, hãy thử với điều này:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Sau đó, sự cho phép thích hợp nên được đưa ra như thế này:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

vâng, bạn của tôi, tôi đã làm điều này rồi xem đoạn mã trên tôi đã nhận xét root tài liệu mặc định và chèn root tài liệu mới. Sau khi apache2 dừng lại và bắt đầu. nó không hoạt động. đó là lỗi 403 và cho thấy quyền truy cập bị từ chối và trình duyệt của tôi
Kevin - Dhinesh babu

Bạn đã thấy bản chỉnh sửa cuối cùng của tôi?
Achu

vâng tôi đã thấy điều này Tuy nhiên, điều đó cho thấy bạn không có quyền truy cập / trên máy chủ này
Kevin - Dhinesh babu

2

Là một cách giải quyết nhanh chóng (an toàn và nhanh chóng), bạn có thể đặt điểm gắn của trình điều khiển cứng bên ngoài vào thư mục gốc mặc định (/ var / www theo mặc định).

Việc chỉ định điểm gắn kết cho một thư mục tồn tại là an toàn nhưng nội dung cũ không thể truy cập được trừ khi bạn ngắt kết nối trình điều khiển.

Để tìm hiểu thêm về cách tạo điểm gắn kết, hãy tham khảo điều này .


Theo ý tưởng đó, tôi sẽ gắn một số thư mục nhất định, bằng cách sử dụng bindfs, như được mô tả ở đây: Askubfox.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf thêm tùy chọn này Chỉ mục FollowSymLinks MultiViews AllowOverride Không có thứ tự cho phép, từ chối cho phép từ tất cả

trong cấu hình ảo:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

Đối với những người sử dụng bổ sung khách VirtualBox và nhận được you don't have permission to access /on this serverbất chấp mọi thứ được đề cập ở trên:

Nếu bạn đang cố gắng đặt thư mục gốc tài liệu Apache thành thư mục chia sẻ VirtualBox và bạn đã thử mọi thứ ở trên và điều đó không giúp ích gì, thì còn một bước nữa.

Nói tóm lại, giải pháp là thêm 'dữ liệu www' của người dùng vào nhóm 'vboxsf':

sudo usermod -a -G vboxsf www-data

Bạn không thể thay đổi chủ sở hữu và / hoặc nhóm của thư mục chia sẻ VirtualBox, nhưng giải pháp ở trên hoạt động tốt với tôi.


1

Tôi cũng gặp vấn đề tương tự và có thể giải quyết nó!

Những gì bạn cần làm là

  1. bạn sửa đổi apache2.conf. Trao đổi /var/www/với con đường của bạn: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Sửa đổi 000-default.conf:

    DocumentRoot /your/path/

  3. thay đổi quyền sở hữu các thư mục cho chính bạn từ trình quản lý tệp hoặc thiết bị đầu cuối (ví dụ: sudo chown pi: path) Nếu không có điều này, bạn sẽ nhận được "Bạn không có quyền truy cập / trên máy chủ này." thông báo lỗi.

Đó là tất cả.

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.