Apache 2 Web Server on Ubuntu 12.04 LTS (Precise Pangolin)

Hướng dẫn này giải thích làm thế nào để cài đặt và cấu hình máy chủ web Apache trên Ubuntu 12.04 (tê tê Precise). Tất cả cấu hình sẽ được thực hiện thông qua các thiết bị đầu cuối; chắc chắn rằng bạn đang đăng nhập như là người chủ thông qua SSH. Nếu bạn đã không theo hướng dẫn bắt đầu, đó là khuyến cáo rằng bạn làm như vậy trước khi bắt đầu hướng dẫn này. Cũng lưu ý rằng nếu bạn đang tìm kiếm để cài đặt một LAMP stack đầy đủ, bạn có thể muốn xem xét việc sử dụng các hướng dẫn của chúng tôi ĐÈN.
Đặt Hostname

Trước khi bạn bắt đầu cài đặt và cấu hình các thành phần được mô tả trong hướng dẫn này, hãy chắc chắn rằng bạn đã theo hướng dẫn của chúng tôi để thiết lập tên máy của bạn. Ban hành các lệnh sau đây để chắc chắn rằng nó được thiết lập đúng cách:

 

1
2
hostname
hostname -f

Lệnh đầu tiên sẽ hiển thị tên hostname của bạn, và lần thứ hai sẽ hiển thị tên miền đầy đủ của bạn (FQDN).
Cài đặt Apache 2

Hãy chắc chắn rằng các kho gói của bạn và cài đặt các chương trình được cập nhật bằng cách phát hành các lệnh sau:

 

1
2
apt-get update
apt-get upgrade --show-upgraded

Nhập lệnh sau để cài đặt các máy chủ web Apache 2, tài liệu của nó và một bộ sưu tập các tiện ích.

1
apt-get install apache2 apache2-doc apache2-utils

Edit the main Apache configuration file to adjust the resource use settings. The settings shown below are a good starting point for a vultr 1GB.

/etc/apache2/apache2.conf
1
2
3
4
5
6
7
8
9
10
11
KeepAlive Off

...

<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 6
MaxSpareServers 12
MaxClients 80
MaxRequestsPerChild 3000
</IfModule>

Cài đặt Hỗ trợ cho Scripting

Các lệnh sau đây là tùy chọn, và cần được chạy nếu bạn muốn có hỗ trợ trong Apache cho server-side scripting trong PHP, Ruby, Python, Perl.

Để cài đặt hỗ trợ Ruby, phát hành các lệnh sau đây:

 

1
apt-get install libapache2-mod-ruby

Để cài đặt hỗ trợ Perl, phát hành các lệnh sau đây:

1
apt-get install libapache2-mod-perl2 

Để cài đặt Python hỗ trợ, thực hiện lệnh sau:

1
apt-get install libapache2-mod-python 

Nếu bạn cần hỗ trợ cho MySQL trong Python, bạn cũng sẽ cần phải cài đặt Python hỗ trợ MySQL:

1
apt-get install python-mysqldb

Ứng dụng PHP của bạn có thể yêu cầu phụ thuộc bổ sung có trong Ubuntu. Để kiểm tra sự phụ thuộc PHP có sẵn chạy apt-cache search php, mà sẽ cung cấp một danh sách các tên gói và mô tả. Để cài đặt, thực hiện lệnh sau:

1
apt-get install libapache2-mod-php5 php5 php-pear php5-xcache
Chạy lệnh sau để cài đặt các gói php5-Suhosin, cung cấp thêm độ an toàn để cài đặt PHP của bạn:
1
apt-get install php5-suhosin

Nếu bạn cũng đang hy vọng để chạy PHP với MySQL, sau đó cũng cài đặt hỗ trợ MySQL:

1
apt-get install php5-mysql

Configure Tên dựa trên máy chủ ảo

Có nhiều cách khác nhau để thiết lập máy chủ ảo, tuy nhiên chúng tôi khuyến nghị các phương pháp dưới đây. Theo mặc định, Apache lắng nghe tất cả các địa chỉ IP có sẵn cho nó.

Đầu tiên, hãy dùng lệnh sau để vô hiệu hóa mặc định Apache máy chủ ảo.

 

1
a2dissite default

Mỗi máy chủ ảo bổ sung cần tập tin riêng của mình trong / etc / apache2 / sites-available / thư mục. Trong ví dụ này, bạn sẽ tạo ra các tập tin cho hai tên dựa trên hầu như lưu trữ trang web, “example.net” và “example.org”.

Đầu tiên tạo example.net (/etc/apache2/sites-available/example.net.conf) để nó giống như sau.

 

