Centmin Mod LEMP Web Stack – UPDATE 2022

Centmin Mod là một *UNIX script được viết ra bởi George Liu (eva2000) chạy trên hệ điều hành CentOS 6 & 7 giúp bạn tự động cài đặt một webserver sử dụng Nginx, MariaDB, PHP-FPM & CSF Firewall

Ban đầu khi mới biết tới Centmin Mod mình không có hứng lắm, vì bộ công cụ của họ đồ sộ quá, mình nghĩ nó sẽ không thích hợp với các VPS ít RAM (~ 512MB) như mình đang có, các tính năng tăng tốc thì chủ yếu dùng RAM để cache, thành ra mình nghĩ thèng nào cũng như thèng nào, dùng thèng nào quen thuộc đơn giản, dễ sử dụng như VPSSIMHocVPS là được, tuy thế khi dùng tới EasyEngine thì quan điểm của mình thay đổi, thật sự có những bộ script tự động cài đặt họ tối ưu khiến website mượt mà hơn hẳn

Và Centmin Mod có thể nói là một install script tốt nhất hiện nay về tốc độ, hiệu năng và bảo mật, cái này thì rất dễ kiểm chứng, bạn cứ thử cài tất cả install script trên cùng 1 cấu hình, xong cài site đang chạy của bạn vào, tất cả setting như nhau, xong tự đánh giá là được 😛

Mình recommend dùng Centmin Mod cho bạn nào có yêu cầu cao nhất về tốc độ 😀 còn tổng thể cân bằng các thứ thì bạn chỉ cần dùng Webinoly là đủ
Lý thuyết các install script rất đơn giản, bạn không cần nhớ, hay biết bất cứ dòng lệnh nào, vẫn có thể vận hành và quản trị tốt hệ thống, tuy thế nếu bạn vẫn thấy quá khó thì có thể dùng VPSSIM hoặc HocVPS, những script của người Việt viết, bạn có thể bắt đầu như thế cho dễ, chạy lỗi hay thế nào hỏi tác giả người Việt vẫn dễ nói chuyện hơn 😛 

Cách đây ít ngày có dịp thử nghiệm Centmin Mod trên máy bàn, niên viết lại bài này

Giới thiệu và đánh giá sơ bộ

Cài đặt cơ bản thì cũng như các script khác thôi, type đúng 1 dòng 😀 ở bài này mình dùng VPS UpCloud gói $5/month, cấu hình cụ thể như bên dưới 😛

1 GB RAM, 1 vCPU, 25GB STORAGE
CentOS 7
LOCATION SG-SIN1

Ở thời điểm 2022 khi mình xem lại, Centmin Mod không còn hỗ trợ các VPS quá ít RAM, tối thiểu phải 1GB mới cho cài 

Thời điểm này cá nhân mình vẫn recommend dùng PHP 7.4, gần như mọi addon, plugin đều chạy tốt ở bản PHP này, còn PHP 8.0 8.1 hay 8.2 …. thì có thể các plugin còn gây lỗi khi chạy

Cài đặt Centmin Mod

1. Cài đặt thông thường

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

Bạn có thể chạy đúng 1 dòng duy nhất như thế để cài Centmin Mod PHP 7.4, cấu hình mặc định các thứ đều tuyệt vời về hiệu năng và tốc độ, bài cập nhập lại nên mình sẽ dùng cấu hình nâng cao, đây cũng là cấu hình được chính tác giả viết riêng cho WordPress sử dụng Cache Enabler

2. Cài đặt chuyên sâu

