10 thg 6, 2021

Đăng bài viết qua email 10 thg 6, 2021

Thử nghiệm đăng bài viết quá email 

16 thg 7, 2020

Hướng dẫn cài đặt và quản trị CyberPanel 16 thg 7, 2020

I/ Giới thiệu CyberPanel – Web Hosting Control Panel

Giới thiệu CyberPanel – một web hosting control panel miễn phí được phát triển và hỗ trợ bởi OpenLiteSpeed. có nhiều tính năng, tốc độ, hỗ trợ SSL miễn phí. CyberPanel có 2 phiên bản miễn phí và thương mại.

II/ Các tính năng CyberPanel

  • Hỗ trợ nhiều ngôn ngữ, bao gồm cả Tiếng Việt
  • Giao diện web hiện đại, hỗ trợ responsive cho mobile
  • Hỗ trợ OpenLiteSpeed hoặc LiteSpeed Enterprise.
  • Hỗ trợ nhiều loại Cache: Memcached và Redis.
  • Hỗ trợ nhiều phiên bản PHP.
  • Hỗ trợ CSDL MariaDB, MySQL
  • Hỗ trợ tự động gia hạn miễn phí SSL – Let’s Encrypt.
  • Tích hợp sẵn Lightweight DNS Server, Email Server ( Rainloop Webmail ), giao diện Command Line, FirewallD, SpamAssassin, ModSecurity, …
  • Cài đặt WordPress, Drupal, Magento, .. chỉ trong một click chuột.
  • Hỗ trợ Git ( Github, Gitlab )

III/ Cấu hình tối thiểu để cài đặt

  • HDH Centos 7.x (Phiên bản CentOS Minimal được khuyến nghị)
  • Python 2.7
  • RAM bằng hoặc hơn 1024MB
  • Dung lượng bằng hoặc hơn 10GB Disk Space

IV/ Hướng dẫn cài đặt CyberPanel

Để cài đặt CyberPanel, bạn cần sử dụng root. (Không làm việc với User có quyền sudo)

1. Cài đặt

Để cài đặt chúng ta sử dụng command sau. Đây là lệnh cài đặt phiên bản miễn phí, nó sẽ không yều cầu nhập bất cứ license gì khi cài đặt cả.
Bạn nhớ yum update hệ thống với lệnh
[root@sv ~]# yum update -y
[root@sv ~]# sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
Sau khi chạy command trên server chúng ta thực hiện các bước sau:
Chọn 1 –  “1. Install Cyber Panel” để cài đặt lần đầu tiên
Hướng dẫn cài đặt và quản trị CyberPanel
Phiên bản LiteSpeed để cài đặt.
Chọn 1 – “1. Install CyberPanel with OpenLiteSpeed.”
Hướng dẫn cài đặt và quản trị CyberPanel
Chọn loại password mặc định cho admin, có 3 tùy chọn:
  • [d]fault : mật khẩu là 1234567
  • [r]andom: mật khẩu ngẫu nhiên
  • [s]et password: mật khẩu của bạn
Ở đây mình chọn d , và sẽ set lại mật khẩu sau khi cài đặt.
Hướng dẫn cài đặt và quản trị CyberPanelMột số cài đặt bổ sung khác như:
  • Cài đặt Mirror Server: N
  • Sử dụng JS Deliver: N
  • Cài Memcached: Y
  • Cài Redis Cache: Y
Hướng dẫn cài đặt và quản trị CyberPanel
Cài đặt sẽ được diễn ra và kết quả sau khi cài đặt là các thông tin bên dưới.
  • https:<IP Address>:8090
  • Panel Username: admin
  • Panel Password: 1234567
  • MySQL Username
  • MySQL Password

Hướng dẫn cài đặt và quản trị CyberPanel2. Các bước cần thực hiện sau cài đặt

2.1. Thay đổi mật khẩu của Panel Admin.

Nếu chọn mật khẩu mặc định khi cài đặt thì chúng ta có thể thay đổi mật khẩu của admin bằng command sau:
adminPass <your_password>

3. Truy cập tới CyberPanel

Truy cập tới đường dẫn https:<IP Address>:8090 với user là admin và mật khẩu bạn đã thay đổi.

Hướng dẫn cài đặt và quản trị CyberPanelHướng dẫn cài đặt và quản trị CyberPanel4. Cấu hình CyberPanel

4.1. Thay đổi địa chỉ IP mặc định

Sửa file: /etc/cyberpanel/machineIP

