Xin chào anh em hôm nay mình sẽ giới thiệu anh em cách cài đặt Nginx với PHP 7, PHP-FPM và MySQL trên hệ điều hành Centos. Trước hết giới thiệu qua với anh em:
Nginx đây là 1 hệ thống server HTTP mã nguồn mở đang được rất nhiều người sử dụng nó hoàn toàn miễn phí, hiệu suất hoạt động cao, ổn định, tổ hợp chức năng đa dạng, dễ dàng cấu hình, thiết lập và sử dụng ít tài nguyên hệ thống. Tìm hiểu thêm Nginx là gì ?
PHP7 là một phiên bản của ngôn ngữ PHP được giới thiệu vào ngày 3 tháng 9 năm 2015, đây là phiên bản mới nhất và được trông đợi nhất bởi có nhiều sự thay đổi về cú pháp, bổ sung các thư viện hiện đại giúp ngôn ngữ PHP trở nên đa dạng hơn và hơn hết nó mang lại hiệu xuất nhanh hơn theo như công bố là gấp hai lần so với phiên bản trước đó.
PHP-FPM (FastCGI Process Manager) kết hợp với Nginx nó đang là mô hình webserver rất phổ biến hiện nay và dần thay thế cho Apache, tốc độ xử lý PHP script của Nginx + PHP-FPM nhanh hơn Apache + Fcgi gấp nhiều lần.
MySQl là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.
Giới thiệu thế đủ rồi giờ bắt đầu thôi , mình sẽ hướng dẫn anh em cài lần lượt các phần mềm theo thứ tự như trên mục mở đầu nhé!
Để cài đặt được trước hết anh em cần cài kho thư viện phần mềm cho hệ điều hành Centos
EPEL Repository
# Dành cho Hệ điều hành CentOS 7 64 Bit
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
rpm -ivh epel-release-7-10.noarch.rpm
# Dành cho Hệ điều hành CentOS 6 64 Bit
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
Hoặc anh em có thể chạy lệnh này
yum install epel-release
Tiến hành cài đặt NGINX
anh em chạy lệnh
sudo yum install nginx
Centos sẽ tiến hành cài đặt Nginx mất chừng khoảng vài chục giây, nếu có bước hỏi anh em cứ gõ Y
và ấn Enter để nó chạy tiếp. Sau khi chạy xong chúng ta tiến hành khởi động NGINX lên để xem nó đã được cài đặt thành công hay chưa:
# Dành cho Hệ điều hành CentOS 7 64 Bit
sudo systemctl start nginx
# Dành cho Hệ điều hành CentOS 6 64 Bit
sudo /etc/init.d/nginx start
hoặc
service nginx start
Kiểm tra anh em ra trình duyệt gõ thẳng ip vps hoặc server của anh em nếu ra như này có nghĩa là anh em đã thành công:
Anh em tiến hành chạy lệnh
sudo yum install php70w
Hệ điều hành Centos sẽ tiến hành cài đặt PHP7 và cũng như cài đặt NGINX nếu có bước hỏi anh em cứ gõ Y
và ấn Enter để nó chạy tiếp.
Kiểm tra phiên bản của PHP
Anh em gõ lệnh sau
php-v
PHP 7.0.0 (cli) (built: Dec 2 2015 20:42:32) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
Nếu màn hình hiện ra như trên có nghĩa là bạn đã cài đặt thành công PHP7, giờ chúng ta sẽ tìm các modules
sudo yum search php70w
Màn hình sẽ hiện lên các modules anh em có thể cài đặt vào PHP7
php70w.x86_64 : PHP scripting language for creating dynamic web sites
php70w-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php70w-cli.x86_64 : Command-line interface for PHP
php70w-common.x86_64 : Common files for PHP
php70w-dba.x86_64 : A database abstraction layer module for PHP applications
php70w-devel.x86_64 : Files needed for building PHP extensions
php70w-embedded.x86_64 : PHP library for embedding in applications
php70w-enchant.x86_64 : Enchant spelling extension for PHP applications
php70w-fpm.x86_64 : PHP FastCGI Process Manager
php70w-gd.x86_64 : A module for PHP applications for using the gd graphics library
php70w-imap.x86_64 : A module for PHP applications that use IMAP
php70w-interbase.x86_64 : A module for PHP applications that use Interbase/Firebird databases
php70w-intl.x86_64 : Internationalization extension for PHP applications
php70w-ldap.x86_64 : A module for PHP applications that use LDAP
php70w-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php70w-mcrypt.x86_64 : Standard PHP module provides mcrypt library support
php70w-mysql.x86_64 : A module for PHP applications that use MySQL databases
php70w-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php70w-odbc.x86_64 : A module for PHP applications that use ODBC databases
php70w-opcache.x86_64 : An opcode cache Zend extension
php70w-pdo.x86_64 : A database access abstraction module for PHP applications
php70w-pdo_dblib.x86_64 : MSSQL database module for PHP
php70w-pear.noarch : PHP Extension and Application Repository framework
php70w-pgsql.x86_64 : A PostgreSQL database module for PHP
php70w-phpdbg.x86_64 : Interactive PHP debugger
php70w-process.x86_64 : Modules for PHP script using system process interfaces
php70w-pspell.x86_64 : A module for PHP applications for using pspell interfaces
php70w-recode.x86_64 : A module for PHP applications for using the recode library
php70w-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices
php70w-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php70w-tidy.x86_64 : Standard PHP module provides tidy library support
php70w-xml.x86_64 : A module for PHP applications which use XML
php70w-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC
Cài Đặt Modules anh em muốn cài đặt modules nào chỉ cần gõ sudo yum install tên_modules
là dc.
Sau đâu mình sẽ viết sẵn một số modules cần thiết để chạy hầu hết các Framework PHP lớn hiện nay như Laravel Framework
sudo yum install php70w-common php70w-xml php70w-soap php70w-xmlrpc php70w-mysql
sudo yum install php70w-mbstring php70w-gd php70w-mcrypt
Ngoài ra với các site có lượng traffic lớn anh em nên cài thêm Modules Opcache để tăng hiệu suất của PHP7
sudo yum install php70w-opcache
Vì PHP-FPM là một Modules của PHP nên để cài đặt đơn giản chúng ta chỉ cần gõ lệnh
sudo yum install php70w-fpm
Để khởi động PHP-FPM chúng ta gõ lệnh
# Dành cho Hệ điều hành CentOS 7 64 Bit
sudo systemctl start php-fpm
# Dành cho Hệ điều hành CentOS 6 64 Bit
service php-fpm start
rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
sudo yum -y install mysql-server
Hệ điều hành Centos sẽ tiến hành cài đặt MySQL và cũng như cài đặt NGINX nếu có bước hỏi anh em cứ gõ Y và ấn Enter để nó chạy tiếp. Để khởi động MySQL chúng ta gõ lệnh
# Dành cho Hệ điều hành CentOS 7 64 Bit
sudo systemctl start mysqld
# Dành cho Hệ điều hành CentOS 6 64 Bit
service mysqld start
Để đảm bảo an toàn cho MySQL chúng ta cần tiến hành một số thiết lập ban đầu như đặt pass root, chúng ta gõ lệnh:
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): <– nhấn ENTER
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] <– Gõ Y và nhấn ENTER
New password: <– Nhập mật khẩu tài khoản root
Re-enter new password: <– Nhập lại mật khẩu tài khoản root
Password updated successfully!
Reloading privilege tables..
… Success!
Như vậy là anh em đã đặt pass root thành công các bước tiếp theo anh em cứ nhấn Enter
Vậy là chúng ta đã tiến hành cài đặt hết xong các phần mềm để có thể chạy được một source php rồi. Bây giờ mình sẽ hướng dẫn anh em config Nginx và PHP để chạy thử một file php nhé.
cd /etc/nginx/conf.d/
Di chuyển tới thư mục root mặc định của Nginx sau đó tiến hành tạo file tên là test.conf bằng cách gõ
vi test.conf
Đây là trình soạn thảo của hệ điều hành Centos cũng như notepad của Windows chúng ta nhấn i
và paste vào trong file này nội dung sau đó anh em ấn esc
và gõ :wq
để lưu lại và thoát ra.
server {
listen 80;
root /home/www/test;
index index.php index.html index.htm;
server_name test.hoclaptrinh.vn www.test.hoclaptrinh;
location / {
#try_files $uri $uri/ /index.html;
#rewrite ^/(.*)/$ /?page=$1 last;
#rewrite ^(.*[^/])$ $1/ permanent;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# block access to .htaccess files
location ~ /\.ht {
deny all;
}
}
Sau đó anh em cần khởi động lại Nginx để file vhost này có tác dụng. Tiếp đến anh em cần tạo thư mục root cho domain test lúc nãy tại /home/www/test
Đường dẫn cấu hình PHP-FPM mặc định ở trong /etc/php-fpm.d
mặc định user và groups nó đang là apache, anh em cần sửa lại thành gì đó ở đây mình sửa thành www-data
. Phần socket anh em để là listen = 127.0.0.1:9000
như config ở file vhost nginx.
Bây giờ chúng ta sẽ thực hiện chạy thử nghiệm file php với hàm phpinfo()
xem NGINX và PHP đã hoạt động chưa nhé:
cd /home/www/test/
Di chuyển tới thư mục root của vhost anh em vừa tạo sau đó tiến hành tạo file tên là phpinfo.php bằng cách gõ
vi phpinfo.php
Đây là trình soạn thảo của hệ điều hành Centos cũng như notepad của Windows chúng ta nhấn i
và viết vào trong file này hàm
<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>
Sau đó anh em ấn esc
và gõ :wq
để lưu lại và thoát ra.
Chú ý: vì ở trên phần config PHPFPM anh em đã sửa user và group thành www-data
nên anh em nhớ tạo user tên là như thế và chown nó vào thư mục để file php ( /home/www/test
) nhé.
Bây h chúng ta ra trình duyệt gõ test.hoclaptrinh.vn/phpinfo.php
và test thử nhé !
Hiện như này là thành công rồi. Bây giờ anh em có thể upload source PHP lên và chạy rồi. Chúc anh em thành công có vấn đề gì cứ comment phía dưới nhé !
Unpublished comment
Viết câu trả lời