mkdir -p /etc/centminmod
touch /etc/centminmod/custom_config.inc
echo "PUREFTPD_DISABLED='y'" >> /etc/centminmod/custom_config.inc
echo "PHP_PGO_ALWAYS='y'" >> /etc/centminmod/custom_config.inc
echo "PHP_PGO='y'" >> /etc/centminmod/custom_config.inc
echo "PHP_BROTLI='y'" >> /etc/centminmod/custom_config.inc
echo "PHP_LZFOUR='y'" >> /etc/centminmod/custom_config.inc
echo "PHP_LZF='y'" >> /etc/centminmod/custom_config.inc
echo "PHP_ZSTD='y'" >> /etc/centminmod/custom_config.inc
echo "SET_DEFAULT_MYSQLCHARSET='utf8mb4'" >> /etc/centminmod/custom_config.inc
echo "NGINX_LIBBROTLI='y'" >> /etc/centminmod/custom_config.inc
echo "NGXDYNAMIC_BROTLI='y'" >> /etc/centminmod/custom_config.inc
echo "WPCLI_CE_QUERYSTRING_INCLUDED='y'" >> /etc/centminmod/custom_config.inc
echo "NGINX_SSLCACHE_ALLOWOVERRIDE='y'" >> /etc/centminmod/custom_config.inc
echo "NGINX_STAPLE_CACHE_OVERRIDE='y'" >> /etc/centminmod/custom_config.inc
echo "NGINX_STAPLE_CACHE_TTL='86400'" >> /etc/centminmod/custom_config.inc
echo "AUTOHARDTUNE_NGINXBACKLOG='y'" >> /etc/centminmod/custom_config.inc
echo "ZSTD_LOGROTATE_NGINX='y'" >> /etc/centminmod/custom_config.inc
echo "ZSTD_LOGROTATE_PHPFPM='y'" >> /etc/centminmod/custom_config.inc
yum -y update; curl -O https://centminmod.com/betainstaller74.sh && chmod 0700 betainstaller74.sh && bash betainstaller74.sh

Cơ bản thì mình giữ nguyên các cấu hình tác giả viết ra, chỉ bỏ đi các thứ liên quan tới cấu hình Letsencrypt để tạo SSL, SSL cứ dùng của Cloudflare là ít lỗi, đơn giản, an toàn nhất

3. Thời gian cài đặt

Khác với các *UNIX script khác, khi cài đặt Centmin Mod thậm chí còn chạy cả các bài benchmark phần cứng, vụ này thì mình hoàn toàn không biết, cho tới khi cài trên máy bàn, thấy CPU hú đùng đùng, 100% load luôn :]]

Việc benchmark phần cứng giúp Centmin Mod có thể tự cấu hình các setting liên quan tới php, mysql, nginx … tốt hơn, có điều cá nhân mình thấy cũng không quan trọng lắm, thực tế 1 core CPU, sự khác biệt giữa xung cao hay thấp giữa các dịch vụ hosting thì cũng không đáng kể, bạn nào dùng các VPS nhiều core CPU, RAM nhiều … thì việc benchmark này cho ra kết quả tối ưu hơn

Việc cài đặt setting advanced sẽ lâu hơn so với cài đặt thông thường, do cần biên dịch lại PHP thêm 1 lần 

---------------------------------------------------------------------------
Total Curl Installer YUM or DNF Time: 140.9123 seconds
Total YUM Time: 19.877241172 seconds
Total YUM or DNF + Source Download Time: 90.8766
Total Nginx First Time Install Time: 656.9743
Total PHP First Time Install Time: 1094.0684
Download From Github Time: 3.3909
Total Time Other eg. source compiles: 518.9001
Total Centmin Mod Install Time: 2360.8193
---------------------------------------------------------------------------
Total Install Time (curl yum + cm install + zip download): 2505.1225 seconds
---------------------------------------------------------------------------
1 AMD EPYC 7542 32-Core Processor
1 2894.560
---------------------------------------------------------------------------
Centmin Mod Version: 130.00beta01.b258
Install Summary Logs: /root/centminlogs/installer_summary_links.log
---------------------------------------------------------------------------

Dù cấu hình ổ cứng của UpCloud cũng dạng nhanh mà tổng thời gian cài đặt cấu hình nâng cao lên tới ~42 phút 😀

Gõ tiếp 

centmin

Nhập email vào để hoàn thành cài đặt lần đầu

Ấn  24 để thoát khỏi menu (thường ở lần đầu tiên thoát, bạn phải type 24 một lần nữa mới thoát ra được)

Kiểm tra lại các thông số sau khi cài đặt

