Cài đặt Apache, PHP và MySQL trên CentOS 7 (LAMP)

theanh

Administrator
Nhân viên
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.


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
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:
Mã:
systemctl start mariadb.service
systemctl enable mariadb.service
Đặt mật khẩu cho tài khoản root MySQL:
Mã:
mysql_secure_installation
[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 ~]#

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
[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...
Mã:
systemctl start httpd.service
Mã:
systemctl enable httpd.service
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).
Mã:
firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
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:






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
Chúng ta phải khởi động lại Apache sau đó:
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ã:
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.


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
Chọn những mô-đun bạn cần và cài đặt như sau:
Mã:
yum -y install php-mysql
Ở 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:
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
Bây giờ hãy khởi động lại Apache2:
Mã:
systemctl restart httpd.service
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. ở đó:




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
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">):
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

[...]
Tiếp theo, chúng ta thay đổi xác thực trong phpMyAdmin từ cookie thành http:
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)?[...]
Khởi động lại Apache:
Mã:
systemctl restart httpd.service
Sau đó, bạn có thể truy cập phpMyAdmin theo http://192.168.0.100/phpmyadmin/:




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/
 
Back
Bên trên