Django phụ thuộc rất mật thiết vào các module đi kèm nên cách tốt nhất để chạy Django là sử dụng môi trường ảo. Python có sẵn module virtualenv hỗ trợ việc tạo môi trường ảo. Bằng cách sử dụng virtualenv, chúng ta có thể dễ dàng đóng gói các module từ môi trường development và đưa lên môi trường production.
Thông tin thêm về virtualenv:
http://docs.python-guide.org/en/latest/dev/virtualenvs/
Mặc định server đã có sẵn những thành phần sau:
* CentOS 6.8
* Python 2.7.x
* Apache 2.4
Để bảo vệ thư mục bằng mật khẩu thì thông thường cách đơn giản nhất là sử dụng [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). Tuy nhiên nhược điểm của cách xác thực này là mật khẩu không được mã hóa trong quá trình truyền dữ liệu giữa server và client. Nếu không sử dụng kết nối bảo mật mà vẫn muốn thiết lập mật khẩu để bảo vệ thư mục thì nên dùng phương pháp xác thực an toàn hơn là [Digest Authentication](https://en.wikipedia.org/wiki/Digest_access_authentication).
Dưới đây là ghi chú cách thay đổi múi giờ của server chạy hệ điều hành CentOS.
Thiết lập múi giờ được quản lý bởi file `/etc/localtime`.
Mặc định múi giờ sẽ là UTC.
Các file định nghĩa các múi giờ khác nằm trong thư mục: `/usr/share/zoneinfo`.
~~~
# Giả sử xem danh sách các múi giờ ở châu Á.
> ls /usr/share/zoneinfo/Asia
Aden Beirut Dushanbe
Almaty Bishkek Famagusta
Amman Brunei Gaza
...
~~~
**Thực hiện**
1/ Xóa file `localtime` mặc định
~~~
> sudo rm /etc/localtime
~~~
2/ Tạo symbolic link tới file định nghĩa múi giờ muốn chọn
~~~
# Giả sử chọn Asia/Tokyo
> sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
~~~
3/ Kiểm tra múi giờ mặc định đã được thay đổi chưa
~~~
> date
Sun Dec 18 15:49:09 JST 2016
~~~
Kiểm tra phiên bản:
~~~
$ mysql -V
~~~
Đăng nhập vào database server:
~~~
$ mysql -u [username]
# input password
~~~
Tạo database mới:
~~~
mysql> CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
~~~
Tạo user mới:
~~~
mysql> CREATE USER [username] IDENTIFIED BY 'password';
~~~
Xem danh sách user:
~~~
mysql> SELECT Host, User, Password FROM mysql.user;
~~~
Xem danh sách database:
~~~
mysql> show databases;
~~~
Set quyền truy cập database cho user:
~~~
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON `database`.* TO 'user'@'host';
# Xét tất cả quyền truy ở tất cả database cho user
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
~~~
Kiểm tra và bật chức năng log query:
~~~
# Kiểm tra:
mysql> SHOW VARIABLES LIKE 'general_log%';
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | OFF |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
~~~
~~~
# Bật chức năng log
mysql> SET GLOBAL general_log = 'ON';
~~~
Backup tất cả các database
~~~
$ mysqldump -u username -p -x --all-databases > /path/to/dump/file
~~~
Restore database từ dump file
~~~
$ mysql -u username < /path/to/dump/file
~~~