Datgs' Blog

Quyết chiến quyết thắng !

Archive for the category “OS”

Content Delivery Network là gì?

Dịch thô “Mạng phân phát nội dung” (CND). Đúng như cái tên của nó, đây là mạng lưới các máy chủ chứa các nội dung giống nhau, được đặt ở nhiều vị trí khác nhau trên quả đất (mật độ đặt phụ thuộc vào mật độ truy cập của vùng địa lý đó). Mạng phát tán nội dung giúp cho máy khách tìm được thông tin nhanh nhất ở máy chủ gần mình nhất. Và quan trọng hơn cả là giảm được băng thông lên một máy chủ duy nhất (nếu không dùng CDN). Tránh được việc quá tải lên máy chủ trung tâm.

Đây là điều mà tất cả những ai quan tâm đến phát triển dịch vụ trên internet đều phải quan tâm.

Thông thường các mạng sau cần phải có CDN

1. Những website lớn, cung cấp nội dung trên diện rộng (địa lý) và có nhiều người truy cập đồng thời

2. Những mạng truyền hình cáp

3. Repository của các phiên bản Linux (như Ubuntu chẳng hạn). Mỗi quốc gia có một mirror riêng, giúp cho việc tải và cài đặt các phần mềm diễn ra nhanh chóng…

Downgrade php3 – php2, gỡ lỗi

PHP3 có hiện đại thật nhưng cũng hại điện không kém. Vì thế một số ứng dụng chỉ nên chạy với php2 (ví dụ như ứng dụng viết trên Zend Framework chẳng hạn).

Vì vậy bạn cần phải downgrade từ phiên bản 3 xuống phiên bản 2 khi đã lỡ cài đặt nó. Với windows thì việc này không vấn đề gì. Mình thường đặt sẵn mấy phiên bản PHP cạnh nhau, muốn đổi chỉ cần config lại apache là xong.

Tuy nhiên nó lại khá phiền toái với nhứng OS tự động cài đặt. Như Ubuntu mà mình đang sử dụng đây.

Vì thế sau khi search google, tìm được 2 đoạn shell script xài được. Note vào đây cho dễ nhớ này:

http://mrkandy.wordpress.com/2010/04/16/install-php-5-2-x-in-ubuntu-10-04-lucid/

php_installed=`dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

# remove all php packge
sudo aptitude purge $php_installed

# use karmic for php pakage
# pin-params:  a (archive), c (components), v (version), o (origin) and l (label).
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee /etc/apt/preferences.d/php > /dev/null
apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null
apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'| sudo tee -a /etc/apt/preferences.d/php > /dev/null
echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee -a /etc/apt/preferences.d/php > /dev/null

# add karmic to source list
egrep '(main restricted|universe|multiverse)' /etc/apt/sources.list|grep -v "#"| sed s/lucid/karmic/g | sudo tee /etc/apt/sources.list.d/karmic.list > /dev/null

# update package database (use apt-get if aptitude crash)
sudo apt-get update

# install php
sudo apt-get install $php_installed
# or sudo aptitude install -t karmic php5-cli php5-cgi //for fcgi
# or  sudo apt-get install -t karmic  libapache2-mod-php5 //for apache module

sudo aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
#done

http://ubuntuforums.org/showthread.php?t=1459163

#!/bin/bash
# by Ruben Barkow (rubo77) http://www.entikey.z11.de/

# Originally Posted by Bachstelze http://ubuntuforums.org/showthread.php?p=9080474#post9080474
# OK, here’s how to do the Apt magic to get PHP packages from the karmic repositories:

echo “Am I root?  “
if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then
echo “  NO!

Error: You must be root to run this script.
Enter
sudo su

exit 1
fi
echo “  OK”;

#install aptitude before, if you don`t have it:
apt-get install aptitude
# or if you prefer apt-get use:
# alias aptitude=’apt-get’

# finish all apt-problems:
aptitude update
aptitude -f install
#apt-get -f install