4.2. Thay đổi giới hạn Upload cho PhpMyadmin

Giá trị mặc định để upload CSDL trong PhpMyadmin của CyberPanel chỉ là 2M (mặc định của php). Để tăng giá trị này lên, các bạn vào mục Server => PHP => Basic => Chọn PHP Version 7.0
Setting các tham số như ảnh bên dưới.
  • upload_max_filesize
  • post_max_size
Rồi bấm Save Changes để lưu lại.
Hướng dẫn cài đặt và quản trị CyberPanel
Truy cập vào server thông quá SSH
Chạy lệnh để restart lại lscpd service
systemctl restart lscpd

Rsync – Công cụ đồng bộ dữ liệu hiệu quả

Rsync (Remote Sync) là một công cụ dùng để sao chép và đồng bộ file/thư mục được dùng rất phổ biến. Với sự trợ giúp của rsync, bạn có thể đồng bộ dữ liệu trên local hoặc giữa các server với nhau một cách dễ dàng.
rsync

I. Tính năng nổi bật của Rsync

  • Rsync hỗ trợ copy giữ nguyên thông số của files/folder như Symbolic links, Permissions, TimeStamp, Owner và Group.
  • Rsync nhanh hơn scp vì Rsync sử dụng giao thức remote-update, chỉ transfer những dữ liệu thay đổi mà thôi.
  • Rsync tiết kiệm băng thông do sử dụng phương pháp nén và giải nén khi transfer.
  • Rsync không yêu cầu quyền super-user.

II. Cài đặt Rsync

Rsync được cài đặt dễ dàng với một dòng lệnh:
– Trên Red Hat/CentOS
yum install rsync
– Trên Debian/Ubuntu
apt-get install rsysnc

III. Sử dụng Rsync

Câu lệnh căn bản của rsync:
rsync options source destination
Trong đó:
  • Source: dữ liệu nguồn
  • Destination: dữ liệu đích
  • Options: một số tùy chọn thêm
Các tham số cần biết khi dùng Rsync
  • -v: hiển thị trạng thái kết quả
  • -r: copy dữ liệu recursively, nhưng không đảm bảo thông số của file và thư mục
  • -a: cho phép copy dữ liệu recursively, đồng thời giữ nguyên được tất cả các thông số của thư mục và file
  • -z: nén dữ liệu khi transfer, tiết kiệm băng thông tuy nhiên tốn thêm một chút thời gian
  • -h: human-readable, output kết quả dễ đọc
  • --delete: xóa dữ liệu ở destination nếu source không tồn tại dữ liệu đó.
  • --exclude: loại trừ ra những dữ liệu không muốn truyền đi, nếu bạn cần loại ra nhiều file hoặc folder ở nhiều đường dẫn khác nhau thì mỗi cái bạn phải thêm --exclude tương ứng.
Rsync không tự động chạy nên thường được dùng kết hợp với crontab. Tiếp theo mình sẽ giới thiệu một số ví dụ thường dùng với Rsync và kết thúc bài là script mình dùng để tự động backup toàn bộ VPS hàng ngày.
Khi lần đầu chạy rsync, toàn bộ dữ liệu nguồn sẽ được copy đến server đích, từ lần chạy sau trở đi chỉ những dữ liệu chưa được copy mới được transfer – đây là quá trình đồng bộ dữ liệu. Do đó, bạn có thể hiểu rsync thực hiện việc copy hoặc đồng bộ đều đúng. Trong bài viết mình sẽ sử dụng duy nhất khái niệm Copy cho ngắn gọn nhé.

1. Copy file và thư mục trên local

Copy file trên local
[root@hocvps]# rsync -zvh backup.tar /tmp/backups/

created directory /tmp/backups

backup.tar

sent 14.71M bytes  received 31 bytes  3.27M bytes/sec

total size is 16.18M  speedup is 1.10
Ví dụ trên copy file backup.tar sang thư mục /tmp/backups/ trên cùng một máy. Như bạn thấy thư mục đích chưa có nên rsync tự động tạo trước khi copy.
Copy thư mục trên local
[root@hocvps]# rsync -avzh /root/rpmpkgs /tmp/backups/

sending incremental file list

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent 4.99M bytes  received 92 bytes  3.33M bytes/sec

total size is 4.99M  speedup is 1.00
Câu lệnh trên copy toàn bộ file từ thư mục /root/rpmpkgs đến thư mục /tmp/backups/ trên cùng một máy.

2. Copy file và thư mục giữa các server

