Thứ Năm, 18 tháng 4, 2019

Ping Multi sitemap bằng php

<?php
set_time_limit(999999);

$sitemaps = array(
"http://xxxxx.com/sitemap.xml",
"http://xxxxx.com/sitemap.xml"
);


// cUrl handler to ping the Sitemap submission URLs for Search Engines…
function Submit($url){
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_exec($ch);
  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);
  return $httpCode;
}


function SubmitSiteMap($url) {
  $returnCode = Submit($url);
  if ($returnCode != 200) {
    echo "Error $returnCode: $url <BR/>";
  } else {
    echo "Submitted $returnCode: $url <BR/>";
  }
}


foreach ($sitemaps as $sitemapUrl) {
  $sitemapUrl = htmlentities($sitemapUrl);
  //Google 
  $url = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".$sitemapUrl;
  SubmitSiteMap($url);
 
  //Bing / MSN
  $url = "http://www.bing.com/webmaster/ping.aspx?sitemap=".$sitemapUrl;
  SubmitSiteMap($url);

}

?>

function fakeCurl($strUrl) {

        $oCurl = curl_init($strUrl);
        $lang_parts = explode("_", "en_US");
        curl_setopt_array($oCurl, array(
            CURLOPT_VERBOSE => FALSE,
            CURLOPT_HEADER => TRUE,
            CURLOPT_HTTPHEADER => array(
                'Accept-Language: ' . str_replace("_", "-", "en_US") . ", " . $lang_parts[1] . ';q=0.5'
            ),
            CURLOPT_FRESH_CONNECT => TRUE,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_TIMEOUT => 5,
            CURLOPT_CONNECTTIMEOUT => 0,
            CURLOPT_REFERER => 'http://www.google.com',
            CURLOPT_USERAGENT => 'Googlebot/2.1 (+http://www.google.com/bot.html)',
            CURLOPT_FOLLOWLOCATION => FALSE,
            CURLOPT_COOKIEFILE => FALSE
        ));
        return curl_exec($oCurl);
}

Thứ Sáu, 15 tháng 3, 2019

Hướng dẫn cài đặt chứng chỉ SSL lên Directadmin

Thông thường Directadmin chỉ cho phép một Hosting cài đặt chứng chỉ SSL khi Hosting đó được cấp một IP Riêng, chứ không phải IP dùng chung. Nhưng khi sử dụng Directadmin chạy hệ điều hành Centos 6 trở lên, bạn có thể bật tính năng SNI (Server Name Indicator) để cho phép Directadmin cài đặt chứng chỉ SSL trên một Hosting có IP dùng chung. Nếu không bật tính năng SNI, khi tạo chứng chỉ SSL bạn sẽ gặp thông báo lỗi này.

"Cannot Execute Your Request
You can only add a certificate if you own the ip you are using
Info for Admins: Assigning an owned IP"
I, Bật tính năng SNI trên Directadmin
1 . SSH vào máy chủ Directadmin và tìm vào file :
/usr/local/directadmin/conf/directadmin.conf
2. Thêm nội dung vào directadmin.conf giá trị bên dưới và lưu lại.
enable_ssl_sni=1 
3. Chạy lệnh khởi động lại dịch vụ directadmin và apache:
service directadmin restart
service httpd restart

II, Tiến hành khởi tạo CSR và cài đặt chứng chỉ SSL vào Directadmin.

1. Đăng nhập vào Directadmin với user leve của hosting cần tạo SSL.

2. Vào phần SSL Certificates ở mục Advanced Features box.

3. Chọn các thông số như hình, chú ý chọn Key Size là 2048 và phần Common Name sẽ là tên miền để đăng ký SSL.



4. Click nút Save và hệ thống sẽ hiện ra đoạn mã CSR. Nhập đoạn mã CSR này cho bên cung cấp SSL để tiến hành các bước cài đặt tiếp theo.



5. Sau khi hoàn tất thủ tục với nhà cung cấp SSL và nhận được chứng chỉ. Bạn quay lại Directadmin phần SSL Certificate và chọn mục Paste a pre-generated certificate and key .