# remove all your existing PHP packages. You can list them with dpkg -l| grep php
PHPLIST=$(for i in $(dpkg -l | grep php|awk ‘{ print $2 }’ ); do echo $i; done)
echo these pachets will be removed: $PHPLIST
# you need not to purge, if you have upgraded from karmic:
aptitude remove $PHPLIST
# on a fresh install, you need purge:
# aptitude remove –purge $PHPLIST

#Create a file each in /etc/apt/preferences.d like this (call it for example /etc/apt/preferences.d/php5_2);
#
#Package: php5
#Pin: release a=karmic
#Pin-Priority: 991
#
#The big problem is that wildcards don’t work, so you will need one such stanza for each PHP package you want to pull from karmic:

echo ”>/etc/apt/preferences.d/php5_2
for i in $PHPLIST ; do echo “Package: $i
Pin: release a=karmic
Pin-Priority: 991
“>>/etc/apt/preferences.d/php5_2; done

# duplicate your existing sources.list replacing lucid with karmic and save it in sources.list.d:
#sed s/lucid/karmic/g /etc/apt/sources.list | sudo tee /etc/apt/sources.list.d/karmic.list

# better exactly only the needed sources, cause otherwise you can get a cachsize problem:
echo “# needed sources vor php5.2:
deb http://de.archive.ubuntu.com/ubuntu/ karmic main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ karmic main restricted

deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ karmic-updates main restricted

deb http://de.archive.ubuntu.com/ubuntu/ karmic universe
deb-src http://de.archive.ubuntu.com/ubuntu/ karmic universe
deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ karmic-updates universe

deb http://de.archive.ubuntu.com/ubuntu/ karmic multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ karmic multiverse
deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ karmic-updates multiverse

deb http://security.ubuntu.com/ubuntu karmic-security main restricted
deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted
deb http://security.ubuntu.com/ubuntu karmic-security universe
deb-src http://security.ubuntu.com/ubuntu karmic-security universe
deb http://security.ubuntu.com/ubuntu karmic-security multiverse
deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse
” >> /etc/apt/sources.list.d/karmic.list

aptitude update

apache2ctl restart

echo install new from karmic:
aptitude -t karmic install $PHPLIST

# at the end retry the modul libapache2-mod-php5 in case it didn’t work the first time:
aptitude -t karmic install libapache2-mod-php5

apache2ctl restart

php_installed=`dpkg -l | grep php| awk '{print $2}' |tr "\n" " "` 

02
03 # remove all php packge
04 sudo aptitude purge $php_installed
05
06 # use karmic for php pakage
07 # pin-params:  a (archive), c (components), v (version), o (origin) and l (label).
08 echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n" | sudo tee /etc/apt/preferences.d/php > /dev/null
09 apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null
10 apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'| sudo tee -a /etc/apt/preferences.d/php > /dev/null
11 echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n" | sudo tee -a /etc/apt/preferences.d/php > /dev/null
12
13 # add karmic to source list
14 egrep '(main restricted|universe|multiverse)' /etc/apt/sources.list|grep -v "#"| sed s/lucid/karmic/g | sudo tee /etc/apt/sources.list.d/karmic.list > /dev/null
15
16 # update package database (use apt-get if aptitude crash)
17 sudo apt-get update
18
19 # install php
20 sudo apt-get install $php_installed
21 # or sudo aptitude install -t karmic php5-cli php5-cgi //for fcgi
22 # or  sudo apt-get install -t karmic  libapache2-mod-php5 //for apache module
23
24 sudo aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
25 #done

Lỗi mod_security (mod_security2 )

Mod_security rất tốt cho việc bảo vệ website khỏi các vụ tấn công. Tuy nhiên nhược điểm của nó là thường hay gây lỗi cho chính các ứng dụng web. Nhất là khi upload file lên phía server.

Vì vậy trong các trường hợp ta có thể tắt mod_security bằng một file .htaccess.

SecFilterEngine Off (tắt toàn bộ)
SecFilterScanPOST Off (tắt kiểm duyệt POST)

Thông thường chúng ta nên thử SecFilterScanPOST Off

Sau đó nếu tình hình không có gì thay đổi, mới cần sử dụng SecFilterEngine Off

