Cài đặt LEMP Linux, Nginx, MySQL, PHP Unix Ubuntu 12.04

Tác giả server360, T.Chín 21, 2015, 10:20:31 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cài đặt LEMP Linux, Nginx, MySQL, PHP Unix Ubuntu 12.04


Nginx là một web server nguồn mở hoạt động nhanh và sử dụng ít tài nguyên hệ thống hơn Apache. Khi ở trạng thái tải nhẹ thì sự khác nhau giữa Apache và Nginx là không đáng kể. Tuy vậy, ở trạng thái tải nặng, Nginx có thể mở rộng sao cho phù hợp và hoạt động nhanh mà không cần chiếm quá nhiều tài nguyên bộ nhớ như Apache.

Các blog của mình trước đây chạy trên nền tảng LAMP (Linux, Apache, MySQL, PHP) nhưng từ khi chuyển sang LEMP thì thấy tài nguyên sử dụng giảm hơn trước khá nhiều.

Các bước cài đặt LEMP trên Ubuntu

Đầu tiên bạn cần chuẩn bị một server Ubuntu mới tinh chưa cài gì cả, ở đây mình dùng Ubuntu 12.04 64 bit. Kiểm tra lại xem hostname và file host đã chính xác chưa.

Các thao tác thực hiện bằng dòng lệnh, sử dụng tool ZOC Terminal và nano

1. Update Apt-Get

Mã nguồn [Chọn]
sudo apt-get update
2. Cài đặt MySQL

Mã nguồn [Chọn]
sudo apt-get install mysql-server php5-mysql
Trong quá trình cài đặt bạn sẽ phải cài đặt root mysql password

Sau khi cài đặt MySQL, kích hoạt bằng lệnh:

Mã nguồn [Chọn]
sudo mysql_install_db
Hoàn tất cài đặt

Mã nguồn [Chọn]
udo /usr/bin/mysql_secure_installation
Điền vào root password

Mã nguồn [Chọn]
Enter current password for root (enter for none):
OK, successfully used password, moving on...

Sau đó là các thao tác như cài đặt lại password, xóa anonymous user... Cái này tùy bạn setup

Mã nguồn [Chọn]
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...

Đường dẫn file cài đặt MySQL: /etc/my.cnf

3. Cài đặt nginx

Mã nguồn [Chọn]
sudo apt-get install nginx
Chạy nginx

Mã nguồn [Chọn]
sudo service nginx start
Lúc này bạn có thể truy cập thẳng vào IP/domain để xem nginx đã hoạt động hay chưa

4. Cài đặt PHP

Mã nguồn [Chọn]
sudo apt-get install php5-fpm
5. Tùy chỉnh PHP

Tùy chỉnh lại php.ini

Mã nguồn [Chọn]
sudo nano /etc/php5/fpm/php.ini
Tìm dòng cgi.fix_pathinfo=1 (nhấn Ctrl+W trong nano), bỏ dấu ; ở đầu và thay 1 = 0

Mã nguồn [Chọn]
cgi.fix_pathinfo=0
Lưu lại (Ctrl+O, Enter) và thoát (Ctrl+X)

Tùy chỉnh php5-fpm

Mã nguồn [Chọn]
sudo nano /etc/php5/fpm/pool.d/www.conf
Tìm dòng listen = 127.0.0.1:9000 và thay 127.0.0.1:9000 thành /var/run/php5-fpm.sock

Mã nguồn [Chọn]
listen = /var/run/php5-fpm.sock
Lưu và thoát.

Khởi động lại php-fpm

Mã nguồn [Chọn]
sudo service php5-fpm restart
6. Tùy chỉnh nginx

Mở file virtual host mặc định

Mã nguồn [Chọn]
sudo nano /etc/nginx/sites-available/default
Tìm và thay đổi cài đặt như bên dưới. Chú ý các phiên bản Ubuntu mới hơn sử dụng 'htm' thay vì 'www' nên bạn cần chỉnh lại cài đặt tương ứng.

Mã nguồn [Chọn]
[...]
server {
        listen   80;

        root /usr/share/nginx/www;
        index index.php index.html index.htm;

        server_name example.com;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        error_page 404 /404.html;

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

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }

}
[...]

Một số thay đổi:

  • Thêm index.php
  • Thay đổi server_name thành tên miền
  • Chỉnh sửa đường dẫn cho phù hợp với permalink của WP
  • Chỉnh lại nội dung trong phần cài đặt "location ~ \.php$ {"
Lưu và thoát.

7. Tạo php info file

Tạo file php.info

Mã nguồn [Chọn]
sudo nano /usr/share/nginx/www/info.php
Thêm nội dung

Mã nguồn [Chọn]
<?php
phpinfo
();
?>

Lưu và thoát

Khời động lại nginx

Mã nguồn [Chọn]
sudo service nginx restart
Đã xong, giờ bạn có thể xem các cài đặt của nginx và php-fpm bằng cách truy cập: https://youripaddress/info.php

8. Cài đặt phpMyAdmin

Mã nguồn [Chọn]
sudo apt-get install phpmyadmin
Khi phpMyAdmin hỏi bạn chọn server (apache or lighttpsd) thì chọn cái nào cũng được.

Tạo symbolic link

Mã nguồn [Chọn]
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www
Sửa lỗi The mcrypt extension is missing khi chạy phpMyAdmin

Mở file php.ini

Mã nguồn [Chọn]
sudo nano /etc/php5/fpm/php.ini
Tìm đoạn Dynamic Extensions và thêm dòng sau vào phía cuối

Mã nguồn [Chọn]
extension=mcrypt.so
Restart php5-fpm

Mã nguồn [Chọn]
sudo service php5-fpm restart
Khởi động lại nginx

Mã nguồn [Chọn]
sudo service nginx restart
Giờ bạn đã có thể truy cập vào phpMyAdmin thông qua đường dẫn

up tin cho lên top nè, bài rất hay, giúp lại mình lên top với nhé ^^!

up tin cho lên top nè, bài rất hay, giúp lại mình lên top với nhé ^^!