Các quy trình sau đây giúp bạn cài đặt máy chủ web Apache có hỗ trợ PHP và MariaDB [một nhánh của MySQL do cộng đồng phát triển] trên phiên bản Amazon Linux 2 của bạn [đôi khi được gọi là máy chủ web LAMP hoặc ngăn xếp LAMP]. Bạn có thể sử dụng máy chủ này để lưu trữ một trang web tĩnh hoặc triển khai ứng dụng PHP động để đọc và ghi thông tin vào cơ sở dữ liệu
Nếu bạn đang cố gắng thiết lập máy chủ web LAMP trên một bản phân phối khác, chẳng hạn như Ubuntu hoặc Red Hat Enterprise Linux, hướng dẫn này sẽ không hoạt động. Đối với Amazon Linux AMI, xem Hướng dẫn. Cài đặt máy chủ web LAMP trên Amazon Linux AMI. Đối với Ubuntu, hãy xem tài liệu cộng đồng Ubuntu sau. ApacheMySQLPHP. Đối với các bản phân phối khác, xem tài liệu cụ thể của họ
Tùy chọn. Hoàn thành hướng dẫn này bằng tự động hóa
Để hoàn thành hướng dẫn này bằng AWS Systems Manager Automation thay vì các tác vụ sau, hãy chạy tài liệu AWSDocs-InstallALAMPServer-AL2Automation
Bước 1. Chuẩn bị máy chủ LAMP
điều kiện tiên quyết
Hướng dẫn này giả định rằng bạn đã khởi chạy phiên bản mới bằng Amazon Linux 2, với tên DNS công khai có thể truy cập được từ internet. Để biết thêm thông tin, xem Bước 1. Khởi chạy một phiên bản. Bạn cũng phải định cấu hình nhóm bảo mật của mình để cho phép kết nối SSH [cổng 22], HTTP [cổng 80] và HTTPS [cổng 443]. Để biết thêm thông tin về các điều kiện tiên quyết này, hãy xem Cho phép lưu lượng truy cập vào cho các phiên bản Linux của bạn
Quy trình sau đây cài đặt phiên bản PHP mới nhất hiện có trên Amazon Linux 2, hiện tại là PHP 7. 2. Nếu bạn dự định sử dụng các ứng dụng PHP khác với những ứng dụng được mô tả trong hướng dẫn này, bạn nên kiểm tra khả năng tương thích của chúng với PHP 7. 2
Lưu ý, gói cài đặt này đi kèm với Mariadb [đèn-mariadb10. 2-php7. 2]. Một số lỗ hổng trước đây trong php7. 2 đã được vá qua backportsby AWS, tuy nhiên, phần mềm bảo mật cụ thể của bạn vẫn có thể gắn cờ phiên bản PHP này. Đảm bảo bạn thực hiện cập nhật hệ thống thường xuyên. Bạn có thể chọn cài đặt phiên bản PHP mới hơn, tuy nhiên, bạn sẽ cần cài đặt riêng MariaDB
Để chuẩn bị máy chủ LAMP
Kết nối với phiên bản của bạn
Để đảm bảo rằng tất cả các gói phần mềm của bạn đều được cập nhật, hãy thực hiện cập nhật phần mềm nhanh trên phiên bản của bạn. Quá trình này có thể mất vài phút, nhưng điều quan trọng là phải đảm bảo rằng bạn có các bản sửa lỗi và cập nhật bảo mật mới nhất
Tùy chọn
3 cài đặt các bản cập nhật mà không yêu cầu xác nhận. Nếu bạn muốn kiểm tra các bản cập nhật trước khi cài đặt, bạn có thể bỏ qua tùy chọn này[ec2-user ~]$
sudo yum install -y httpd mariadb-server
[ec2-user ~]$
sudo yum update -y
Cài đặt kho lưu trữ
4 và[ec2-user ~]$
sudo yum install -y httpd mariadb-server
5 Amazon Linux Extras để tải các phiên bản mới nhất của gói LAMP MariaDB và PHP cho Amazon Linux 2[ec2-user ~]$
sudo yum install -y httpd mariadb-server
[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Nếu bạn gặp lỗi cho biết
6, thì phiên bản của bạn không được khởi chạy với AMI Amazon Linux 2 [có thể bạn đang sử dụng AMI Amazon Linux thay thế]. Bạn có thể xem phiên bản Amazon Linux của mình bằng lệnh sau[ec2-user ~]$
sudo yum install -y httpd mariadb-server
cat /etc/system-release
Để thiết lập máy chủ web LAMP trên Amazon Linux AMI , xem Hướng dẫn. Cài đặt máy chủ web LAMP trên Amazon Linux AMI
Bây giờ phiên bản của bạn là phiên bản hiện tại, bạn có thể cài đặt các gói phần mềm máy chủ web Apache, MariaDB và PHP
Sử dụng lệnh cài đặt yum để cài đặt nhiều gói phần mềm và tất cả các phụ thuộc có liên quan cùng một lúc
[ec2-user ~]$
sudo yum install -y httpd mariadb-server
Bạn có thể xem các phiên bản hiện tại của các gói này bằng lệnh sau
________số 8Khởi động máy chủ web Apache
[ec2-user ~]$
sudo systemctl start httpd
Sử dụng lệnh systemctl để định cấu hình máy chủ web Apache khởi động ở mỗi lần khởi động hệ thống
0[ec2-user ~]$
sudo yum update -y
Bạn có thể xác minh rằng httpd đang bật bằng cách chạy lệnh sau
1[ec2-user ~]$
sudo yum update -y
Thêm quy tắc bảo mật để cho phép kết nối HTTP [cổng 80] đến phiên bản của bạn nếu bạn chưa làm như vậy. Theo mặc định, một nhóm bảo mật launch-wizard-
7 đã được thiết lập cho phiên bản của bạn trong quá trình khởi tạo. Nhóm này chứa một quy tắc duy nhất để cho phép kết nối SSH[ec2-user ~]$
sudo yum install -y httpd mariadb-server
Mở bảng điều khiển Amazon EC2 tại https. // bảng điều khiển. aws. amazon. com/ec2/
Chọn Phiên bản và chọn phiên bản của bạn
Trên tab Bảo mật, hãy xem các quy tắc gửi đến. Bạn nên xem quy tắc sau
3[ec2-user ~]$
sudo yum update -y
Sử dụng
8 cho phép tất cả các địa chỉ IPv4 truy cập vào phiên bản của bạn bằng SSH. Điều này có thể chấp nhận được trong một thời gian ngắn trong môi trường thử nghiệm nhưng không an toàn cho môi trường sản xuất. Trong sản xuất, bạn chỉ cho phép một địa chỉ IP hoặc dải địa chỉ cụ thể truy cập vào phiên bản của mình[ec2-user ~]$
sudo yum install -y httpd mariadb-server
Chọn liên kết cho nhóm bảo mật. Sử dụng quy trình trong Thêm quy tắc vào nhóm bảo mật, thêm quy tắc bảo mật gửi đến mới với các giá trị sau
Loại. HTTP
giao thức. TCP
Phạm vi cảng. 80
Nguồn. Tập quán
Kiểm tra máy chủ web của bạn. Trong trình duyệt web, hãy nhập địa chỉ DNS công cộng [hoặc địa chỉ IP công khai] của phiên bản của bạn. Nếu không có nội dung trong
9, bạn nên xem trang kiểm tra Apache. Bạn có thể lấy DNS công khai cho phiên bản của mình bằng bảng điều khiển Amazon EC2 [kiểm tra cột DNS công cộng; nếu cột này bị ẩn, hãy chọn Hiển thị/Ẩn cột [biểu tượng hình bánh răng] và chọn DNS công cộng][ec2-user ~]$
sudo yum install -y httpd mariadb-server
Xác minh rằng nhóm bảo mật cho phiên bản có quy tắc cho phép lưu lượng HTTP trên cổng 80. Để biết thêm thông tin, hãy xem Thêm quy tắc vào nhóm bảo mật
Nếu không sử dụng Amazon Linux, bạn cũng có thể cần định cấu hình tường lửa trên phiên bản của mình để cho phép các kết nối này. Để biết thêm thông tin về cách định cấu hình tường lửa, hãy xem tài liệu về bản phân phối cụ thể của bạn
Apache httpd phục vụ các tệp được lưu trong một thư mục được gọi là gốc tài liệu Apache. Gốc tài liệu Amazon Linux Apache là
[ec2-user ~]$
sudo yum install -y httpd mariadb-server
9, theo mặc định được sở hữu bởi rootĐể cho phép tài khoản
yum info package_name
1 thao tác với các tệp trong thư mục này, bạn phải sửa đổi quyền sở hữu và quyền của thư mục. Có nhiều cách để hoàn thành nhiệm vụ này. Trong hướng dẫn này, bạn thêm yum info package_name
1 vào nhóm yum info package_name
3, để cấp cho nhóm yum info package_name
3 quyền sở hữu thư mục yum info package_name
5 và gán quyền ghi cho nhómĐể đặt quyền truy cập tệp
Thêm người dùng của bạn [trong trường hợp này là
1] vào nhómyum info
package_name
3yum info
package_name
4[ec2-user ~]$
sudo yum install -y httpd mariadb-server
Đăng xuất rồi đăng nhập lại để chọn nhóm mới, sau đó xác minh tư cách thành viên của bạn
Đăng xuất [sử dụng lệnh thoát hoặc đóng cửa sổ đầu cuối]
0[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Để xác minh tư cách thành viên của bạn trong nhóm
3, hãy kết nối lại với phiên bản của bạn rồi chạy lệnh sauyum info
package_name
1[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Thay đổi quyền sở hữu nhóm của
5 và nội dung của nó thành nhómyum info
package_name
3yum info
package_name
2[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Để thêm quyền ghi nhóm và đặt ID nhóm trên các thư mục con trong tương lai, hãy thay đổi quyền thư mục của
5 và các thư mục con của nóyum info
package_name
3[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Để thêm quyền ghi nhóm, hãy thay đổi đệ quy quyền truy cập tệp của
5 và các thư mục con của nóyum info
package_name
4[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Giờ đây,
yum info package_name
1 [và bất kỳ thành viên nào trong tương lai của nhóm yum info package_name
3] có thể thêm, xóa và chỉnh sửa tệp trong thư mục gốc của tài liệu Apache, cho phép bạn thêm nội dung, chẳng hạn như trang web tĩnh hoặc ứng dụng PHPĐể bảo mật máy chủ web của bạn [Tùy chọn]
Máy chủ web chạy giao thức HTTP không cung cấp bảo mật vận chuyển cho dữ liệu mà nó gửi hoặc nhận. Khi bạn kết nối với máy chủ HTTP bằng trình duyệt web, các URL mà bạn truy cập, nội dung của các trang web bạn nhận được và nội dung [bao gồm cả mật khẩu] của bất kỳ biểu mẫu HTML nào mà bạn gửi đều hiển thị cho những kẻ nghe lén ở bất kỳ đâu dọc theo đường dẫn mạng. Cách tốt nhất để bảo mật máy chủ web của bạn là cài đặt hỗ trợ cho HTTPS [HTTP Secure], giúp bảo vệ dữ liệu của bạn bằng mã hóa SSL/TLS
Để biết thông tin về cách bật HTTPS trên máy chủ của bạn, hãy xem Hướng dẫn. Định cấu hình SSL/TLS trên Amazon Linux 2
Bước 2. Kiểm tra máy chủ LAMP của bạn
Nếu máy chủ của bạn được cài đặt và đang chạy, đồng thời quyền đối với tệp của bạn được đặt chính xác, thì tài khoản
yum info package_name
1 của bạn sẽ có thể tạo tệp PHP trong thư mục [ec2-user ~]$
sudo yum install -y httpd mariadb-server
9 có sẵn từ internetĐể kiểm tra máy chủ LAMP của bạn
Tạo một tệp PHP trong thư mục gốc của tài liệu Apache
5[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Nếu bạn gặp lỗi "Quyền bị từ chối" khi cố gắng chạy lệnh này, hãy thử đăng xuất và đăng nhập lại để chọn các quyền nhóm phù hợp mà bạn đã định cấu hình trong Để đặt quyền đối với tệp
Trong trình duyệt web, nhập URL của tệp bạn vừa tạo. URL này là địa chỉ DNS công cộng của phiên bản của bạn, theo sau là dấu gạch chéo lên và tên tệp. Ví dụ
6[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Bạn sẽ thấy trang thông tin PHP
Nếu bạn không nhìn thấy trang này, hãy xác minh rằng tệp
7 đã được tạo đúng ở bước trước. Bạn cũng có thể xác minh rằng tất cả các gói cần thiết đã được cài đặt bằng lệnh sau[ec2-user ~]$
sudo systemctl start httpd
7[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Nếu bất kỳ gói cần thiết nào không được liệt kê trong đầu ra của bạn, hãy cài đặt chúng bằng lệnh Sudo yum install
8. Đồng thời xác minh rằng các tính năng bổ sung[ec2-user ~]$
sudo systemctl start httpd
5 và[ec2-user ~]$
sudo yum install -y httpd mariadb-server
4 được bật trong đầu ra của lệnh amazon-linux-extras[ec2-user ~]$
sudo yum install -y httpd mariadb-server
Xóa tệp
01. Mặc dù đây có thể là thông tin hữu ích, nhưng nó không nên được phát trên internet vì lý do bảo mật[ec2-user ~]$
sudo yum update -y
8[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Bây giờ bạn sẽ có một máy chủ web LAMP đầy đủ chức năng. Nếu bạn thêm nội dung vào thư mục gốc của tài liệu Apache tại
[ec2-user ~]$
sudo yum install -y httpd mariadb-server
9, thì bạn sẽ có thể xem nội dung đó tại địa chỉ DNS công cộng dành cho phiên bản của mìnhBước 3. Bảo mật máy chủ cơ sở dữ liệu
Cài đặt mặc định của máy chủ MariaDB có một số tính năng tuyệt vời để thử nghiệm và phát triển, nhưng chúng nên bị vô hiệu hóa hoặc loại bỏ đối với các máy chủ sản xuất. Lệnh mysql_secure_installation hướng dẫn bạn quy trình đặt mật khẩu gốc và xóa các tính năng không an toàn khỏi cài đặt của bạn. Ngay cả khi bạn không định sử dụng máy chủ MariaDB, chúng tôi khuyên bạn nên thực hiện quy trình này
Để bảo mật máy chủ MariaDB
Khởi động máy chủ MariaDB
9[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Chạy mysql_secure_installation
0cat /etc/system-release
Khi được nhắc, hãy nhập mật khẩu cho tài khoản root
Nhập mật khẩu root hiện tại. Mặc định tài khoản root không được đặt mật khẩu. nhấn nút Enter
Nhập
03 để đặt mật khẩu và nhập mật khẩu an toàn hai lần. Để biết thêm thông tin về cách tạo mật khẩu an toàn, hãy xem https. // danh tính an toàn. Norton. com/trình tạo mật khẩu/. Đảm bảo lưu trữ mật khẩu này ở nơi an toàn[ec2-user ~]$
sudo yum update -y
Đặt mật khẩu gốc cho MariaDB chỉ là biện pháp cơ bản nhất để bảo mật cơ sở dữ liệu của bạn. Khi bạn xây dựng hoặc cài đặt một ứng dụng dựa trên cơ sở dữ liệu, bạn thường tạo một người dùng dịch vụ cơ sở dữ liệu cho ứng dụng đó và tránh sử dụng tài khoản gốc cho bất kỳ mục đích nào ngoại trừ quản trị cơ sở dữ liệu
Nhập
03 để xóa tài khoản người dùng ẩn danh[ec2-user ~]$
sudo yum update -y
Nhập
03 để tắt đăng nhập root từ xa[ec2-user ~]$
sudo yum update -y
Nhập
03 để xóa cơ sở dữ liệu thử nghiệm[ec2-user ~]$
sudo yum update -y
Nhập
03 để tải lại các bảng đặc quyền và lưu các thay đổi của bạn[ec2-user ~]$
sudo yum update -y
[Tùy chọn] Nếu bạn không có kế hoạch sử dụng máy chủ MariaDB ngay lập tức, hãy dừng nó. Bạn có thể khởi động lại nó khi bạn cần nó một lần nữa
1cat /etc/system-release
[Tùy chọn] Nếu bạn muốn máy chủ MariaDB khởi động mỗi lần khởi động, hãy nhập lệnh sau
2cat /etc/system-release
Bước 4. [Tùy chọn] Cài đặt phpMyAdmin
phpMyAdmin là công cụ quản lý cơ sở dữ liệu dựa trên web mà bạn có thể sử dụng để xem và chỉnh sửa cơ sở dữ liệu MySQL trên phiên bản EC2 của mình. Làm theo các bước bên dưới để cài đặt và định cấu hình
[ec2-user ~]$
sudo yum update -y
08 trên phiên bản Amazon Linux của bạnChúng tôi khuyên bạn không nên sử dụng
[ec2-user ~]$
sudo yum update -y
08 để truy cập máy chủ LAMP trừ khi bạn đã bật SSL/TLS trong Apache; . Để biết các đề xuất bảo mật từ nhà phát triển, hãy xem Bảo mật cài đặt phpMyAdmin của bạn. Để biết thông tin chung về cách bảo mật máy chủ web trên phiên bản EC2, hãy xem Hướng dẫn. Định cấu hình SSL/TLS trên Amazon Linux 2Để cài đặt phpMyAdmin
Cài đặt các phụ thuộc cần thiết
3cat /etc/system-release
Khởi động lại Apache
4cat /etc/system-release
Khởi động lại
10[ec2-user ~]$
sudo yum update -y
5cat /etc/system-release
Điều hướng đến thư mục gốc của tài liệu Apache tại
9[ec2-user ~]$
sudo yum install -y httpd mariadb-server
6cat /etc/system-release
Chọn gói nguồn cho bản phát hành phpMyAdmin mới nhất từ https. //www. phpmyadmin. mạng/tải xuống. Để tải tệp trực tiếp xuống phiên bản của bạn, hãy sao chép liên kết và dán vào lệnh wget, như trong ví dụ này
7cat /etc/system-release
Tạo một thư mục
08 và giải nén gói vào đó bằng lệnh sau[ec2-user ~]$
sudo yum update -y
8cat /etc/system-release
Xóa tarball
13[ec2-user ~]$
sudo yum update -y
9cat /etc/system-release
[Tùy chọn] Nếu máy chủ MySQL không chạy, hãy bắt đầu ngay bây giờ
9[ec2-user ~]$
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
Trong trình duyệt web, nhập URL cài đặt phpMyAdmin của bạn. URL này là địa chỉ DNS công cộng [hoặc địa chỉ IP công cộng] của phiên bản của bạn, theo sau là dấu gạch chéo lên và tên thư mục cài đặt của bạn. Ví dụ
1[ec2-user ~]$
sudo yum install -y httpd mariadb-server
Bạn sẽ thấy trang đăng nhập phpMyAdmin
Đăng nhập vào cài đặt phpMyAdmin của bạn bằng tên người dùng
14 và mật khẩu gốc MySQL mà bạn đã tạo trước đó[ec2-user ~]$
sudo yum update -y
Cài đặt của bạn vẫn phải được định cấu hình trước khi đưa vào sử dụng. Chúng tôi khuyên bạn nên bắt đầu bằng cách tạo tệp cấu hình theo cách thủ công, như sau
Để bắt đầu với một tệp cấu hình tối thiểu, hãy sử dụng trình soạn thảo văn bản yêu thích của bạn để tạo một tệp mới, sau đó sao chép nội dung của
15 vào đó[ec2-user ~]$
sudo yum update -y
Lưu tệp dưới dạng
16 trong thư mục phpMyAdmin có chứa[ec2-user ~]$
sudo yum update -y
17[ec2-user ~]$
sudo yum update -y
Tham khảo hướng dẫn tạo tệp sau phần Sử dụng tập lệnh Cài đặt của hướng dẫn cài đặt phpMyAdmin để biết bất kỳ thiết lập bổ sung nào
Để biết thông tin về cách sử dụng phpMyAdmin, hãy xem Hướng dẫn sử dụng phpMyAdmin
khắc phục sự cố
Phần này đưa ra các đề xuất để giải quyết các vấn đề phổ biến mà bạn có thể gặp phải khi thiết lập máy chủ LAMP mới
Tôi không thể kết nối với máy chủ của mình bằng trình duyệt web
Thực hiện các bước kiểm tra sau để xem máy chủ web Apache của bạn có đang chạy và có thể truy cập được không
Máy chủ web có đang chạy không?
Bạn có thể xác minh rằng httpd đang bật bằng cách chạy lệnh sau
1[ec2-user ~]$
sudo yum update -y
Nếu quy trình httpd không chạy, hãy lặp lại các bước được mô tả trong Để chuẩn bị máy chủ LAMP
Tường lửa có được cấu hình đúng không?
Xác minh rằng nhóm bảo mật cho phiên bản có quy tắc cho phép lưu lượng HTTP trên cổng 80. Để biết thêm thông tin, hãy xem Thêm quy tắc vào nhóm bảo mật
Tôi không thể kết nối với máy chủ của mình bằng HTTPS
Thực hiện các kiểm tra sau để xem máy chủ web Apache của bạn có được định cấu hình để hỗ trợ HTTPS không
Máy chủ web có được cấu hình đúng không?
Sau khi bạn cài đặt Apache, máy chủ được cấu hình cho lưu lượng HTTP. Để hỗ trợ HTTPS, hãy bật TLS trên máy chủ và cài đặt chứng chỉ SSL. Để biết thông tin, xem Hướng dẫn. Định cấu hình SSL/TLS trên Amazon Linux 2
Tường lửa có được cấu hình đúng không?
Xác minh rằng nhóm bảo mật cho phiên bản có quy tắc cho phép lưu lượng HTTPS trên cổng 443. Để biết thêm thông tin, hãy xem Thêm quy tắc vào nhóm bảo mật
chủ đề liên quan
Để biết thêm thông tin về cách truyền tệp sang phiên bản của bạn hoặc cài đặt blog WordPress trên máy chủ web của bạn, hãy xem tài liệu sau
Để biết thêm thông tin về các lệnh và phần mềm được sử dụng trong hướng dẫn này, hãy xem các trang web sau
Để biết thêm thông tin về cách đăng ký tên miền cho máy chủ web của bạn hoặc chuyển tên miền hiện có sang máy chủ lưu trữ này, hãy xem Tạo và di chuyển miền và miền con sang Amazon Route 53 trong Hướng dẫn dành cho nhà phát triển Amazon Route 53