Nói thêm, có 2 mod_sercurity và mod_security2, tất nhiên là đời sau tiến bộ hơn đời trước.

Nói thêm, chỉ có thể sử dụng .htacess khi mà được phép bởi DDISABLE_HTACCESS_CONFIG của apache. Ngược lại thì chỉ còn cách gọi trung tâm hỗ trợ.

Nói thêm, mod_security2 có nhiều tham số nâng cao hơn mod_security, nhưng về mục đích sử dụng là như nhau. Và xét toàn diện, module này làm cho webserver chạy chậm đi một lượng kha khá :)

Kho phần mềm nguồn mở hosted tại Việt Nam

Một số công ty, tổ chức tại Việt nam hiện đã cung cấp các server lưu trữ phần mềm nguồn mở. Tìm kiếm, tải về và cập nhật từ các kho này đương nhiên là nhanh hơn nhiều so với các kho ở nước ngoài.

1- FPT

Địa chỉ server của FPT là http://mirror-fpt-telecom.fpt.net

Tại đây có các bản Linux Fedora, Ubuntu, CentOS, Mandriva, Debian, OpenSUSE, Slackware và một số phần mềm: OpenOffice, KDE, GNOME, Apache, ….

Trong các bản Linux, Ubuntu có vẻ đầy đủ hơn cả gồm các file iso cho desktop và server từ 6.04 đến bản mới nhất là 8.10. Ngoài ra còn có các kho phần mềm (repository) để cài đặt và cập nhật. Thay cho các repo của Ubuntu có thể add các địa chỉ sau:

deb http://mirror-fpt-telecom.fpt.net/ubuntu/intrepid main restricted universe multiverse
deb http://mirror-fpt-telecom.fpt.net/ubuntu/intrepid-security main restricted universe multiverse
deb http://mirror-fpt-telecom.fpt.net/ubuntu/intrepid-updates main restricted universe multiverse
deb http://mirror-fpt-telecom.fpt.net/ubuntu/intrepid-proposed main restricted universe multiverse

(Bỏ chọn các kho tương ứng của Ubuntu).

OpenSUSE cũng có chất lượng kho tương đương Ubuntu (gồm cả bản iso 11.1 và các repo). CentOS có bản mới nhất là 5.2.

Mandriva trên server này quá cũ (chỉ có bản 2009.1 alpha và không cập nhật, chắc là không được đăng ký trong mirror list của Mandriva). Các phần mềm khá hơn: KDE có bản mới nhất 4.2, OpenOffice có bản 3.0 hoàn toàn Việt hóa, Firefox có bản 3.1 beta2.

Nhìn chung, server của FPT có nhiều PMNM, tốc độ khá nhanh (khoảng 250 – 300KB/s) xứng đáng là cty Tin học số 1 Việt nam. Việt nam thôi vì cách quản lý còn tùy hứng, cái nào không quan tâm thì bỏ. Hy vọng là FPT sẽ cải tiến.

2- OpenLAB:

Tên thì hoành tráng nhưng kho phần mềm có mỗi Ubuntu 8.10 và Moblin. Với Ubuntu 8.10 có thể add các repository này:

deb http://www.oss-hcm.gov.vn/ubuntu/ intrepid main restricted universe multiverse
deb http://www.oss-hcm.gov.vn/ubuntu/ intrepid-security main restricted universe multiverse
deb http://www.oss-hcm.gov.vn/ubuntu/ intrepid-updates main restricted universe multiverse
deb http://www.oss-hcm.gov.vn/ubuntu/ intrepid-proposed main restricted universe multiverse
deb http://www.oss-hcm.gov.vn/ubuntu/ intrepid-backports main restricted universe multiverse

Chưa dùng bao giờ.

Graphic (Video) Drivers Ubuntu Repository

deb http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu jaunty main

Apache modules

mod_evasive

mod_evasive is an evasive maneuvers module for Apache to provide evasive action in the event of an HTTP DoS or DDoS attack or brute force attack. It is also designed to be a detection and network management tool, and can be easily configured to talk to ipchains, firewalls, routers, and etcetera. mod_evasive presently reports abuses via email and syslog facilities.