wget -qO- https://bibica.net/speedtest | bash
-------------------- A Bench.sh Script By Teddysun -------------------
 Version            : v2022-06-01
 Usage              : wget -qO- https://bibica.net/speedtest | bash
----------------------------------------------------------------------
 CPU Model          : AMD EPYC 7542 32-Core Processor
 CPU Cores          : 1 @ 2894.560 MHz
 CPU Cache          : 512 KB
 AES-NI             : Enabled
 VM-x/AMD-V         : Disabled
 Total Disk         : 30.8 GB (5.2 GB Used)
 Total Mem          : 907.6 MB (233.8 MB Used)
 Total Swap         : 1024.0 MB (39.5 MB Used)
 System uptime      : 0 days, 1 hour 2 min
 Load average       : 0.01, 0.56, 1.18
 OS                 : CentOS Linux release 7.9.2009 (Core)
 Arch               : x86_64 (64 Bit)
 Kernel             : 3.10.0-1160.41.1.el7.x86_64
 TCP CC             : cubic
 Virtualization     : KVM
 Organization       : AS202053 UpCloud Ltd
 Location           : Singapore / SG
 Region             : Singapore
----------------------------------------------------------------------
 I/O Speed(1st run) : 155 MB/s
 I/O Speed(2nd run) : 154 MB/s
 I/O Speed(3rd run) : 147 MB/s
 I/O Speed(average) : 152.0 MB/s
----------------------------------------------------------------------
 Node Name        Upload Speed      Download Speed      Latency
 Speedtest.net    998.35 Mbps       944.97 Mbps         1.29 ms
 Los Angeles, US  466.35 Mbps       953.72 Mbps         241.34 ms
 Paris, FR        827.43 Mbps       956.08 Mbps         154.22 ms
 Hongkong, CN     957.87 Mbps       965.99 Mbps         38.28 ms
 Seoul, KR        287.49 Mbps       823.26 Mbps         78.57 ms
 Singapore, SG    998.32 Mbps       954.60 Mbps         2.83 ms
 Tokyo, JP        959.99 Mbps       962.41 Mbps         68.35 ms
 FPT-HCM, VN      977.78 Mbps       951.21 Mbps         53.99 ms
 Viettel-DN, VN   952.08 Mbps       959.05 Mbps         50.04 ms
 NetNam-HCM, VN   940.17 Mbps       692.21 Mbps         30.75 ms
 Viettel-DN, VN   998.89 Mbps       963.45 Mbps         59.57 ms
----------------------------------------------------------------------
 Finished in        : 5 min 12 sec
 Timestamp          : 2022-12-14 04:12:36 UTC
----------------------------------------------------------------------

Sau khi cài đặt xong thì Centmin Mod cũng đã cập nhập CentOS lên bản mới nhất, tự tạo thêm 1 GB RAM ảo, mọi thứ khá bình thường

php -v
PHP 7.4.33 (cli) (built: Dec 14 2022 06:08:57) PGO ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

PHP 7.4.33 chạy PGO

nginx -V
nginx version: nginx/1.23.3 (141222-054507-centos7-kvm-a0e28ee-br-6e975bc)
built by gcc 10.2.1 20210130 (Red Hat 10.2.1-11) (GCC)
built with OpenSSL 1.1.1s  1 Nov 2022
TLS SNI support enabled
configure arguments: --with-ld-opt='-Wl,-E -L/usr/local/zlib-cf/lib -L/usr/local/nginx-dep/lib -ljemalloc -Wl,-z,relro -Wl,-rpath,/usr/local/zlib-cf/lib:/usr/local/nginx-dep/lib -flto=1 -fuse-ld=gold' --with-cc-opt='-I/usr/local/zlib-cf/include -I/usr/local/nginx-dep/include -m64 -march=x86-64 -g -O3 -fstack-protector-strong -flto=1 -fuse-ld=gold --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wno-pointer-sign -Wimplicit-fallthrough=0 -Wno-missing-profile -Wno-implicit-function-declaration -Wno-int-conversion -Wno-unused-result -Wno-unused-result -Wno-stringop-overflow -fcode-hoisting -Wno-cast-function-type -Wno-format-extra-args -Wno-vla-parameter -Wno-stringop-overflow -Wp,-D_FORTIFY_SOURCE=2 -Wno-deprecated-declarations' --sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --build=141222-054507-centos7-kvm-a0e28ee-br-6e975bc --with-compat --without-pcre2 --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.1 --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.62 --add-module=../redis2-nginx-module-0.15 --add-module=../ngx_http_redis-0.4.0-cmm --add-module=../memc-nginx-module-0.19 --add-module=../srcache-nginx-module-0.32 --add-dynamic-module=../headers-more-nginx-module-0.34 --with-pcre-jit --with-zlib=../zlib-cloudflare-1.3.0 --with-http_ssl_module --with-http_v2_module --with-openssl=../openssl-1.1.1s

