Cài đặt Apache, MySQL và PHP (LAMP) trên CentOS 6 là cách đơn giản nhất để có một máy chủ web. Bạn cũng có thể dễ dàng cài đặt LAMP trên Ubuntu.
Apache, PHP và MySQL (LAMP) là bộ ba mã nguồn phổ biến nhất hiện nay được sử dụng để phục vụ cho các web server. Apache, PHP và MySQL cũng là điểm tốt nhất để bắt đầu tìm hiểu về web server vì chúng rất dễ dàng cài đặt và sử dụng. Bạn cũng có thể cài đặt Apache, PHP và MySQL trên Ubuntu, Windows và nhiều hệ điều hành khác.
Bài viết này sẽ hướng dẫn bạn cài đặt Apache sử dụng mod_php. Tuy nhiên, đối với các server nhỏ thì cài đặt Nginx và PHP-FPM có lẽ sẽ đạt hiệu suất tốt hơn.
Cài đặt Apache
CentOS 6 chỉ cung cấp cho bạn gói cài đặt Apache 2.2, nếu bạn muốn sử dụng Apache 2.4 thì bạn có thể build Apache từ source hoặc sử dụng CentOS 7. Nếu bạn đang sử dụng Ubuntu thì bạn hoàn toàn có thể cài đặt Apache 2.4 mới nhất trên Ubuntu rất dễ dàng.
Để cài đặt Apache 2.2, sử dụng lệnh sau:
# sudo yum install httpd
Để khởi động Apache trên CentOS, sử dụng lệnh:
# sudo service httpd start Starting httpd: [ OK ]
Để kiểm tra xem Apache đã chạy hay chưa, bạn có thể truy cập vào IP của VPS để xem, ví dụ http://188.166.239.251/. Nếu trang web hiển thị như sau thì bạn đã cài đặt Apache thành công.
Apache 2 Test Page
powered by CentOS
Nếu bạn muốn khởi động Apache cùng với hệ thống thì sử dụng lệnh sau:
# sudo chkconfig --level 235 httpd on
Khi bạn khởi động lại VPS thì Apache cũng tự khởi động mà không cần bạn phải làm thủ công.
Cài đặt MySQL
MySQL là một mã nguồn miễn phí dùng để quản lý dữ liệu. Trên CentOS 6, MySQL có sẵn phiên bản 5.1 để cài đặt. Nếu bạn muốn cài đặt MySQL 5.5, 5.6, 5.7 hoặc mới hơn thì bạn có thể cài đặt MySQL từ MySQL Yum Repository.
Để cài đặt MySQL trên CentOS 6, sử dụng lệnh sau:
# sudo yum install mysql-server
Khởi động MySQL:
# sudo service mysqld start
Nếu đây là lần đầu tiên bạn khởi động MySQL, có thể bạn sẽ nhìn thấy thông báo như sau:
Initializing MySQL database: Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h sitecuatui.com password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [ OK ] Starting mysqld: [ OK ]
Đây là chỉ một thông báo nhắc nhở bạn về các vấn đề như khởi động, bảo mật và báo cáo lỗi MySQL thôi.
MySQL sẽ không thiết lập mật khẩu trong lúc cài đặt, nên bạn phải thiết lập mật khẩu root thủ công. Điều này giúp bạn bảo mật cho MySQL hơn. Để thiết lập mật khẩu và các tùy chọn bảo mật, sử dụng lệnh sau:
# /usr/bin/mysql_secure_installation
Bạn sẽ nhìn nhận được một số tùy chọn như sau:
- Enter current password for root (enter for none): đây là yêu cầu bạn nhập mật khẩu cho tài khoản root của MySQL, vì bạn chưa có mật khẩu nên không cần nhập gì cả, chỉ cần bấm enter.
- Set root password? [Y/n]: nếu bạn muốn thiết lập mật khẩu cho MySQL thì nhập “y” hoặc enter, ngược lại thì nhập “n“. Tất nhiên là bạn nên thiết lập mật khẩu cho root, nhập “y” hoặc enter.
- “New password” và “Re-enter new password“: nhập mật khẩu 2 lần giống nhau nhé.
- Enter cho các tùy chọn còn lại.
# /usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] y New password: -> nhập mật khẩu Re-enter new password: -> nhập lại mật khẩu Password updated successfully! Reloading privilege tables.. ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!
Nếu bạn muốn khởi động MySQL cùng với hệ thống thì sử dụng lệnh sau:
# sudo chkconfig --level 235 mysqld on
Bây giờ MySQL cũng sẽ tự khởi động cũng với VPS và Apache như ở trên.
Có rất nhiều mã nguồn miễn phí dùng để quản lý dữ liệu mà bạn có thể thay thế cho MySQL. Theo các thông tin mà mình tham khảo thì MariaDB được phát triển rẻ nhánh từ MySQL và có tính tương thích cao. MariaDB cũng cho một hiệu suất cao hơn MySQL và bạn cũng có thể cài đặt MariaDB trên CentOS 6 rất dễ dàng. Bạn cũng có thể cài đặt phpMyAdmin để quản lý dữ liệu MySQL thông qua trình duyệt mà không cần phải sử dụng lệnh trong SSH.
Cài đặt PHP
PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. WordPress, XenForo và rất nhiều mã nguồn mở khác được viết trên ngôn ngữ PHP. Vì vậy nếu bạn muốn chạy các mã nguồn này thì bạn cần phải cài đặt PHP.
Mặc định thì CentOS 6 chỉ có sẵn phiên bản PHP 5.3, tuy nhiên bạn vẫn có thể cài đặt PHP 5.4, 5.5, 5.6 và PHP 7 mới nhất thông qua Remi repository hoặc build PHP từ source.
Để cài đặt PHP, sử dụng lệnh sau:
# sudo yum install php php-mysql
php-mysql
là gói ứng dụng hỗ trợ cho MySQL, nếu bạn dùng PHP 5.4 hoặc mới hơn thì cài php-mysqlnd
sẽ tốt hơn.
Cài đặt các gói mở rộng cho PHP
Để PHP hỗ trợ đầy đủ các tính năng cần thiết, bạn cần phải cài đặt các php modules tương ứng. Ví dụ bạn muốn sử dụng curl thì cài module curl, hoặc bạn muốn sử dụng opcache thì có thể cài module APC, memcached cho PHP…
Sử dụng lệnh sudo yum search php-
để tìm kiếm modules cho PHP, bạn có thể lựa chọn modules từ danh sách để cài đặt. Để cài đặt modules cho PHP, sử dụng lệnh sudo yum install tên module
, ví dụ như sau:
# sudo yum install php-cli php-devel php-gd php-mbstring php-pear php-pecl-apc php-soap
Sử dụng lệnh sau để khởi động lại Apache:
# sudo service httpd restart
Bạn không cần phải khởi động PHP vì PHP sẽ được sử dụng như một module của Apache là mod_php. Vì vậy mỗi khi bạn thay đổi và chỉnh sửa PHP trong file php.ini thì bạn phải khởi động lại Apache để áp dụng. File php.ini nằm ở đâu? Trong bài này thì file php.ini nằm ở /etc/php.ini. Bạn cũng có thể cấu hình để sử dụng PHP-FPM cho Apache thay vì sử dụng mod_php như trên.
Kiểm tra kết quả cài đặt
Để chắc chắn rằng Apache, MySQL và PHP làm việc tốt, bạn hãy tạo một file info.php trong /var/www/html:
# sudo nano /var/www/html/info.php
với nội dung như sau:
<?php phpinfo(); ?>
Và truy cập vào http://ip-cua-server/info.php
để kiểm tra. Các mục cần kiểm tra là phiên bản PHP và các modules, kèm theo là MySQL.
Nếu bạn muốn xóa trang “Apache 2 Test Page powered by CentOS” thì bạn hãy xóa file /etc/httpd/conf.d/welcome.conf
và khởi động lại Apache nhé.
# rm /etc/httpd/conf.d/welcome.conf # sudo service httpd restart
Như vậy là bạn đã hoàn thành việc cài đặt Apache, MySQL và PHP (LAMP) trên CentOS 6.