Cài đặt x-unikey trên ubuntu

xvnkb

Bộ gõ Xvnkb thường mắc lỗi lúc khởi động, hoặc khi muốn gỡ ra thì nó cũng gây những vấn đề phiền toái.

x-unikey

x-unikey là nhẹ nhất và ổn định nhất.

Cài đặt x-unikey trên Ubuntu

Đầu tiên các bạn sẽ vào trang này để download bộ gõ X-unikey cho Ubuntu về (file .deb). Bộ gõ mình đang sử dụng là bản X-unikey 1.0.4 DEB của bác Nguyễn Việt Đức. Các bạn có thể down bản mới hơn hoặc cũ hơn cũng được, theo mình là nếu các bạn đang sử dụng phiên bản Ubuntu càng mới thì cứ down bản X-unikey mới nhất về mà xài, còn nếu thấy bản X-unikey đó có lỗi thì có thể down bản cũ hơn về xài cũng được :smile:.

Sau khi down về xong các bạn sẽ có một file .deb, nhấp đúp vào file đó để cài như là cài một file .exe bên WIN vậy :smile: . Sau đó các bạn cứ nhấp Install Package, nó sẽ hỏi Password, đánh password vào và quá trình cài đặt sẽ bắt đầu. Cuối cùng các bạn nhấn Close để kết thúc quá trình cài đặt. Restart lại máy, bây giờ các bạn đã có thể sử dụng được X-unikey.

Sử dụng x-unikey

Bây giờ chúng ta sẽ mở Terminal lên (vào Applications —> Accessories —> Terminal) và gõ chữ unikey vào. Các bạn sẽ thấy một ô nhỏ của X-unikey ở góc phải phía dưới màn hình.

Sử dụng rất đơn giản, nhấp chuột trái là tắt/mở X-unikey (ngoài ra có thể sử dụng phím tắt là Ctrl+Shift), nhấp chuột phải là chuyển đổi kiểu gõ (bao gồm các kiểu UTF8 (Unicode), VIQR, TCVN, VNI, BK2).

Một lỗi nhỏ của X-unikey trong quá trình sử dụng là thỉnh thoảng không gõ được Tiếng Việt (khi mở Open Office lên, chuyển qua lại giữa các box văn bản,…) thì các bạn chỉ cần đưa con trỏ đến phần văn muốn gõ, sau đó tắt X-unikey đi rồi bật lại (nhấp đúp chuột trái vào ô X-unikey nhỏ bên góc phải hoặc nhấn Ctrl+Shift hai lần), vậy là gõ được ngay :smile:

Muốn cho X-unikey tự động mở khi bật máy lên thì các bạn vào System/Preferences/Session (nếu là Ubuntu 9.04 thì là System/Preferences/Startup Applications), vào tab Startup Programs nhấn vào nút add sẽ thấy ba dòng, dòng NameComment các bạn có thể đặt tùy ý, còn phần Command thì các bạn gõ vào chữ unikey, sau đó nhấn nút add —> Close để kết thúc quá trình này :smile:.

Gỡ bỏ x-unikey khỏi hệ thống

Dùng lệnh:

sudo apt-get purge x-unikey

Nguồn: ubuntu-vn.com

Cài đặt apache, php, mysql trên windows (cập nhật)

Chú ý: chỉ áp dụng chính xác cho phiên bản apache2.2.x php5.2.x và mysql 5.x, với các phiên bản khác có thể có một chút đổi khác.

Có thể chỉ phù hợp với những người có kinh nghiệm cài đặt Apache, PHP và MySQL. Nếu hướng dẫn dưới đây là không đầy đủ. Bạn có thể tìm một hướng dẫn chi tiết hơn cho từng mục.

0. Chuẩn bị

Chú ý duy nhất là nếu bạn cài đặt đè lên bản apache cũ, bạn hãy xóa file config cũ đi. Vì khi cài đè apache không đè các file config.

1. Các bộ cài

Apache 2.2.x tải về từ  website http://httpd.apache.org/ (chọn bản MSI installer)