Copy thư mục từ Local lên Remote Server
[root@hocvps]# rsync -avz rpmpkgs/ root@192.168.0.101:/home/

root@192.168.0.101's password:

sending incremental file list

./

httpd-2.2.3-82.el5.centos.i386.rpm

mod_ssl-2.2.3-82.el5.centos.i386.rpm

nagios-3.5.0.tar.gz

nagios-plugins-1.4.16.tar.gz

sent 4993369 bytes  received 91 bytes  399476.80 bytes/sec

total size is 4991313  speedup is 1.00
Lệnh trên copy thư mục rpmpkgs từ Local lên Remote Server có IP 192.168.0.101, lưu ở thư mục /home/
Copy thư mục từ Remote Server về Local
[root@hocvps]# rsync -avzh root@192.168.0.100:/home/tarunika/rpmpkgs /tmp/myrpms

root@192.168.0.100's password:

receiving incremental file list

created directory /tmp/myrpms

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent 91 bytes  received 4.99M bytes  322.16K bytes/sec

total size is 4.99M  speedup is 1.00
Lệnh trên sẽ copy dữ liệu ở thư mục /home/tarunika/rpmpkgs trên Remote Server 192.168.0.100 về máy Local lưu ở thư mục /tmp/myrpms

3. Rsync qua SSH

Với Rsync, bạn có thể transfer qua giao thức SSH, qua đó dữ liệu được bảo mật an toàn hơn.
Copy file từ Remote Server về Local Server qua SSH
Để xác định giao thức sẽ sử dụng với rsync, bạn cần thêm tùy chọn -e cùng với tên giao thức, ở đây là ssh.
[root@hocvps]# rsync -avzhe ssh root@192.168.0.100:/root/install.log /tmp/

root@192.168.0.100's password:

receiving incremental file list

install.log

sent 30 bytes  received 8.12K bytes  1.48K bytes/sec

total size is 30.74K  speedup is 3.77
Lệnh trên copy file /root/install.log trên Remote Server 192.168.0.100 về thư mục /tmp/ trên máy Local.
Copy file từ Local lên Remote Server qua SSH
[root@hocvps]# rsync -avzhe ssh backup.tar root@192.168.0.100:/backups/

root@192.168.0.100's password:

sending incremental file list

backup.tar

sent 14.71M bytes  received 31 bytes  1.28M bytes/sec

total size is 16.18M  speedup is 1.10
Nếu sử dụng port SSH custom, không phải port tiêu chuẩn 22, bạn cần chỉ rõ port muốn dùng trong câu lệnh. Ví dụ với port 2222 của HocVPS Script câu lệnh sẽ như sau:
[root@hocvps]# rsync -avzhe "ssh -p 2222" root@192.168.0.100:/root/install.log /tmp/

4. Hiển thị tiến trình trong khi transfer dữ liệu với rsync

Để hiển thị tiến độ transfer dữ liệu, bạn có thể sử dụng tùy chọn --progress
[root@hocvps]# rsync -avzhe ssh --progress /home/rpmpkgs root@192.168.0.100:/root/rpmpkgs

root@192.168.0.100's password:

sending incremental file list

