Thứ tư, 13/06/2012 | 00:00 GMT+7

Cách cài đặt Linux, nginx, MySQL, PHP (LEMP) trên CentOS 6

LEMP stack là một group phần mềm open-souce để cài đặt và chạy các web server . Từ viết tắt của Linux, nginx (phát âm là Engine x), MySQL và PHP. Vì server đã chạy CentOS nên phần linux sẽ được chăm sóc. Đây là cách cài đặt phần còn lại.

Bước một — Cài đặt Kho lưu trữ Bắt buộc

Ta sẽ cài đặt tất cả các phần mềm cần thiết với Yum. Tuy nhiên, vì nginx không có sẵn ngay từ CentOS, ta cần cài đặt repository epel.

sudo yum install epel-release

Bước hai — Cài đặt MySQL

Bước tiếp theo là bắt đầu cài đặt phần mềm server trên virtual server , bắt đầu với MySQL và các bộ phận phụ thuộc.

 sudo yum install mysql-server

Khi quá trình download hoàn tất, hãy khởi động lại MySQL:

sudo /etc/init.d/mysqld restart

Bạn có thể thực hiện một số cấu hình của MySQL bằng lệnh này:

sudo /usr/bin/mysql_secure_installation

Dấu nhắc sẽ yêu cầu bạn nhập password root hiện tại của bạn.

Vì bạn vừa cài đặt MySQL, rất có thể bạn sẽ không có, vì vậy hãy để trống bằng cách nhấn enter.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Sau đó, dấu nhắc sẽ hỏi bạn có muốn đặt password root hay không. Hãy tiếp tục và chọn Y và làm theo hướng dẫn.

CentOS tự động hóa quá trình cài đặt MySQL, hỏi bạn một loạt câu hỏi có hoặc không.

Đơn giản nhất là chỉ cần nói Có với tất cả các tùy chọn. Khi kết thúc, MySQL sẽ reload và áp dụng các thay đổi .

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!

Bước ba — Cài đặt nginx

Như với MySQL, ta sẽ cài đặt nginx trên virtual server bằng cách sử dụng yum:

sudo yum install nginx

nginx không tự bắt đầu. Để chạy nginx, hãy nhập:

sudo /etc/init.d/nginx start

Bạn có thể xác nhận nginx đã được cài đặt trên virtual server của bạn bằng cách chuyển hướng trình duyệt đến địa chỉ IP của bạn.

Bạn có thể chạy lệnh sau để tiết lộ địa chỉ IP của server .

ifconfig eth0 | grep inet | awk '{ print $2 }'

Bước bốn — Cài đặt PHP

Gói php-fpm nằm trong repository lưu trữ REMI, tại thời điểm này, gói này đã bị vô hiệu hóa. Điều đầu tiên ta cần làm là kích hoạt repository REMI và cài đặt php và php-fpm:

sudo yum install php-fpm php-mysql

Bước năm — Cấu hình php

Ta cần thực hiện một thay đổi nhỏ trong cấu hình php. Mở php.ini:

 sudo vi /etc/php.ini

Tìm dòng, cgi.fix_pathinfo = 1 và thay đổi 1 thành 0.

cgi.fix_pathinfo=0

Nếu số này được giữ là 1, trình thông dịch php sẽ cố gắng hết sức để xử lý file gần với file được yêu cầu nhất có thể. Đây là một rủi ro bảo mật có thể xảy ra. Ngược lại, nếu số này được đặt thành 0, trình thông dịch sẽ chỉ xử lý đường dẫn file chính xác — một giải pháp thay thế an toàn hơn nhiều. Lưu và thoát.

Bước sáu — Cấu hình nginx

Mở file cấu hình nginx mặc định:

sudo vi /etc/nginx/nginx.conf

Tăng số quy trình công nhân lên 4 rồi lưu và thoát khỏi file đó.

Bây giờ ta nên cấu hình các VirtualHost nginx.

Để làm cho file nginx mặc định ngắn gọn hơn, chi tiết VirtualHost nằm ở một vị trí khác.

sudo vi /etc/nginx/conf.d/default.conf

Cấu hình phải bao gồm các thay đổi bên dưới (chi tiết của các thay đổi nằm dưới thông tin cấu hình):

#
# The default server
#
server {
    listen       80;
    server_name example.com;

   
    location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Dưới đây là chi tiết về những thay đổi:

  • Thêm index.php trong dòng index .
  • Thay đổi server_name thành domain hoặc địa chỉ IP của bạn (thay thế example.com trong cấu hình)
  • Thay đổi root thành / usr / share / nginx / html;
  • Bỏ ghi chú phần bắt đầu bằng "vị trí ~ \ .php $ {",
  • Thay đổi root để truy cập vào root document thực, / usr / share / nginx / html;
  • Thay đổi dòng fastcgi_param để giúp trình thông dịch PHP tìm thấy tập lệnh PHP mà ta đã lưu trữ trong trang chủ root của tài liệu.

Lưu và thoát

Mở cấu hình php-fpm:

sudo vi /etc/php-fpm.d/www.conf

Thay thế apache trong user và group bằng nginx:

[...]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;	will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
[...]

Kết thúc bằng cách khởi động lại php-fpm.

sudo service php-fpm restart

Bước bảy — KẾT QUẢ: Tạo trang thông tin php

Mặc dù LEMP đã được cài đặt, ta vẫn có thể xem và xem các thành phần trực tuyến bằng cách tạo một trang thông tin php nhanh

Để cài đặt điều này, trước tiên hãy tạo một file mới:

sudo vi /usr/share/nginx/html/info.php

Thêm vào dòng sau:

<?php
phpinfo();
?>

Sau đó, Lưu và Thoát.

Khởi động lại nginx để tất cả các thay đổi có hiệu lực:

sudo service nginx restart

Kết thúc bằng cách truy cập trang thông tin php của bạn (đảm bảo bạn thay thế địa chỉ ip mẫu bằng địa chỉ ip chính xác của bạn): http://12.34.56.789/info.php

Nó sẽ trông tương tự như thế này .

Bước 8 — Cài đặt tự động khởi động

Bạn gần như đã hoàn thành. Bước cuối cùng là đặt tất cả các chương trình mới cài đặt tự động bắt đầu khi VPS khởi động.

sudo chkconfig --levels 235 mysqld on
sudo chkconfig --levels 235 nginx on
sudo chkconfig --levels 235 php-fpm on
Bởi Etel Sverdlov

Tags:

Các tin liên quan

Thiết lập server ban đầu với CentOS 6
2012-05-22
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên CentOS 6
2012-05-22