MySQL5.xtải về từ website http://dev.mysql.com/downloads/mysql/5.0.html (chọn bản MSI installer)

PHP5.2.x tải bản zip dành cho windows tại http://www.php.net/downloads.php.

2. Cài đặt

Cài đặt Apache2.2.x bình thường với cấu hình cơ bản là localhost, localhost, <admin email>, 8080 hoặc 80. Chú ý một trong hai cổng 8080 hoặc 80 phải tự do, tức là chưa có dịch vụ nào sử dụng nó.

Cài đặt MySQL5.x bình thường. Đến phần cấu hình next cho đến khi được yêu cầu nhập root password. Bạn nên chọn một password. Với server đang phát triển, thường chọn mật khẩu root là 123456.

PHP giải nén và chú ý ghi nhớ đường dẫn đến thư mục PHP của bạn.

3. Cấu hình

Để Apache2.2.x chạy PHP dưới dạng một module bạn làm như sau

Mở file httpd.conf của Apache (nằm trong thư mục conf, nơi bạn đã cài apache)

Thêm vào httpd.conf đoạn cấu hình

LoadModule php5_module “E:\WEBSERVER\php5\php5apache2_2.dll”
AddType application/x-httpd-php .php
PHPIniDir “E:\WEBSERVER\php5″

LoadModule php5_module “PHP_PATH\php5apache2_2.dll”

AddType application/x-httpd-php .php

PHPIniDir “PHP_PATH”

Với chú ý rằng PHP_PATH là nơi bạn đã giải nén PHP.

Để Apache2.2.x chọn index.php làm trang web mặc định để

Tìm tới dòng

DirectoryIndex index.html

Sửa lại thành

DirectoryIndex index.html index.php

Nếu bạn muốn index.php có ưu tiên cao hơn, bạn có thể chuyển nó về trước index.html

DirectoryIndex index.php index.html

Chuẩn bị file php

Tìm trong thư mục bạn đã giải nén PHP file php5ts.dll và copy nó vào thư mục bin của apache.

Trong thư mục bạn đã giải nén PHP, copy toàn bộ các file *.dll bạn nhìn thấy vào trong thư mục Windows/system32 chú ý chỉ copy file bạn nhìn thấy, không cần copy các file trong thư mục

Bước này chỉ là kinh nghiệm của tôi qua việc cài đặt các phiên bản trước. Có thể trong phiên bản này bước này không còn cần thiết nữa. Tuy nhiên, tôi vẫn thường làm theo cách này và không gặp bất cứ trục trặc nào.

Trong thư mục bạn đã giải nén PHP, copy php.ini-dist và sửa tên file bạn vừa copy thành php.ini.

Bạn sửa luôn php.ini-dist thành php.ini cũng không sao cả.

Cấu hình php.ini

1. Mở file php.ini bằng notepad, notepad++ hay wordpad

2. Tìm trong php.ini từ khóa doc_root và sửa thành

doc_root = APACHE_PATH/htdocs

* Trong đó APACHE_PATH là nơi bạn đã cài đặt apache.

* Chú ý rằng

htdocs là nơi mặc định của apache để đặt các public files (html, php). Bạn có thể cấu hình lại, hoặc dùng virtual host, hoặc dùng Script-Alias… Tuy nhiên, nếu bạn mới bắt đầu sử dụng Apache thì bạn không cần phải quá quan tâm đến vấn đề này. Chỉ cần cấu hình mặc định là được.

3. Tìm trong php.ini từ khóa extension_dir và cấu hình thành

extension_dir = PHP_PATH/ext

* extension_dir là đường dẫn đến nơi bạn để các thư viện mở rộng của PHP

4. Tìm các dòng ;extension=php_*.dll đó là các extension mà php cung cấp cho bạn. Chú ý rằng nếu có ; tức là thư viện đó chưa được sử dụng. Nếu bạn muốn sử dụng thư viện nào, chỉ cần bỏ dấu ; . Các thư viện cần đề dev bao gồm

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_soap.dll

