Centminmod

Đây là LEMP Stack mà mình đang sử dụng trong gần 2 năm qua. Khá nổi tiếng, nhìn chung dân DEV đều biết. Bài này thì mình cố gắng tổng hợp lại các thứ cần thiết, các quy trình cần có. Để xây dựng và sử dụng, cũng như duy trì một hệ thống websever dùng Centminmod. Một khuyến nghị nhỏ là nếu bạn mới bắt đầu, thì nên dùng với một sever test. Vì nó có khá nhiều thứ cần “chọc ngoáy”, và thời gian cài đặt update, upgrade các modul là lâu. Bù lại, hiệu năng và sự ổn định từ hệ thống centminmod này rất tốt. Nên thử bắt đầu nhé.

Cấu hình cần thiết để sử dụng Centminmod , System requirements for Centmin

đầu tiên bạn nên biết rằng, Centmin sử dụng NGINX sever. Tuy nhiên khác với webinoly, thằng centminmod này không cài được trên Ubuntu. Nó chỉ chạy trên Centos 6 hoặc 7 ( mình đã cài thử trên 8 nhưng không dc, có quá nhiều thứ phát sinh). Về cấu hình nhỏ nhất để cài centminmod:
– CentOS 6.x / 256MB memory / 20GB disk space for OpenVZ VPS virtualization & 30GB for KVM and Xen virtualisation
– CentOS 7.x 64bit / 1GB memory /20GB disk space for OpenVZ VPS virtualization & 30GB for KVM and Xen virtualisation

Tuy nhiên, mình ko khuyến khích sử dụng cấu hình tối thiểu này,. Vì khi đã sử dụng tới centminmod, thì website của bạn cũng có lượng traffic khá. Hay là một hệ thống e-commerce tương đối. Nên mình đề nghị cấu hình tối thiểu bạn nên sử dụng là: CentOS 7.x 64bit / 2Gb Ram / 60Gb SSD.
Vừa hay, mình cũng đang sử dụng cấu hình tương tự như trên, nhưng mạnh hơn 1 xíu. Cụ thể là thằng Vultr,. Cấu hình như dưới, 1Cpu, 2Gb Ram / 64Gb NVme, với $12 / tháng là khá ổn với mình. Mà nay mới để ý, thấy phần Deploy severs nó báo là 64NVme mà phần Geekbench lại là SSD. Chắc sau bài phải viết ticket hỏi lại support.

Vultr High Frequency Compute
Vultr High Frequency Compute

Về phần cấu hình cơ bản là như vậy, tuy nhiên có đk thì cứ mạnh dạn mà đầu tư nhé.

Bắt đầu cài đặt Centminmod

trước hết bạn cần tắt SELINUX, hoặc chọn deploy severs không có SELINUX.

centmint mod chỉ chạy trên centos
Deploy sever centos không có SELinux trên Vultr

hoặc bạn làm như sau để tắt SELinux.
– check sever có Selinux không:

sestatus

nếu kết quả là: có nghĩa là ạn cần tắt SELinux.

SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31

rồi nhập:

sudo setenforce 0

mở file /etc/selinux/configvà hiệu chỉnh như sau:

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

hoặc code dư này là dc.

echo 'SELINUX=disabled' > /etc/selinux/config

Lưu file /etc/selinux/config lại và khởi động lại VPS. Và kiểm tra lại

sestatus

kết quả là

SELinux status: disabled

rồi cài đặt centmintmod bằng một số lệnh sau, theo lựa chọn của bạn.

Đây là bản ổn định Stable Release, bản này khá lâu rồi. Nên hỗ trợ những thứ cũ PHP 5.5, 5.6 & limited support PHP 7.0.

yum -y update; curl -O https://centminmod.com/installer.sh && chmod 0700 installer.sh && bash installer.sh

Một số bản thử nghiệm,. Khá nhiều thứ hay ho nên nếu bạn muốn thử thí cứ mới mà táng nhé. Đây là bản sử dụng PHP 7.3.x mới nhất.

yum -y update; curl -O https://centminmod.com/betainstaller73.sh && chmod 0700 betainstaller73.sh && bash betainstaller73.sh

chi tiết các phiên bản bạn xem tại link chính chủ của centmin này:

https://centminmod.com/install.html

móa cài chờ khá lâu nhé, kể cả NVme hay SSD hay HDD đều lâu vãi. Nên cứ để nó chạy, xong làm cốc cafe quay lại cũng dc. Vậy cài xong thì gọi menu centmin ra bằng lệnh:

centmin
centmin mod menu
centmin mod menu

Vị trí lưu các tập tin hay cấu hình Centminmod trên CentOS

cài đặt thiết lập, config Nginx:

/usr/local/nginx/conf/conf.d

các files log ghi lại các thông tin đã làm, đã thiết lập trên VPS.

/root/centminlogs
log files on centminmod
log files on centminmod

các thư mục chứa files website:

/home/nginx/domains/

File cấu hình Nginx tại:

/usr/local/nginx/conf

Cấu hình MySQL trên centminmod

/etc/my.cnf

mặc định thì hầu như tất cả các bản centminmod không bật SSL – Letsencrypt của cloudflare. Do thằng acmetool.sh không bật, nó được định hình dđướianjg modeul, kích hoạt nó bằng cách:

Cách cài SSL – Letsencrypt trên Centmin Mod

cd /usr/local/src/centminmod/addons
cd /usr/local/src/centminmod/addons
cd /usr/local/src/centminmod/addons

cài acmectool.sh

./acmetool.sh acmeinstall
./acmetool.sh acmeinstall
./acmetool.sh acmeinstall

thấy xuất hiện acme.sh installed là được.

acme.sh installed
acme.sh installed

rrốiau đó mở thằng custom_config.inc lên và hiệu chỉnh.

nano /etc/centminmod/custom_config.inc

tthêmvafo bên dưới của file đoạn, và lưu lại

LETSENCRYPT_DETECT='y'

vậy là cài xong ssl nhé, Ngoài ra thằng centmin có nhiều add-on lắm: ở đây nhé.

https://centminmod.com/addons.html

Các tinh chỉnh nhỏ cho Centminmod hoạt động okie hơn theo ý cá nhân

chỉnh lại thời gian cho phù hợp tý;

timedatectl set-timezone Asia/Ho_Chi_Minh

bật lại shell_exec , cũng chả hiểu vì sao thằng centminmod tắt nnữa. chắc là cần bảo mật hay quy trình này nnọ. Mà thôi kệ, tắt!

nano /usr/local/etc/php-fpm.conf

tìm

php_admin_value[disable_functions] = shell_exec

xóa shell_exec dc như sau, lưu llạivaf thoát

php_admin_value[disable_functions] =

tùy chỉnh các thông số liên quan tới các giá trị giới hạn:

nano /etc/centminmod/php.d/a_customphp.ini

vps hiện mình dùng mình để các thông số như sau:

date.timezone = UTC max_execution_time = 300 short_open_tag = On realpath_cache_size = 3072k realpath_cache_ttl = 43200 upload_max_filesize = 5120M memory_limit = 1024M post_max_size = 256M expose_php = Off mail.add_x_header = Off max_input_nesting_level = 128 max_input_vars = 10000 mysqlnd.net_cmd_buffer_size = 16384 mysqlnd.collect_memory_statistics = Off mysqlnd.mempool_default_size = 16000 always_populate_raw_post_data=-1

về cơ bản thì bạn chả cần phải sửa cái gì đđâu. Vì thừng centmin nó chọn okie hết cho cấu hình vps của bạn rrrồi. Bạn chỉ nên tùy chỉnh nếu bạn thực sự cần và thực sự hiểu nó. Xong mọi thứ thì khởi động lại VPS.

Trước khi đi tới pphấnuwr dụng Centminmod như nào,. Thì cá nhân mình thích đua, nên muốn web của mình thật nhanh. Nên mình chưa đưa VPS vào dùng, mà thêm BrotliRocket-Nginx. Và tại sao? đơn giản nhé, Brotli nén mạnh hơn 26% so với Gzip(trên chrome và Firefox bản mới). Mình sử dụng plugin WProcket nên server của mình phải hỗ trợ. Chứ không hơi đâu nhỉ :)).

Cài đặt nén Brotli trên Centminmod

chi tiết brotli là gì? thì nó ở đây:

https://github.com/google/ngx_brotli

Chi tiết về phương pháp nén Brotli

thực ra nói là cài đặt chứ brotli nó tích hợp rồi, gọi nó lên là dc à :v. mở thằng custom_config.inc

nano /etc/centminmod/nano /etc/centminmod/custom_config.inc

thêm vào đoạn :

NGXDYNAMIC_BROTLI='y' NGINX_LIBBROTLI='y'

kkếtquar:

cài đặt brotli
cài đặt brotli

rồi upgrade lên Nginx mới nhất, hoặc compile lại bản đang sử dụng trên menu 4 của Centmin. Và sử dụng lệnh để kiểm tra xem module ngx_brotliđã được kích hoạt chưa

nginx -V
module ngx_brotli đã được kích hoạt
module ngx_brotliđã được kích hoạt

kkếtquar là :

[13:24][root@vultr.guest ~]# nginx -V nginx version: nginx/1.17.9 (310320-004034-centos7-kvm-28a3ae9) built by gcc 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC) built with OpenSSL 1.1.1d 10 Sep 2019 TLS SNI support enabled configure arguments: --with-ld-opt='-Wl,-E -L/usr/local/zlib-cf/lib -L/usr/local/lib -ljemalloc -Wl,-z,relro -Wl,-rpath,/usr/local/zlib-cf/lib:/usr/local/lib -flto=1 -fuse-ld=gold' --with-cc-opt='-I/usr/local/zlib-cf/include -I/usr/local/include -m64 -march=x86-64 -mavx -mavx2 -mpclmul -msse4 -msse4.1 -msse4.2 -DTCP_FASTOPEN=23 -g -O3 -fstack-protector-strong -flto=1 -fuse-ld=gold --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wimplicit-fallthrough=0 -fcode-hoisting -Wno-cast-function-type -Wno-format-extra-args -Wp,-D_FORTIFY_SOURCE=2 -Wno-deprecated-declarations' --sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --build=310320-004034-centos7-kvm-28a3ae9 --with-compat --with-http_stub_status_module --with-http_secure_link_module --with-libatomic --with-http_gzip_static_module --add-dynamic-module=../ngx_brotli --with-http_sub_module --with-http_addition_module --with-http_image_filter_module=dynamic --with-http_geoip_module --with-stream_geoip_module --with-stream_realip_module --with-stream_ssl_preread_module --with-threads --with-stream --with-stream_ssl_module --with-http_realip_module --add-dynamic-module=../ngx-fancyindex-0.4.2 --add-module=../ngx_cache_purge-2.5 --add-dynamic-module=../ngx_devel_kit-0.3.0 --add-dynamic-module=../set-misc-nginx-module-0.32 --add-dynamic-module=../echo-nginx-module-0.61 --add-module=../redis2-nginx-module-0.15 --add-module=../ngx_http_redis-0.3.7 --add-module=../memc-nginx-module-0.18 --add-module=../srcache-nginx-module-0.32rc1 --add-dynamic-module=../headers-more-nginx-module-0.33 --with-pcre-jit --with-zlib=../zlib-cloudflare-1.3.0 --with-http_ssl_module --with-http_v2_module --with-openssl=../openssl-1.1.1d --with-openssl-opt='enable-ec_nistp_64_gcc_128 enable-tls1_3 -fuse-ld=gold'

Nếu có:

–add-dynamic-module=../ngx_brotli

thì Brotli đã được kích hoạt nhé. Rồi tới Rocket-Nginx hỗ trợ cho plugin WP-Rocket.

Cài Rocket-Nginx cho centminmod

Vi hầu hết các web mình đang làm tới 90% lláuwr dụng WP-Rocket. Nên bắt đầu nhé:

cd /usr/local/etc
git clone https://github.com/maximejobin/rocket-nginx.git
cd rocket-nginx
cp rocket-nginx.ini.disabled rocket-nginx.ini
php rocket-parser.php

tạm dc rồi. Giờ sau khi thêm domain vào, thì tắt WordPress cron job đi. Mở file: wp-config.php và thêm vào đoạn:

define('DISABLE_WP_CRON', true);

Sau phải chỉnh một chút trong file cài đặt domain. (đây là của mình)

/usr/local/nginx/conf/conf.d/nghiart.com.conf

thêm vào giữa thẻ sever

include /usr/local/etc/rocket-nginx/default.conf;

kiểm tra xem có lỗi không:

nginx -t

khởi động lại VPS hoặc Nginx:

service nginx reload

sau cùng là config trên Dashaboard của wp. Check lại header nếu có: “x-rocket-nginx-serving-static: Yes” là okie!

Bài dài lắm rồi, nên phần sử dụng centmin để sau nhé.

Nhớ bình chọn chất lượng bài viết để mình cố gắng :v
[Total: 0   Average: 0/5]
guest
0 Comments
Inline Feedbacks
View all comments