Nginx 1.23.3 và GCC 10.2.1 20210130

mysqld --version
mysqld  Ver 10.3.37-MariaDB for Linux on x86_64 (MariaDB Server)

MariaDB v10.3.37

Về PGO và GCC thì nó tùy thuộc vào CPU của bạn đang chạy thế nào, 1 core hay nhiều core? mỗi loại nó sẽ có 1 bản GCC cho ra tốc độ tốt nhất

9220_phpbench-summary-01 (1)

Có quá nhiều các giá trị ảnh hưởng tới tốc độ, phiên bản PHP, Nginx, GCC nào …. rồi chạy trên gzip hay br, rồi chạy http/2 theo cơ chế mã hóa nào, mỗi cái nó lại cho ra 1 giá trị khác nhau

Tạm hiểu thì bạn cứ hình dung bản vừa cài là bản được tác giả setting sẵn tốt nhất mọi thứ có thể cho Wordpress đi cho nhẹ đầu 😀

Tùy Biến Centmin Mod

Chỉnh về múi giờ Việt Nam

timedatectl set-timezone Asia/Ho_Chi_Minh

Nên làm, để sau coi log còn biết giờ giấc làm sao 😀

Type “date” để kiểm tra lại ngày tháng xem về đúng giờ Việt Nam chưa là được ?

 date
Wed Dec 14 13:48:10 +07 2022

Cài thêm htop, zip, unzip

yum install htop -y
yum install zip -y
yum install unzip -y

Bật Shell_exec

Mặc định, Centmin Mod họ tắt shell_exec vì lý do an toàn, tuy thế dùng VPS riêng, cá nhân mình nghĩ không thành vấn đề, Duplicator Pro và rất nhiều plugin hay script khác cần quyền này để có thể chạy, EE hay Webinoly đều bật shell_exec chạy cả thôi

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

Bạn sẽ thấy dòng php_admin_value[disable_functions] = shell_exec ở cuối

php_admin_value[disable_functions] = shell_exec

Xóa phần shell_exec đi là được

php_admin_value[disable_functions] =

Ctrl + O -> Enter -> Ctrl + X để save và thoát ra

Khởi động lại php để thay đổi có hiệu lực

service php-fpm restart

Chỉnh sửa các giá trị memory_limit, max_execution_time, max_file_uploads, post_max_size …. (bước này nếu bạn không hiểu là gì thì có thể bỏ qua)

nano /etc/centminmod/php.d/a_customphp.ini
date.timezone = UTC
max_execution_time = 60
short_open_tag = On
realpath_cache_size = 768k
realpath_cache_ttl = 28800
upload_max_filesize = 160M
memory_limit = 160M
post_max_size = 160M
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

Theo mặc định mình cài vào thì đang là như thế, thường các giá trị này sẽ được tự động tạo ra dựa theo CPU và RAM của bạn, sửa lại các giá trị nếu bạn muốn

Thường mình hay duy trì memory_limit lên 512MB (thường thì tầm 256 MB chạy Wordpress cũng ổn rồi), max_execution_time tăng thành 600 cho dư giả xíu =))

date.timezone = UTC
max_execution_time = 600
short_open_tag = On
realpath_cache_size = 768k
realpath_cache_ttl = 28800
upload_max_filesize = 160M
memory_limit = 512M
post_max_size = 160M
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