5. Copy các file *.dll trong thư mục PHP_PATH vào thư  mục system32 của windows (WINDOWS/system32) (nhắc lại một câu ở trên vì thao tác này khá là dễ bị quên)

4. Hoàn thành

Khởi động lại apache là hoàn tất.

Lập trình C với thư viện libpq của Postgresql

1. Mục đích

Tại sao phải lập trình C với thư viện libpq.

  • Thực thi nhanh hơn ngôn ngữ thông dịch (scripts)
  • Bảo mật hơn
  • Che dấu được mã nguồn
  • Ứng dụng lập trình CGI

Các hệ thống thường bắt đầu từ PHP nhưng khi lượng truy cập đồng thời tăng lên họ cần có những tiểu xảo (đại xảo) để tối ưu hóa hiệu năng của hệ thống. Biên dịch sang mã máy là một phương pháp cực kì hiệu quả. Hệ thống sẽ không phải nai lưng để dịch các đoạn script mà chỉ cần nạp chương trình vào bộ nhớ là xong.

2. Cài đặt

  • Cài đặt Postgresql bạn có thể tham khảo bài cài đặt postgresql. Trên windows & ubuntu, việc cài đặt diễn ra hết sức dễ dàng nhờ bộ cài (windows) và shell command (yum của Ubuntu)
  • Thiết lập thư viện libpq trong hệ thống. Với Ubuntu việc này cũng hết sức dễ dàng nhờ shell command.
  • Cập nhật phiên bản thông dich cc, gcc.

3. Lập trình với thư viên libpq

1. Đóng mở các kết nối tới postgresql server

2. Truy vấn, tương tác cơ sở dữ liệu

4. Dịch chương trình thành mã máy

Bạn có thể tham khảo tại http://www.postgresql.org/docs/8.1/static/libpq-build.html

Tuy nhiên, một lưu ý với bạn. Đó là bạn phải chỉ ra các thư viện nằm ở đâu khi dịch. Mỗi hệ điều hành nó được mặc định đặt ở một vị trí khác nhau. Bao gồm:

* Nơi để file libpq-fe.h (khi dịch ra file object)

Shell command

cc -c -I/usr/local/pgsql/include testprog.c

Phần chữ in đậm, bạn phải chỉ đến nới có chứa file libpq-fe.h.

Trên Ubuntu với phiên bản postgresql 8. thì thư mục đó là /usr/include/postgresql

* Nơi để file lpq (khi liên kết các module với libpq)

Shell command

cc -o testprog testprog1.o testprog2.o -L/usr/local/pgsql/lib -lpq

Phần in đậm, bạn phải chỉ đúng nơi có chứa file thực thi lpq

Trên Ubuntu với phiên bản postgres 8. thì thư mục đó là /usr/lib

5. Nguồn tham khảo

Libpq APIs

http://www.postgresql.org/docs/8.1/static/libpq.html

Mã nguồn ví dụ

http://www.postgresql.org/docs/8.3/static/libpq-example.html

Lên cấu hình crontab

1. Crontab ứng dụng vào công việc gì ?

Crontab sử dụng trên linux, sử  dụng để lên lịch chạy các shell command.

Ví dụ, bạn muốn hệ thống của bạn định kì chạy các ứng dụng nào đó, chạy các tiện ích nào đó trên Linux, Unix ví dụ như:

  1. Cần gửi mail định kỳ cho khách hàng
  2. Xóa các file nháp hệ thống
  3. Clone các máy chủ
  4. ..

2. Cài đặt crontab

Crontab là cài đặt mặc định của các hệ điều hành linux. Vì vậy bạn không cần quan tâm đến việc cài đặt nó (ở hầu hết các hệ điều hành phiên bản hiện tại).

3. Làm việc với crontab

4. Kí pháp của crontab

Phải nhập đủ các thông tin sau trong một cấu hình crontab.

minute hour day_of_month month day_of_week shell_command_to_execute

Giá trị Phạm vi * */a
minute 0-59 Tất cả định thời a phút
hour 0-23 Tất cả định thời a giờ
day of month 0-31 Tất cả định thời a ngày
month 0-12 (or names, see below) Tất cả định thời a tháng
day of week 0-7 (0 or 7 is Sun, or use names) Tất cả định thời a ngày trong tuần

