Tại sao tôi nhận Trang mặc định Ubuntu2 của Apache thay vì trang index.html của riêng tôi?


8

Tôi có một máy tính Ubuntu 14.10 được sử dụng để thử nghiệm trang web địa phương , nó không phục vụ cho internet. Trên đó, tôi có bảy trang web được thiết lập. Tuy nhiên, khi tôi truy cập hai trong số bảy, tôi nhận được Apache2 Ubuntu Default Pagethay vì trang chỉ mục của riêng tôi.

Theo như tôi có thể nói, tôi đã thiết lập cả bảy bằng cách sử dụng cùng một quy trình, vì vậy tôi không biết hai thứ này còn thiếu gì. Ngoài ra, trong thư mục nhật ký Apache của tôi, tôi có hai tệp nhật ký erroraccesscho mỗi trong số hai trang web hoạt động sai, nhưng tất cả chúng đều trống. Khi tôi khởi động lại apache2dịch vụ, không có lỗi. Tôi đã truy cập lại các bước của mình nhiều lần và tôi không thể thấy bất kỳ sự khác biệt nào giữa các trang web làm việc và các trang web không hoạt động.

Tôi có những lựa chọn nào để chẩn đoán vấn đề này? Tôi có thể buộc các bản ghi lỗi dài hơn bằng cách nào đó không? Có một bản ghi khác ở đâu đó mà tôi có thể tham khảo?

Dưới đây là ví dụ về một .conftệp cho một trong các trang bị trục trặc:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

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

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

2
Làm thế nào bạn tạo ra các máy chủ ảo? Bạn đã tạo chúng bằng cách thêm tập tin vào /etc/apache2/sites-available? Nếu vậy, bạn đã kích hoạt chúng với sudo a2ensite <your_site_name>? Tập tin nhật ký lỗi apache mặc định có gì trong đó không? Và bạn có cấu hình ServerAlias ​​hoặc ServerName trong tệp máy chủ ảo của mình không? Nếu bạn tắt trang web mặc định sudo a2dissite 000-default(bạn có thể bật lại trang đó sudo a2ensite 000-default), nó có hoạt động không? Ngoài ra, có thể là bạn chỉ quên khởi động lại apache?
Dan

@Dan, cảm ơn bạn đã phản hồi. Tôi đã tạo ra các trang web bằng cách thêm chúng vào sites-available. Nhật ký lỗi mặc định không có gì trong đó. Tôi đã xác định ServerAliastrong tập tin máy chủ. Tôi đã vô hiệu hóa 000-defaulttrang web nhưng điều đó không thay đổi bất cứ điều gì. Tôi đã khởi động lại và tải lại apache nhiều lần.
hỏi

Khi bạn vô hiệu hóa trang web mặc định và khởi động lại apache, nó vẫn hiển thị trang index.html mặc định hoặc nó hiển thị một trang từ một máy chủ ảo khác? Bạn có thể đăng nội dung của một trong những tập tin vhost sai không? Điều này có thể làm cho mọi thứ dễ dàng hơn nhiều để chúng tôi giúp đỡ.
Dan

@Dan, Cảm ơn bạn đã phản hồi. Khi tôi thực hiện thay đổi mà bạn đề xuất, như tôi đã đề cập, không có gì thay đổi, có nghĩa là nó đã hiển thị cùng một trang chỉ mục mặc định. Tôi đã thêm một .conftập tin vào câu hỏi của tôi.
hỏi

Câu trả lời:


8

Hãy thử như sau

Kích hoạt nhật ký dài dòng

sudo nano /etc/apache2/apache2.conf

Xác định vị trí biến LogLevel và cập nhật nó từ cảnh báo mặc định thành thông tin hoặc gỡ lỗi. gỡ lỗi sẽ tạo ra số lượng đầu ra lớn nhất.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Khởi động lại Apache

sudo service apache2 restart

Apache bao gồm một công cụ kiểm tra cú pháp nhỏ

apache2ctl -t

Kiểm tra định nghĩa máy chủ ảo

apache2ctl -S

Cảm ơn bạn cho đề nghị này. Tôi đặt mức ghi nhật ký để gỡ lỗi và tôi vẫn hoàn toàn không nhận được mục nào trong các tệp nhật ký lỗi. Nhật ký truy cập hiện hiển thị mỗi khi tôi mở các trang web, nhưng không có gì khác.
hỏi

6

Đối với tôi, một trong những gợi ý từ @Dan đã giải quyết nó.

sudo a2dissite 000-default.conf
service apache2 reload

Rõ ràng cấu hình trang mặc định đã ghi đè cấu hình vhost của tôi.


Trong máy chủ khác, nó hoạt động khác và index.php được đọc thay vì index.html. Tình huống rất lén lút
Margus Pala

2

sau khi cài đặt index.html có mức độ ưu tiên cao hơn đó là lý do tại sao bạn vẫn thấy trang Ubuntu mặc định kiểm tra thư mục này var / www / html / đổi tên hoặc xóa trang này đơn giản như vậy


1

Hóa ra vấn đề là quyền.

Khi bạn đang lưu trữ trang web trong một thư mục bên ngoài /var/wwwvà được kết nối bằng symlink, thì thư mục nguồn và thư mục mẹ của nó phải có quyền 755.

Vì một số lý do không xác định, hai trang web hoạt động sai có các quyền khác nhau và chạy chmod -R 755trên thư mục trang web và thư mục mẹ của nó , đã giải quyết vấn đề.


Bạn không nên chạy chmod -R 755trên một thư mục vì tất cả các tệp trong đó sẽ được đánh dấu là "có thể thực thi" ...
Alexis Wilke

@AlexisWilke, một lệnh tốt hơn để thiết lập quyền là gì?
hỏi

Không dễ dàng thay đổi quyền của tất cả các thư mục và không phải là tiêu chuẩn ... findMặc dù vậy, bạn có thể sử dụng . Một cái gì đó như thế này : find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke
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.