created directory /root/rpmpkgs

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

           1.02M 100%        2.72MB/s        0:00:00 (xfer#1, to-check=3/5)

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

          99.04K 100%  241.19kB/s        0:00:00 (xfer#2, to-check=2/5)

rpmpkgs/nagios-3.5.0.tar.gz

           1.79M 100%        1.56MB/s        0:00:01 (xfer#3, to-check=1/5)

rpmpkgs/nagios-plugins-1.4.16.tar.gz

           2.09M 100%        1.47MB/s        0:00:01 (xfer#4, to-check=0/5)

sent 4.99M bytes  received 92 bytes  475.56K bytes/sec

total size is 4.99M  speedup is 1.00

5. Sử dụng tùy chọn –include và –exclude

Hai tùy chọn này cho phép chúng ta thêm hoặc bớt file hoặc thư mục trong quá trình đồng bộ dữ liệu.
[root@hocvps]# rsync -avze ssh --include 'R*' --exclude '*' root@192.168.0.101:/var/lib/rpm/ /root/rpm

root@192.168.0.101's password:

receiving incremental file list

created directory /root/rpm

./

Requirename

Requireversion

sent 67 bytes  received 167289 bytes  7438.04 bytes/sec

total size is 434176  speedup is 2.59
Ở ví dụ trên, Rsync include toàn bộ những file hoặc thư mục có tên bắt đầu bởi ký tự ‘R’ và exclude toàn bộ những file hoặc thư mục còn lại.

6. Sử dụng tùy chọn –delete

Nếu muốn xóa một file hoặc thư mục không có ở thư mục nguồn, mà lại xuất hiện ở thư mục đích trong quá trình transfer, bạn hãy sử dụng tùy chọn --delete.
[root@hocvps]#  touch test.txt
[root@hocvps]# rsync -avz --delete root@192.168.0.100:/var/lib/rpm/ .
Password:
receiving file list ... done
deleting test.txt
./
sent 26 bytes  received 390 bytes  48.94 bytes/sec
total size is 45305958  speedup is 108908.55
Server đích đã có file test.txt, trong quá trình đồng bộ với option --delete, file sẽ bị xóa.

7. Giới hạn dung lượng tối đa của file được đồng bộ

Để giới hạn những file lớn được đồng bộ, bạn có thể sử dụng option --max-size
[root@hocvps]# rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ root@192.168.0.100:/root/tmprpm

root@192.168.0.100's password:

sending incremental file list

created directory /root/tmprpm

./

Conflictname

Group

Installtid

Name

Provideversion

Pubkeys

Requireversion

Sha1header

Sigmd5

Triggername

__db.001

sent 189.79K bytes  received 224 bytes  13.10K bytes/sec

total size is 38.08M  speedup is 200.43

8. Tự động xóa dữ liệu nguồn sau khi đồng bộ thành công

Để rsync tự động xóa dữ liệu sau khi đồng bộ lên server đích thành công, bạn có thể sử dụng lựa chọn --remove-source-files
[root@hocvps]# rsync --remove-source-files -zvh backup.tar /tmp/backups/

backup.tar

sent 14.71M bytes  received 31 bytes  4.20M bytes/sec

total size is 16.18M  speedup is 1.10

[root@hocvps]# ll backup.tar

ls: backup.tar: No such file or directory

9. Chạy thử nghiệm Rsync

Nếu bạn không chắc câu lệnh có thực hiện chính xác những gì mong muốn hay không, hãy thêm tùy chọn --dry-run.
Rsync lúc này sẽ không thay đổi gì dữ liệu cả mà chỉ show output mà thôi. Nếu mọi thứ hoạt động ổn, hãy bỏ tùy chọn --dry-run ra khỏi câu lệnh.
root@hocvps]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/

backup.tar

sent 35 bytes  received 15 bytes  100.00 bytes/sec

total size is 16.18M  speedup is 323584.00 (DRY RUN)

10. Giới hạn bandwidth

[root@hocvps]# rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  root@192.168.0.100:/root/tmprpm/
root@192.168.0.100's password:
sending incremental file list
sent 324 bytes  received 12 bytes  61.09 bytes/sec
total size is 38.08M  speedup is 113347.05

IV. Tổng kết

Ứng dụng của Rsync có rất nhiều, bạn có thể đồng bộ hóa file giữa các thư mục, giữa các server qua đó backup server sang một server khác hoặc synchronize real time. Tùy nhu cầu mà bạn hãy ứng dụng Rsync cho hiệu quả.
Chúc bạn thành công.

29 thg 12, 2018

Sử dụng PHPExcel trong CodeIgniter 29 thg 12, 2018

1.Download PHPExcel https://github.com/PHPOffice/PHPExcel)

2.Unzip or extract the downloaded PHPExcel lib files and copy Class directory inside files to application/third-party directory(folder).

3.Now create one file called EXcel.php in application/library folder [application/library/Excel.php]. Then include PHPExcel Class to it. see how I did it below

if (!defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH."/third_party/PHPExcel.php"; class Excel extends PHPExcel { public function __construct() { parent::__construct(); }}

How to read excel file

$file = './files/test.xlsx';

//load the excel library

$this->load->library('excel');

//read file from path

$objPHPExcel = PHPExcel_IOFactory::load($file);

//get only the Cell Collection

$cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();

//extract to a PHP readable array format

foreach ($cell_collection as $cell) {

$column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();

$row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();

$data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();

//The header will/should be in row 1 only. of course, this can be modified to suit your need.

if ($row == 1) {

$header[$row][$column] = $data_value;

} else {

$arr_data[$row][$column] = $data_value;

}

}

//send the data in an array format

$data['header'] = $header;

$data['values'] = $arr_data;
How to Create excel file on the file

//load our new PHPExcel library

$this->load->library('excel');

//activate worksheet number 1

$this->excel->setActiveSheetIndex(0);

//name the worksheet

$this->excel->getActiveSheet()->setTitle('test worksheet');

//set cell A1 content with some text

$this->excel->getActiveSheet()->setCellValue('A1', 'This is just some text value');

//change the font size

$this->excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);

//make the font become bold

$this->excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);

//merge cell A1 until D1

$this->excel->getActiveSheet()->mergeCells('A1:D1');

//set aligment to center for that merged cell (A1 to D1)

$this->excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$filename='just_some_random_name.xls'; //save our workbook as this file name


header('Content-Type: application/vnd.ms-excel'); //mime type


header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name


header('Cache-Control: max-age=0'); //no cache





//save it to Excel5 format (excel 2003 .XLS file), change this to 'Excel2007' (and adjust the filename extension, also the header mime type)


//if you want to save it as .XLSX Excel 2007 format


$objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');


//force user to download the Excel file without writing it to server's HD


$objWriter->save('php://output');
How to Generate Excel file with Database table data


//load our new PHPExcel library


$this->load->library('excel');


//activate worksheet number 1


$this->excel->setActiveSheetIndex(0);


//name the worksheet


$this->excel->getActiveSheet()->setTitle('Users list');





// load database


$this->load->database();





// load model


$this->load->model('userModel');





// get all users in array formate


$users = $this->userModel->get_users();





// read data to active sheet


$this->excel->getActiveSheet()->fromArray($users);





$filename='just_some_random_name.xls'; //save our workbook as this file name





header('Content-Type: application/vnd.ms-excel'); //mime type





header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name





header('Cache-Control: max-age=0'); //no cache





//save it to Excel5 format (excel 2003 .XLS file), change this to 'Excel2007' (and adjust the filename extension, also the header mime type)


//if you want to save it as.XLSX Excel 2007 format





$objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');





//force user to download the Excel file without writing it to server's HD


$objWriter->save('php://output');

nguồn: https://arjunphp.com/how-to-use-phpexcel-with-codeigniter/

22 thg 10, 2018

Clear disk space on CentOS 6 or CentOS 7 22 thg 10, 2018

Following are quick commands to clear disk space on CentOS 6 or CentOS 7 servers.
Before anything, you have to install yum-utils package:
yum -y install yum-utils

1. Trim log files

find /var -name "*.log" \( \( -size +50M -mtime +7 \) -o -mtime +30 \) -exec truncate {} --size 0 \;
This will truncate any *.log files on the volume /var that are either older than 7 days and greater than 50M or older than 30 days.

2. Cleanup YUM cache

The simple command to cleanup yum caches:
yum clean all
Note that the above command will not remove everything related to yum.
You may want to free up space taken by orphaned data from disabled or removed repositories:
rm -rf /var/cache/yum
Also, when you accidentally run yum through a regular user (forgot sudo), yum will create user-cache. So let’s delete that too:
rm -rf /var/tmp/yum-*

3. Remove orphan packages

Check existing orphan packages

package-cleanup --quiet --leaves --exclude-bin

Confirm removing orphan packages

Now, if happy with suggestions given by the previous command, run:
package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y

4. Remove WP CLI cached WordPress downloads

WP CLI saves WordPress archives every time you setup a new WordPress website. You can remove those caches by the following command:
rm -rf /root/.wp-cli/cache/*
rm -rf /home/*/.wp-cli/cache/*

5. Remove old kernels

The following command will keep just 2 latest kernels installed:
package-cleanup --oldkernels --count=2
Note that with some VPS providers (Linode for example), servers use provider’s built kernels by default and not the ones on the server itself. So it makes little sense to keep more than 1 old kernel on the system. So:
package-cleanup --oldkernels --count=1

6. Remove Composer cache

rm -rf /root/.composer/cache
rm -rf /home/*/.composer/cache

7. Remove core dumps

If you had some severe failures with PHP which caused it to segfault and had core dumps enabled, chances are – you have quite a few of those.
They are not needed after you done debugging the problem. So:
find -regex ".*/core\.[0-9]+$" -delete

8. Remove error_log files (cPanel)

If you use the disgusting cPanel, you surely got dozens of error_log files scattered across your web directories. Much better if you can install the Citrus Stack. A temporary solution is to remove all those files:
find /home/*/public_html/ -name error_log -delete

9. Remove Node.js caches

rm -rf /root/.npm /home/*/.npm /root/.node-gyp /home/*/.node-gyp /tmp/npm-*

Biểu mẫu liên hệ

Tên

Email *

Thông báo *