/etc/apache2/sites-available/example.net.conf
1
2
3
4
5
6
7
8
<VirtualHost *:80> 
     ServerAdmin webmaster@example.net     
     ServerName example.net
     ServerAlias www.example.net
     DocumentRoot /var/www/example.net/public_html/
     ErrorLog /var/www/example.net/logs/error.log 
     CustomLog /var/www/example.net/logs/access.log combined
</VirtualHost>

Nếu bạn muốn kích hoạt Perl, thêm những dòng sau vào entry VirtualHost trên.

/etc/apache2/sites-available/example.net.conf
1
2
Options ExecCGI
AddHandler cgi-script .pl

Tiếp theo, tạo example.org (/etc/apache2/sites-available/example.org.conf) để nó giống thế này:

/etc/apache2/sites-available/example.org.conf
1
2
3
4
5
6
7
8
<VirtualHost *:80> 
     ServerAdmin admin@example.org
     ServerName example.org
     ServerAlias www.example.org
     DocumentRoot /var/www/example.org/public_html/
     ErrorLog /var/www/example.org/logs/error.log 
     CustomLog /var/www/example.org/logs/access.log combined
</VirtualHost>

Bạn sẽ lưu ý rằng một số tùy chọn cơ bản được quy định cho cả hai trang web, kể cả trường hợp các tập tin cho các trang web sẽ cư trú (dưới / var / www /). Bạn có thể thêm (hoặc loại bỏ) các tùy chọn cấu hình bổ sung, chẳng hạn như sự hỗ trợ Perl, trên cơ sở từng trang web để các tập tin như nhu cầu của bạn sai khiến.

Tạo thư mục cần thiết cho các trang web này bằng cách phát hành các lệnh sau:

 

1
2
3
4
5
mkdir -p /var/www/example.net/public_html
mkdir /var/www/example.net/logs

mkdir -p /var/www/example.org/public_html
mkdir /var/www/example.org/logs

Cho phép các trang web bằng cách phát hành các lệnh này:

1
2
a2ensite example.net.conf
a2ensite example.org.conf

Cuối cùng, khởi động lại máy chủ Apache để khởi tạo tất cả các thay đổi, với lệnh này:

1
service apache2 restart

Khi bạn tạo hoặc chỉnh sửa bất kỳ tập tin máy chủ ảo, bạn sẽ cần phải tải lại các cấu hình, mà bạn có thể làm mà không khởi động lại máy chủ với các lệnh sau đây:

1
sudo service apache2 reload

Xin chúc mừng! Bây giờ bạn có cài đặt Apache trên Ubuntu Linux VPS của bạn và đã cấu hình máy chủ để lưu trữ ảo.
Cài đặt Apache Modules

Một trong những thế mạnh chính của Apache là tùy biến cực đoan của nó và tính linh hoạt. Với sự hỗ trợ của nó cho một số lượng lớn các module, có vài nhiệm vụ phục vụ web Apache không thể thực hiện. Theo mặc định, các mô-đun và các tập tin cấu hình của họ được cài đặt trong thư mục / etc / apache2 / mods-available / thư mục. Tạo một danh sách các thư mục này sẽ cho bạn biết những gì các module được cài đặt. Để kích hoạt một module được liệt kê trong thư mục này, sử dụng lệnh sau đây:

 

1
a2enmod [module-name]

Lưu ý rằng trong / etc / apache2 / mods-available / thư mục, tập tin có phần mở rộng và .load conf. Tên mô-đun không bao gồm phần mở rộng.

Để vô hiệu hóa một mô-đun hiện đang được kích hoạt, sử dụng lệnh nghịch đảo:

 

1
a2dismod [module-name]

To get a list of available Apache modules modules in the Ubuntu repository use the following command:

1
apt-cache search libapache2* 

To install one of these modules use the command:

1
apt-get install [module-name]

Modules nên được kích hoạt và sẵn sàng để sử dụng sau cài đặt, mặc dù bạn có thể phải áp dụng các tùy chọn cấu hình bổ sung để có quyền truy cập vào các chức năng của các mô-đun. Tham khảo tài liệu module Apache để biết thêm thông tin về cấu hình của module cụ thể.
Tùy chọn cấu hình