Mỗi một thông tin đều có thể sử dụng kí tự đại diện

5. Các cấu hình cơ bản

Dựa vào bảng các tham số ở trên. Bạn có thể tham khảo các ví dụ sau:

phút giờ ngày trong tháng tháng ngày trong tuần Ý nghĩa
30 0 1 1,6,12 * 0 giờ 30 phút ngày 1 của các tháng 1,6,12
0 20 * 10 1-5 20 giờ 0 phút mọi ngày của tháng 10 từ thứ 2 đến thứ 6
0 0 1,10,15 * * lúc nửa đêm, ngày 1st ,10th & 15th của tất cả các tháng
5,10 0 10 * 1 lúc 12h5 và 12h10 tất cả các thứ 2 của ngày 10th của tất cả các tháng
10 0 */2 * * lúc 0h10, cách 2 ngày
15 0 15 */2 * lúc 0h15, thực hiện vào ngày 15 cách hai tháng (hai tháng một lần)

6. Thực hành

Bạn có thể tìm ra cầu hình crontab với url ở trên.

Cài đặt SVN server trên môi trường windows

Bước 1: cài đặt svn server

Cách 1: download phiên bản subversion mới nhất và cài đặt subversion bằng dòng lệnh. Cách này thủ công và khá mất thời gian. Xin tham khảo thêm ở phần cài đặt SVN trên môi trường Linux.

Khi sử dụng cách 1, cần phải cài đặt thêm mod_dav_svn và mod_authz_svn modules cho apache (nếu bạn sử dụng apache làm webserver).

Cách 2: download và sử dụng visual svn server từ trang web chính thức

http://www.visualsvn.com/server/

mọi hướng dẫn cài đặt và lên cấu hình bạn có thể tìm thấy ở trang sau

http://www.visualsvn.com/server/doc/server-config/

Bước 2: cài đặt svn client

SVN client là công cụ đắc lực để quản lý mã nguồn, bao gồm các thao tác chính là thêm, bớt, sửa, xóa, checkin, checkout, so sánh phiên bản.

Tortoise là sự lựa chọn thường xuyên trên windows. Đó là một công cụ quản lý source code visual khá mạnh, hỗ trợ nhiều giao thức. Bạn có thể tham khảo thông tin về tortoise svn bởi liên kết sau

http://tortoisesvn.tigris.org/

Hướng dẫn sử dụng tortoisesvn bạn có thể tham khảo tại đây

http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html

Nếu bạn muốn hiểu rõ hơn về quản lý source code với SVN, bạn có thể tìm đọc bài viết này.

Chú ý 1: Cài đặt SVN client với Eclipse, Zend Studio

Eclipse và Zend Studio đều có hỗ trợ SVN client dưới dạng plugin. Zend Studio thì đã tích hợp sắn. Còn với Eclipse thì cần phải cài đặt nó bằng cách:

Vào menu Help > Install New Software 

Chọn repository “Helios – http://download.eclipse.org/releases/helios” nếu bạn đang sử dụng phiên bản Helios. Nó có thể là phiên bản Gallieo hoặc Indigo.

Đợi hệ thống fetching các phần mở rộng.

Bạn chọn phần Collaborator > SVN. Chú ý thường ta chọn phiên bản SVN connector mới nhất. Nhưng đôi khi SVN server nơi chứa mã nguồn yêu cầu phiên bản thấp hơn thì bạn nên chọn phiên bản thấp hơn. Trong các phiên bản mới việc tương thích diễn ra khá tốt, cũng không phải lo lắng gì nhiều.

Chú ý 2: Không sử dụng 2 SVN Client cùng một lúc mà không biết chắc chúng có phiên bản như nhau

Điều này có nghĩa là bạn không nên vừa sử dụng tortoise svn client để checkin checkout update … đồng thời sử dụng Eclipse SVN trên cùng một working copy. Đơn giản là vì phiên bản của chúng có thể khác nhau, điều này dẫn đến một trong hai phiên bản sẽ không sử dụng được trên working copy đó nữa. Nhất là với Eclipse SVN Plugin.