6. Copy toàn bộ đoạn mã chứng chỉ SSL vào bên dưới dòng -----END RSA PRIVATE KEY---- và click vào nút Save.




7. Thực hiện lệnh restart apache để hoàn tất việc cấu hình và cài đặt chứng chỉ SSL lên Directadmin.
service httpd restart

8. Bạn cần tải lên mã nguồn website vào thư mục private_html để sử dụng https

Nguyễn Thanh (TND.VN)

Cài đặt Varnish Cache cho Directadmin

Varnish Cache là gì: là một ứng dụng mã nguồn mở (Open Source) được cài đặt phía trước webserver để lưu và truy xuất cache trên webserver. Varnish cache có tác dụng như proxy trung gian cho webserver, giúp tăng tốc độ truy xuất lên rất nhiều và tiêu tốn ít tài nguyên máy chủ. Là một ứng dụng chạy độc lập không ghi bất kỳ một dòng code nào vào source web và hỗ trợ lưu cache cho nhiều loại website, chính vì lý do đó có rất nhiều website lớn sử dụng varnish cache để tăng tốc độ trang web như: facebook, Wikipedia, Twitter. Phiên bản đầu tiên của Varnish Cache 1.0 được phát hành vào tháng 12 năm 2006, đến hiện nay phiên bản mới nhất là Varnish Cache 4.1.3.

Cài đặt Varnish Cache

Cho đến thời điểm viết bài này thì varnish cache chỉ hỗ trợ các phiên bản 64 bit của Linux, FreeBSD hoặc  Solaris (x86).
Trong nội dung bài này tác giả trình bày phần cài đặt varnish làm proxy cho control panel phổ biến hiện nay là Directadmin chạy ở default (không cấu hình chuyên sâu). Do vậy vanish cache sẽ sử dụng port 80 còn webserver sẽ sử dụng một port nào đó bất kỳ.
Chú ý: là login vào máy chủ với quyền root để thực hiện các thao tác tiếp theo.
Trước hết cần nạp package của varnish repo vào:
Varnish 3.0
rpm –nosignature -i https://repo.varnish-cache.org/redhat/varnish-3.0.el6.rpm
Varnish 4.0
rpm –nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.0.el6.rpm
Varnish 4.1:
rpm –nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.1.el6.rpm
Cài varnish bằng lệnh
yum install varnish
Sau khi cài đặt thành công ta tiến hành sửa file
Sửa file /etc/sysconfig/varnish tìm
VARNISH_LISTEN_PORT=6081
Thành
VARNISH_LISTEN_PORT=80
Tiếp tục mở file /etc/varnish/default.vcl tìm
backend default {
.host = “127.0.0.1”;
.port = “80”;
}

Thành
backend default {
.host = “IP_may_chu_cua_ban”;
.port = “8080”;
}

Cấu hình cho webserver của Directadmin (apache)
Sửa file /etc/httpd/conf/httpd.conf tìm đoạn
Listen 80
…..
NameVirtualHost *:80

Sửa thành
Listen 8080
…..
NameVirtualHost *:8080

Tiếp tục sửa file /etc/httpd/conf/extra/httpd-vhosts.conf tìm đoạn
<VirtualHost *:80>
ServerAdmin [email protected]
UserDir public_html
DocumentRoot /var/www/html
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
CustomLog /var/log/httpd/homedir.log homedir
CustomLog /var/log/httpd/access_log combined
<IfModule !mod_ruid2.c>
SuexecUserGroup webapps webapps
</IfModule>
</VirtualHost>

Sửa thành
<VirtualHost *:8080>
ServerAdmin [email protected]
UserDir public_html
DocumentRoot /var/www/html
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
CustomLog /var/log/httpd/homedir.log homedir
CustomLog /var/log/httpd/access_log combined
<IfModule !mod_ruid2.c>
SuexecUserGroup webapps webapps
</IfModule>
</VirtualHost>

Bây giờ hãy khởi động lại Apache và Varnish
service httpd restart
service varnish restart