Một trong những điểm mạnh và những cản trở, của Apache là số tiền to lớn của tính linh hoạt được cung cấp trong các tập tin cấu hình của nó. Trong quá trình cài đặt mặc định của Apache 2 trên Ubuntu, cấu hình chính nằm trong các tập tin /etc/apache2/apache2.conf, nhưng chỉ dẫn cấu hình Apache được nạp từ các tập tin trong một số địa điểm khác nhau, theo một thứ tự cụ thể. Cấu hình tập tin được đọc theo thứ tự sau đây, với các mặt hàng quy định sau này lấy được ưu tiên hơn các tùy chọn trước đó và khả năng xung đột

 

  1. /etc/apache2/apache2.conf
  2. Files with .load or .conf extensions in /etc/apache2/mods-enabled/ directory.
  3. /etc/apache2/httpd.conf (Blank by default.)
  4. /etc/apache2/ports.conf
  5. Files within the /etc/apache2/conf.d/ directory.
  6. Files within the /etc/apache2/sites-enabled/ directory.
  7. Per-directory .htaccess files in the directory.

Hãy nhớ rằng, các tập tin sau đó được ưu tiên hơn các tập tin trước đó được trích dẫn. Trong vòng một thư mục của tập tin cấu hình bao gồm, các file sẽ được đọc theo thứ tự dựa trên loại tên tập tin của họ.

Apache sẽ theo liên kết mềm đọc các tập tin cấu hình, do đó bạn có thể tạo ra các liên kết trong các thư mục và địa điểm để các tập tin được thực sự nằm ở những nơi khác trong hệ thống tập tin của bạn.

Thực hành tốt nhất cho hầu hết các cài đặt lệnh rằng chúng tôi khuyên bạn không nên thay đổi các tập tin cấu hình mặc định sau đây: /etc/apache2/httpd.conf, tập tin trong / etc / apache2 / mods-enabled /, và trong hầu hết các trường hợp / etc / apache2 / apache2 conf. Điều này là để tránh nhầm lẫn không cần thiết và các cuộc xung đột không mong muốn trong tương lai.

Nói chung, theo quy định trong hướng dẫn ĐÈN chúng tôi và các nơi khác, các file cấu hình máy ảo nên được đặt trong thư mục / etc / apache2 / sites-available / thư mục (và biểu tượng liên kết đến các trang web-enabled / với công cụ a2ensite. Điều này cho phép một rõ ràng và cụ thể cấu hình cho mỗi trang web.

Trong thực tế, phần lớn các tùy chọn cấu hình có thể sẽ nằm trong các tập tin cấu hình máy chủ ảo trang web cụ thể. Nếu bạn cần phải thiết lập một tùy chọn cấu hình hệ thống hoặc không sử dụng lưu trữ ảo, các thực hành tốt nhất là để xác định các tùy chọn trong các tập tin được tạo ra bên dưới conf.d / thư mục.
Multi-Processing Mô-đun

Các cấu hình Apache mặc định sử dụng một công cụ gọi là MPM-nhân, module đa xử lý này có thể xử lý một số lượng lớn các yêu cầu một cách nhanh chóng bằng cách sử dụng nhiều chủ đề cho mỗi quá trình lao động. Tuy nhiên, điều này sử dụng nhiều chủ đề không tương thích với một số phần mở rộng PHP. Khi PHP được cài đặt MPM-công nhân được thay thế bằng MPM prefork-, cho phép Apache để xử lý yêu cầu mà không Threading cho khả năng tương thích tốt hơn với một số phần mềm. Hơn nữa, sử dụng MPM prefork-cho phép Apache để cô lập các yêu cầu trong quy trình riêng biệt để nếu một yêu cầu không cho một số lý do, yêu cầu khác sẽ không bị ảnh hưởng.

Để biết thêm các thiết lập phức tạp, tuy nhiên, chúng tôi khuyên bạn nên xem xét sử dụng một mô-đun MPM thay thế được gọi là “ITK.” Mpm-ITK là khá giống với prefork, nhưng nó đi một bước xa hơn và chạy các quá trình cho mỗi trang web dưới một tài khoản người dùng riêng biệt. Điều này đặc biệt hữu ích trong các tình huống mà bạn đang lưu trữ một số trang web riêng biệt mà bạn cần phải cô lập các trang web trên cơ sở quyền của người dùng.

Bắt đầu bằng cách cài đặt các mô-đun mpm-ITK:

 

1
apt-get install apache2-mpm-itk

Bây giờ, trong <VirtualHost> mục cho các trang web của bạn (các tập tin trang web cụ thể trong / etc / apache2 / sites-available /) thêm sub-block sau đây:

Apache Cấu hình Virtual Host

 

1
2
3
<IfModule mpm_itk_module>
   AssignUserId webeditor webgroup
</IfModule>

Trong ví dụ này, WebEditor là tên của người sử dụng của các trang web cụ thể trong câu hỏi, và webgroup là tên của các nhóm cụ thể rằng “sở hữu” các tập tin máy chủ web có liên quan và quy trình. Hãy nhớ rằng bạn phải tạo các tài khoản người dùng và nhóm bằng cách sử dụng lệnh useradd.