Hướng dẫn này chỉ cho bạn cách cài đặt máy chủ web Apache2 trên máy chủ CentOS 7.0 có hỗ trợ PHP5 (mod_php) và MySQL. LAMP là viết tắt của Linux, Apache, MySQL, PHP.
Tôi sẽ thêm kho EPEL tại đây để cài đặt phpMyAdmin mới nhất như sau:
Sau đó, chúng ta tạo các liên kết khởi động hệ thống cho MySQL (để MySQL tự động khởi động bất cứ khi nào hệ thống khởi động) và khởi động máy chủ MySQL:
Đặt mật khẩu cho tài khoản root MySQL:
[root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: dòng 379: find_mysql_client: lệnh không tìm thấy
LƯU Ý: KHUYẾN NGHỊ CHẠY TẤT CẢ CÁC PHẦN CỦA KỊCH BẢN NÀY CHO TẤT CẢ CÁC MÁY CHỦ MariaDB
ĐANG SỬ DỤNG TRONG SẢN XUẤT! VUI LÒNG ĐỌC KỸ TỪNG BƯỚC!
Để đăng nhập vào MariaDB để bảo mật, chúng ta sẽ cần
mật khẩu hiện tại cho người dùng root. Nếu bạn vừa cài đặt MariaDB và
chưa đặt mật khẩu root, mật khẩu sẽ để trống,
do đó, bạn chỉ cần nhấn enter ở đây.
Nhập mật khẩu hiện tại cho root (enter nếu không có): <--ENTER
OK, mật khẩu đã sử dụng thành công, tiếp tục...
Đặt mật khẩu root đảm bảo rằng không ai có thể đăng nhập vào
người dùng root MariaDB mà không có quyền hạn thích hợp.
Đặt mật khẩu root? [Y/n]
Mật khẩu mới: <--yourmariadbpassword
Nhập lại mật khẩu mới: <--yourmariadbpassword
Đã cập nhật mật khẩu thành công!
Đang tải lại bảng đặc quyền..
... Thành công!
Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ ai
đăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng cho
họ. Điều này chỉ nhằm mục đích thử nghiệm và để quá trình cài đặt
diễn ra suôn sẻ hơn một chút. Bạn nên xóa những người dùng ẩn danh này trước khi chuyển sang
môi trường sản xuất.
Xóa người dùng ẩn danh? [Y/n] <--ENTER
... Thành công!
Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều này
đảm bảo rằng không ai có thể đoán được mật khẩu root từ mạng.
Không cho phép root đăng nhập từ xa? [Y/n] <--ENTER
... Thành công!
Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thể
truy cập. Cơ sở dữ liệu này cũng chỉ dành cho mục đích thử nghiệm và cần phải xóa
trước khi chuyển sang môi trường sản xuất.
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] <--ENTER
- Đang xóa cơ sở dữ liệu thử nghiệm...
... Thành công!
- Xóa các đặc quyền trên cơ sở dữ liệu thử nghiệm...
... Thành công!
Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi đã thực hiện cho đến nay
sẽ có hiệu lực ngay lập tức.
Tải lại các bảng đặc quyền ngay bây giờ? [Y/n] <--ENTER
... Thành công!
Đang dọn dẹp...
Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì cài đặt MariaDB
của bạn hiện đã an toàn.
Cảm ơn bạn đã sử dụng MariaDB!
[root@server1 ~]#
[root@server1 ~]# yum install httpd
Các plugin đã tải: fastestmirror, langpacks
Đang tải tốc độ phản chiếu từ tệp lưu trữ được lưu trong bộ nhớ đệm
* cơ sở: ftp.plusline.de
* phần bổ sung: mirror.23media.de
* bản cập nhật: mirror.23media.de
Gói httpd-2.4.6-17.el7.centos.1.x86_64 đã được cài đặt và là phiên bản mới nhất
Không cần làm gì cả
[root@server1 ~]#
Theo mặc định, apache sẽ được cài đặt, nếu không, vui lòng cài đặt như hiển thị ở trên
Bây giờ hãy cấu hình hệ thống của bạn để khởi động Apache khi khởi động...
Trong CentOS 7.0 sử dụng Firewall-cmd, vì vậy tôi sẽ tùy chỉnh để cho phép truy cập bên ngoài để chuyển 80 (http) và 443 (https).
Bây giờ hãy chuyển hướng trình duyệt của bạn đến http://192.168.0.100 và bạn sẽ thấy trang giữ chỗ Apache2:
Chúng ta phải khởi động lại Apache sau đó:
Bây giờ chúng ta gọi tệp đó trong trình duyệt (ví dụ: http://192.168.0.100/info.php):
Như bạn thấy, PHP5 đang hoạt động và nó đang hoạt động thông qua Apache 2.0 Handler, như được hiển thị trong dòng API máy chủ. Nếu bạn cuộn xuống xa hơn, bạn sẽ thấy tất cả các mô-đun đã được bật trong PHP5. MySQL không được liệt kê ở đó, điều đó có nghĩa là chúng ta chưa có hỗ trợ MySQL trong PHP5.
Chọn những mô-đun bạn cần và cài đặt như sau:
Ở bước tiếp theo, tôi sẽ cài đặt một số mô-đun PHP phổ biến được yêu cầu bởi các Hệ thống CMS như Wordpress, Joomla và Drupal:
Bây giờ hãy khởi động lại Apache2:
Bây giờ hãy tải lại http://192.168.0.100/info.php trong trình duyệt của bạn và cuộn xuống phần mô-đun một lần nữa. Bây giờ bạn sẽ thấy rất nhiều module mới như curl, v.v. ở đó:
phpMyAdmin hiện có thể được cài đặt như sau:
Bây giờ chúng ta sẽ cấu hình phpMyAdmin. Chúng tôi thay đổi cấu hình Apache để phpMyAdmin cho phép kết nối không chỉ từ localhost (bằng cách chú thích đoạn <Directory "/usr/share/phpmyadmin">):
Tiếp theo, chúng ta thay đổi xác thực trong phpMyAdmin từ cookie thành http:
Khởi động lại Apache:
Sau đó, bạn có thể truy cập phpMyAdmin theo http://192.168.0.100/phpmyadmin/:
Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
CentOS: http://www.centos.org/
phpMyAdmin: http://www.phpmyadmin.net/
1 Lưu ý sơ bộ
Trong hướng dẫn này, tôi sử dụng tên máy chủ server1.example.com với địa chỉ IP 192.168.0.100. Các thiết lập này có thể khác nhau đối với bạn, vì vậy bạn phải thay thế chúng khi cần thiết.Tôi sẽ thêm kho EPEL tại đây để cài đặt phpMyAdmin mới nhất như sau:
Mã:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
2 Cài đặt MySQL / MariaDB
MariaDB là một nhánh MySQL của nhà phát triển MySQL gốc Monty Widenius. MariaDB tương thích với MySQL và tôi đã chọn sử dụng MariaDB ở đây thay vì MySQL. Để cài đặt MySQL, chúng ta cài MariaDB như sau:
Mã:
yum -y install mariadb-server mariadb
Mã:
systemctl start mariadb.service
systemctl enable mariadb.service
Mã:
mysql_secure_installation
/usr/bin/mysql_secure_installation: dòng 379: find_mysql_client: lệnh không tìm thấy
LƯU Ý: KHUYẾN NGHỊ CHẠY TẤT CẢ CÁC PHẦN CỦA KỊCH BẢN NÀY CHO TẤT CẢ CÁC MÁY CHỦ MariaDB
ĐANG SỬ DỤNG TRONG SẢN XUẤT! VUI LÒNG ĐỌC KỸ TỪNG BƯỚC!
Để đăng nhập vào MariaDB để bảo mật, chúng ta sẽ cần
mật khẩu hiện tại cho người dùng root. Nếu bạn vừa cài đặt MariaDB và
chưa đặt mật khẩu root, mật khẩu sẽ để trống,
do đó, bạn chỉ cần nhấn enter ở đây.
Nhập mật khẩu hiện tại cho root (enter nếu không có): <--ENTER
OK, mật khẩu đã sử dụng thành công, tiếp tục...
Đặt mật khẩu root đảm bảo rằng không ai có thể đăng nhập vào
người dùng root MariaDB mà không có quyền hạn thích hợp.
Đặt mật khẩu root? [Y/n]
Mật khẩu mới: <--yourmariadbpassword
Nhập lại mật khẩu mới: <--yourmariadbpassword
Đã cập nhật mật khẩu thành công!
Đang tải lại bảng đặc quyền..
... Thành công!
Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ ai
đăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng cho
họ. Điều này chỉ nhằm mục đích thử nghiệm và để quá trình cài đặt
diễn ra suôn sẻ hơn một chút. Bạn nên xóa những người dùng ẩn danh này trước khi chuyển sang
môi trường sản xuất.
Xóa người dùng ẩn danh? [Y/n] <--ENTER
... Thành công!
Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều này
đảm bảo rằng không ai có thể đoán được mật khẩu root từ mạng.
Không cho phép root đăng nhập từ xa? [Y/n] <--ENTER
... Thành công!
Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thể
truy cập. Cơ sở dữ liệu này cũng chỉ dành cho mục đích thử nghiệm và cần phải xóa
trước khi chuyển sang môi trường sản xuất.
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] <--ENTER
- Đang xóa cơ sở dữ liệu thử nghiệm...
... Thành công!
- Xóa các đặc quyền trên cơ sở dữ liệu thử nghiệm...
... Thành công!
Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi đã thực hiện cho đến nay
sẽ có hiệu lực ngay lập tức.
Tải lại các bảng đặc quyền ngay bây giờ? [Y/n] <--ENTER
... Thành công!
Đang dọn dẹp...
Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì cài đặt MariaDB
của bạn hiện đã an toàn.
Cảm ơn bạn đã sử dụng MariaDB!
[root@server1 ~]#
3 Đang cài đặt Apache2
CentOS 7 được tích hợp sẵn apache 2.4. Apache2 có sẵn trực tiếp dưới dạng gói CentOS 7.0, do đó chúng ta có thể cài đặt nó như thế này:
Mã:
yum -y install httpd
Các plugin đã tải: fastestmirror, langpacks
Đang tải tốc độ phản chiếu từ tệp lưu trữ được lưu trong bộ nhớ đệm
* cơ sở: ftp.plusline.de
* phần bổ sung: mirror.23media.de
* bản cập nhật: mirror.23media.de
Gói httpd-2.4.6-17.el7.centos.1.x86_64 đã được cài đặt và là phiên bản mới nhất
Không cần làm gì cả
[root@server1 ~]#
Theo mặc định, apache sẽ được cài đặt, nếu không, vui lòng cài đặt như hiển thị ở trên
Bây giờ hãy cấu hình hệ thống của bạn để khởi động Apache khi khởi động...
Mã:
systemctl start httpd.service
Mã:
systemctl enable httpd.service
Mã:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
4 Cài đặt PHP5
Chúng ta có thể cài đặt PHP5 và mô-đun Apache PHP5 như sau:
Mã:
yum -y install php
Mã:
systemctl restart httpd.service
5 Kiểm tra PHP5 / Nhận thông tin chi tiết về cài đặt PHP5 của bạn
Gốc tài liệu của trang web mặc định là /var/www/html. Bây giờ chúng ta sẽ tạo một tệp PHP nhỏ (info.php) trong thư mục đó và gọi nó trong trình duyệt. Tệp sẽ hiển thị nhiều thông tin chi tiết hữu ích về cài đặt PHP của chúng ta, chẳng hạn như phiên bản PHP đã cài đặt.
Mã:
vi /var/www/html/info.php
Mã:
Như bạn thấy, PHP5 đang hoạt động và nó đang hoạt động thông qua Apache 2.0 Handler, như được hiển thị trong dòng API máy chủ. Nếu bạn cuộn xuống xa hơn, bạn sẽ thấy tất cả các mô-đun đã được bật trong PHP5. MySQL không được liệt kê ở đó, điều đó có nghĩa là chúng ta chưa có hỗ trợ MySQL trong PHP5.
6 Nhận hỗ trợ MySQL trong PHP5
Để nhận hỗ trợ MySQL trong PHP, chúng ta có thể cài đặt gói php-mysql. Bạn nên cài đặt một số mô-đun PHP5 khác vì bạn có thể cần chúng cho các ứng dụng của mình. Bạn có thể tìm kiếm các mô-đun PHP5 có sẵn như sau:
Mã:
yum search php
Mã:
yum -y install php-mysql
Mã:
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel
Mã:
systemctl restart httpd.service
7 Cài đặt phpMyAdmin
phpMyAdmin là giao diện web mà bạn có thể quản lý cơ sở dữ liệu MySQL của mình.phpMyAdmin hiện có thể được cài đặt như sau:
Mã:
yum install phpMyAdmin
Mã:
vi /etc/httpd/conf.d/phpMyAdmin.conf
Mã:
[...]
Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin## # # Apache 2.4# # Require ip 127.0.0.1# Require ip ::1# # # # # Apache 2.2# Order Deny,Allow# Deny from All# Allow from 127.0.0.1# Allow from ::1# # Options none AllowOverride Limit Require all granted
[...]
Mã:
vi /etc/phpMyAdmin/config.inc.php
Mã:
[...]$cfg['Servers'][$i]['auth_type'] = 'http'; // Phương pháp xác thực (dựa trên config, http hay cookie)?[...]
Mã:
systemctl restart httpd.service
8 Liên kết
Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
CentOS: http://www.centos.org/
phpMyAdmin: http://www.phpmyadmin.net/