Nôm na cấu hình mình sửa lại nó như thế, Ctrl + O -> Enter -> Ctrl + X để save và thoát ra

Khởi động lại php để thay đổi có hiệu lực

service php-fpm restart

Làm xong xuôi hết thì nên reboot lại VPS một phát để kiểm tra lại 😛

reboot

2022-12-14_13-59-03

Ở trên là các thứ mình dùng và thấy cần sửa khi chạy Wordpress, nên thêm vào, Centmin Mod là một trong các install script có phần hướng dẫn và cộng đồng support đồ sộ nhất, bạn có thể tham khảo thêm FAQ hay đơn giản nhất là google search 😀 gần như cái gì cũng có đủ cả, tác giả Centmin Mod rất giỏi về kĩ thuật để có thể giúp bạn 😀

Cài đặt WordPress

Vào menu quản trị:

centmin

Type 22 rồi cứ thế next thôi, setup chuẩn của họ là WP + Cache Enabler 

Mình tạo demo cho bài này trên subdomain là centminmod.bibica.net, bạn dùng domain gì thì cứ sửa các câu lệnh bên dưới từ centminmod.bibica.net thành domain của bạn là được

Do you want to continue with Nginx vhost site creation ? [y/n] y

Enter vhost domain name you want to add (without www. prefix): centminmod.bibica.net

Create a self-signed SSL certificate Nginx vhost? [y/n]: n
Theme Setup:
Install CyberChimps Responsive Theme (cyberchimps.com/responsive-theme/) [y/n]: n

Chú ý tùy chọn Create a self-signed SSL certificate Nginx vhost?, chọn n không dùng SSL của Letsencrypt, cài xong dùng SSL của Cloudflare là được

  Wordpress Caching
--------------------------------------------------------
1) KeyCDN Cache Enabler
2) Redis Nginx Level Caching
3) Wordpress Super Cache
--------------------------------------------------------
Enter option [ 1 - 3 ] 1

Phần cache nên dùng KeyCDN Cache Enabler (tùy chọn 1)

 

Cache Enabler được Centmin Mod config luôn vào Nginx, nó khá tương đồng với Rocket-Nginx, nghĩa là khi Cache Enabler tạo cache, Nginx sẽ kiểm tra, thấy có file tĩnh html thì sẽ lấy trực tiếp ra luôn, không phải thông qua PHP nữa 😀 siêu đơn giản và hiệu quả lại miễn phí nữa

Cấu Hình SSL Signed By Cloudflare

Có thể bước cấu hình ssl từ Cloudflare lần đầu bạn sẽ thấy nó rườm rà, mất thời gian, nhưng bước này bạn chỉ phải tạo 1 lần duy nhất, sau này không cần quan tâm tới ssl nữa, kể cả bạn có chuyển host, hay dùng trên 1 đống subdomain khác nhau …. đều chỉ cần dùng 2 cái key này

Vào Cloudflare tạo key, đặt tên theo hướng dẫn của họ là được, cụ thể mình đặt là bibica.net.key và bibica.net.pem, chép nó vào thư mực /root/ssl/ 

sudo nano /usr/local/nginx/conf/conf.d/centminmod.bibica.net.conf

Thêm đoạn code bên dưới vào đầu của file config

server {
listen 80;
listen [::]:80;
server_name centminmod.bibica.net www.centminmod.bibica.net;
return 301 https://$host$request_uri;
}

Thay listen 80; bằng dòng bên dưới 

listen 443 ssl http2;
listen [::]:443 ssl http2; 
ssl_certificate /root/ssl/bibica.net.pem;
ssl_certificate_key /root/ssl/bibica.net.key;

Ctrl + O -> Enter -> Ctrl + X để save và thoát ra

Sau đó chạy tiếp dòng dưới để reload lại nginx, để thay đổi có hiệu lực

nginx -t
service nginx reload

Thiết Lập Một Cronjob Thực Từ Linux’s

crontab -e
*/1 * * * * curl https://centminmod.bibica.net/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Ctrl + O -> Enter -> Ctrl + X để save và thoát ra

2022-12-14_14-23-11