Cuối cùng là kiểm tra xem Varnish cache đã sử dụng port 80 và apache sử dụng đúng port 8080 chưa
[[email protected] ~]# netstat -pant | grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4771/varnishd
tcp        0      0 :::80                       :::*                        LISTEN      4771/varnishd
tcp        0      0 :::8080                     :::*                        LISTEN      2491/httpd

Một số thông số cần biết để cấu hình Varnish Cache
Bài viết này không trình bày cấu hình chuyên sâu, chỉ dừng lại ở mức mặc định vậy nên sẽ liệt kê các thông số cần thiết của file cấu hình Varnish
  • File thông số cấu hình /etc/sysconfig/varnish, file này chứa các thông số caching ta chú ý thông số VARNISH_STORAGE_SIZE=1G, là lượng ram ta giành riêng cho Varnish Cache dùng để cache dữ liệu ( thông số này tùy theo lượng ram của máy chủ mà cấu hình)
  • File cấu hình VLC (Varnish Configuration Language) /etc/varnish/default.vcl, file này định nghĩa chính sách caching cho Varnish chẳng hạn như caching file gì…
Một số câu lệnh cần biết
Vì Varnish không ghi log vào file như bình thường, nó ghi log theo thời gian thực và các câu lệnh của varnish đa phần đều dựa theo thời gian thực.
Varnishhist
Lệnh này cho thấy được số lượng request đến cache (HIT) và  lượt request trực tiếp vào backend server (MISS – khi chưa có cache), varnishhist sẽ thống kê theo dạng biểu đồ như hình
varnishhist
Varnishstat
Lệnh này sẽ hiển thị thông số thống kê chi tiết trong quá trình xử lý cache của
varnishstat
Ngoài ra còn có nhiều lệnh rất hữu ích có thể tham khảo thêm tại

Thứ Năm, 14 tháng 3, 2019

Sửa lỗi khi xóa file skin trong Directadmin

Kết quả hình ảnh cho directadmin
Nếu bạn vô tinh bị lỗi "Error: document not found" khi "lỡ tay" xóa mất 1 skin nào đó trong Directadmin thì đừng lo, đây là cách phục hồi lại nhé:

kiểm tra file
/usr/local/directadmin/data/users/admin/user.conf


sửa lại dòng 
docsroot=./data/skins/ cho đúng với skin còn lại là được
Chúc bạn thành công

Thứ Tư, 13 tháng 3, 2019

Fix lỗi Error with system Quotas trên vps directadmin

hi cài xong directadmin thì thêm user thì báo lỗi "Error with system Quotas" ức chế vãi. tìm cách giải quyết thì vô tình được một bạn chỉ, nên mình post vào đây để cho lần sau còn lục lại nếu gặp lỗi này:

Bạn login vào vps bằng ssh làm theo các bước sau:
# cd /usr/sbin
# mv setquota setquota.old
# touch setquota
# chmod 755 setquota


Còn trường hợp nữa là bị lỗi "Could not write domain's db file in /var/named" thì sửa file directadmin.conf ở đường dẫn /usr/local/directadmin/conf và thêm vào 
named_checkzone=0

Khởi động lại DA service directadmin restart
và /etc/init.d/httpd start

Fix lỗi fpt Directadmin

Trong một số trường hợp bạn không đăng nhập được tài khoản fpt của Directadmin qua cổng 21 thì làm như sau nhé :

cd /usr/local/directadmin/custombuild
./build set ftpd pureftpd
./build update
./build pureftpd
./build set ftpd proftpd
./build proftpd

Upgrade PHP với DirectAdmin - Cập nhật phiên bản PHP

Kết quả hình ảnh cho directadmin



Nếu muốn sử dụng PHP phiên bản 5.5 làm như sau

 cd /usr/local/directadmin/custombuild
./build set php1_release 5.5
./build update
./build php n
./build rewrite_confs //Viết lại conf


Tương tự nếu muốn nâng cấp PHP 7 thì làm như sau:
cd /usr/local/directadmin/custombuild
./build set custombuild 2.0
./build set php1_release 7.0
./build set apache_ver 2.4
./build update
./build php d
 ./build rewrite_confs //Viết lại conf