Hosts file location

Linux

/etc/hosts

Windows

Windows 95/98/Me  c:\windows\hosts 
Windows NT/2000/XP Pro  c:\winnt\system32\drivers\etc\hosts
Windows XP Home c:\windows\system32\drivers\etc\hosts

Windows 95/98/Me  c:\windows\hosts 

Windows NT/2000/XP Pro  c:\winnt\system32\drivers\etc\hosts

Windows XP Home c:\windows\system32\drivers\etc\hosts

Mac

/etc/hosts

Vai trò của PHP trong thế giới công nghệ

Một bài báo viết rằng, trong năm năm tới, một lập trình viên tốt cần phải nắm vững một trong 3 công nghệ Java, .NET hoặc PHP.

Điều này chứng tỏ sức nặng của PHP trong thế giới công nghệ là vô cùng to lớn. Vậy tại sao PHP, với xuất thân là “phiên bản 2″ của perl, lại đóng một vai trò lớn lao đến như vậy ???

1. PHP cực kì dễ tiếp cận, tư duy lập trình của PHP phù hợp cho cả gà lẫn proman.

2. Quá rẻ, ai cũng có thể tiếp cận.

3. Uyển chuyển tới mức… khó lường.

4. Chơi thân với Apache và *nix.

5. So sánh với Java hoặc .NET. Với java hay .NET, microsoft và sun cung cấp cái gì, bạn phải dùng cái đấy. Ở phía ngược lại, bạn có quyền quyết định xem mình sẽ sử dụng module nào, không sử dụng module nào, loại bỏ hàm nào khỏi hệ thống.

6. PHP framework hiện tại có thể làm tất cả những gì ASP.NET framework có thể làm. Còn hơn thế, bạn có thể dễ dàng viết lại một số đoạn code trong PHP Framework để nó hoạt động đúng ý đồ của bạn hơn (interpreter) còn ASP.NET thì sao, MS cho gì, bạn phải xài nấy ^^

Tuy nhiên ở phía ngược lại, trong các hệ thống quan trọng không trọng dụng PHP như .NET, bởi vì mã nguồn mở rất chi là … “mở cửa”. Nếu bạn không phải là Pro về hệ thống, không biết cách cấu hình các tham số chạy, lúc đó chương trình của bạn coi như được… mở tung.

Tôi đã từng phát triển một hệ thống mạng xã hội sử dụng PHP (Symfony) & MySQL & CentOS (Linux). Quả thật công đoạn cài đặt Server chẳng khác nào đánh vật. Mà trong đó google là chỗ dựa duy nhất. Và từ khóa “shell command ….” là hot tag ^^.

Vì thế tôi cũng khuyên rằng, bạn nào muốn trở nên pro về hệ thống thông tin thì xin hãy tập cách xài đồ của mã nguồn mở ngay từ bây giờ.

7. Tập sử dụng mã nguồn mở, cũng có nghĩa là làm quen với tập lệnh (dùng windows thì ít xài lắm), là làm quen với cách cài đặt lạ lẫm, mà tôi có thể liệt kê ra như sau:

+ Bạn phải có kĩ năng sử dụng shell command. Không có giao diện cho bạn mà ấn nút next đâu.

+ Lúc nào cũng phải trong trạng thái sẵn sàng .. config. Các chương trình, dịch vụ trên linux đòi hỏi bạn phải .. config rất nhiều. Ví dụ như để thay đổi default charset của MySQL, trên windows bạn sẽ mở mysql configuration ra và next và next .. Còn trên Linuxx bạn sẽ phải tìm file /etc/my.cnf. Và thêm vào đó dòng default_character_set utf8….

Cài đặt thư viện PHP trên Linux

Lệnh 

> yum install php-<tên thư viện>

Sẽ cho phép bạn cài đặt các thư viện của PHP trên linux.

Ví dụ

> yum install php-gd 

Sẽ cài đặt thư viện gd.

Post Navigation

Follow

Get every new post delivered to your Inbox.