Các plugin theo mặc định cài vào thì nó như thế,  chú ý duy nhất là theo tác giả thì các phiên bản Cache Enabler mới hơn sau này nó xung đột gì đó với code tác giả viết, nên chỉ dùng bản Cache Enabler v1.4.9 (Block Specific Plugin Updates được cài vào để tránh chuyện tự ấn nhầm update pluign Cache Enabler)

Thử nghiệm nhanh tốc độ

Performance Test

2022-12-14_14-36-53

Website Speed Test

2022-12-14_14-39-09

Tốc độ ổn định, không có gì để phàn nàn 😀

Thử nghiệm nhanh độ chịu tải

Mình chỉ thử nghiệm cách config của tác giả, nên tắt tất cả hình thức cache, chạy thuần, xem cùng 1 cấu hình như mọi cấu hình mình dùng, bản Centmin Mod này có thể chịu được bao nhiêu kết nối

2022-12-14_14-47-10

Hơi bất ngờ, vì ở các bản trước đây mình thử, Centmin Mod chỉ mạnh nhất ở khoản tốc độ thôi, chứ độ chịu tải không quá tốt, mà trên WordPress mặc định, vừa cài đặt, chưa có bài viết hay bất cứ cấu hình gì, ở bài test từ loader.io, với 100 kết nối mỗi giây, nó vẫn có thể hoàn thành bài test với 100% kết nối thành công, thời gian phản hồi ~4.7s, Webinoly chỉ có thể duy trì con số ~ 6s ở bài test này

Tất nhiên, đây cũng chỉ là con số ở một trang mặc định, chỉ có 6 kết nối ở trang chủ, chứ ở 1 trang cụ thể, thì thường khó mà đạt được con số 100 kết nối mỗi giây như thế

Thử Nghiệm Tốc Độ Và Độ Chịu Tải Trên Bibica.Net

Tiếp theo mình thử move tất cả mọi thứ trên trang bibica.net sang, xem ở 1 trang hoạt động lâu năm, database to, dữ liệu nhiều …. lúc này độ chịu tải nó sẽ làm sao 😀

Sau đó cũng tắt các plugin cache đi, reboot VPS lại 1 phát để kiểm tra lại thông số

2022-12-14_15-11-00

Khá tương tự Webinoly , Centmin Mod cũng tạch ở bài test 100 kết nối mỗi giây trên data trang bibica.net

Thử hạ xuống 30-50 kết nối test xem làm sao, mà có vẻ cơ chế tự bảo vệ của Centmin Mod nó tự block sạch các kết nối của loader.io hay sao ấy :D, cứ chạy là tạch 😛 nên thôi, ngừng bài test độ chịu tải ở đây

Tổng kết

Với cá nhân mình, Centmin Mod luôn có chỗ đứng vững chắc, nó rất nhanh, thậm chí có thể gọi là cực nhanh, mình đã dùng Centmin Mod 2-3 năm nay, lỗi thì cá nhân mình không gặp, chủ yếu tác giả config rất gắt, cả bảo mật lẫn tốc độ, nên thi thoảng cài đặt 1 số plugin, cấu hình hơi nhức đầu, nên hiện tại mình đang sử dụng Webinoly, cho nhàn là chính =))

Nói chung *UNIX script giúp tự động cài đặt webserver thì mình vẫn recommend Centmin Mod và Webinoly, tùy bạn thích dùng trên hệ điều hành nào thì chọn thôi, về vấn đề viết tự động thì mình nghĩ chúng được viết gần như tiệm cận hoàn hảo rồi, có thể trên 1 số cấu hình, kiểu ram nhiều hơn, cpu nhiều hơn, lượng khách truy cập đặc thù …. thì sẽ cần cấu hình thêm 1 xíu, còn lại cơ bản cứ cài mặc định dùng thoải mái lắm rồi 😀

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback.
Notes: However, those deemed to be spam or solely promotional will be deleted.

You can create a Gravatar account, add avatar, then use that email to comment here, your account will have a more beautiful Avatar, easier to recognize with other members.

Please use real emails, you can receive notifications when comments are replied