Archive for the ‘Apache’ Category

5 công nghệ được sử dụng bởi các website lớn

Chúng ta đều biết những gì đang xảy ra trên đầu trang của các trang web lớn, một phần là đươc hiển thị ra bên ngoài. Đó là tất cả nội dung tương tác với người dùng. Nhưng bạn có bao giờ tự hỏi những gì xảy ra bên dưới các trang đó? Các công cụ và công nghệ hỗ trợ các trang web lớn và làm cho sự kỳ diệu đến với nhau là gì?

Trong bài viết này, tôi sẽ giới thiệu bạn 5 công nghệ có ảnh hưởng nhất được sử dụng ở các trang web . Tôi phải thừa nhận trước rằng danh sách này sẽ khác nhau, tùy thuộc vào loại trang web bạn nhìn vào. Đối với danh sách của tôi, tôi cố tình bỏ qua một số công cụ và công nghệ rõ ràng và khá nổi tiếng, bao gồm cả WordPress, Disqus, hoặc một số ngôn ngữ mã hóa (HTML, PHP, CSS). Những gì còn sót lại, là những thứ được gọi là “ma thuật”, tức là loại công cụ mà ít người trong chúng ta nghĩ tới nó. Read the rest of this entry »

Using Name-based Virtual Hosts

Doc sau giúp:

- ĐN name-based.

- Virtual host

- Default Virtual host -> tạo Dummy host Read the rest of this entry »

Upgrade PHP 1.6 lên PHP 5.2 và APC

Upgrade PHP 1.6 lên PHP 5.2 thì APC sẽ không chạy :(

Fix

1. Upgrade PHP 1.6 lên PHP 5.2: http://wiki.centos.org/HowTos/PHP_5.1_To_5.2

2. Uninstall và cài lại APC

# pecl uninstall apc
# mv /etc/php.d/apc.ini /tmp/apc.ini
# yum update php
# pecl -d memory_limit=16M install apc
# mv /tmp/apc.ini /etc/php.d/apc.ini

3. Restart httpd

Header .rar as text/plain – how to fix

Mặc định của Apache: DefaultType text/plain
Do đó, nếu file k dc quy định trong /etc/mime.types thì sẽ bị server apache header về

Content-Type: text/plain;

Thì trình duyệt sẽ mở và đọc nó -> Không mong muốn

Cách fix:

Thêm dòng

application/x-rar-compressed    rar

Vào /etc/mime.types

Cách 2 cho cpanel:

Vào Cpanel -> Mime type -> Gõ vào Mime và ext mong muốn (VD: application/x-rar-compressedrar)

(REF: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/conf/mime.types?view=annotate)

Phân biệt MIME type và Handler:

MIME type: Quyết định hành vi của browse

Handler: Quyết định hành vi của Sevrer

—————

Áp dụng cho thuvienvatly.com và www.quanaosi.com thành công

414 Request-URI Too Large

http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestline

Description: Limit the size of the HTTP request line that will be accepted from the client
Syntax: LimitRequestLine bytes
Default: LimitRequestLine 8190
Context: server config, virtual host
Status: Core
Module: core

This directive sets the number of bytes that will be allowed on the HTTP request-line.

The LimitRequestLine directive allows the server administrator to set the limit on the allowed size of a client’s HTTP request-line. Since the request-line consists of the HTTP method, URI, and protocol version, the LimitRequestLine directive places a restriction on the length of a request-URI allowed for a request on the server. A server needs this value to be large enough to hold any of its resource names, including any information that might be passed in the query part of a GET request.

This directive gives the server administrator greater control over abnormal client request behavior, which may be useful for avoiding some forms of denial-of-service attacks.

For example:

LimitRequestLine 4094

Under normal conditions, the value should not be changed from the default. Also, you can’t set this higher than 8190 without modifying the source and rebuilding.

Warning

When name-based virtual hosting is used, the value for this directive is taken from the default (first-listed) virtual host for the NameVirtualHost the connection was mapped to.

CPU usage và open_basedir

Trong cấu hình PHP,

open_basedir=”/var/www/html/” làm CPU usage tăng vọt rất bất thường,

open_basedir=”" đưa về mặc định, CPU usage giảm ngay lập tức

Có thể dễ dàng quan sát thấy trong đồ thị trên, khoảng 10h trưa CN, CPU usage giảm xuống.

Bật lại open_basedir=”/var/www/html/” CPU usage lại tăng lên!

Chưa hiểu lý do!

- Liệu liên quan tới Safe_mode off/on ư? Hay là do APC?…

——————–
open_basedir
——————–

http://www.php.net/manual/en/ini.core.php

Limit the files that can be opened by PHP to the specified directory-tree, including the file itself. This directive is NOT affected by whether Safe Mode is turned On or Off.

When a script tries to open a file with, for example, fopen() or gzopen(), the location of the file is checked. When the file is outside the specified directory-tree, PHP will refuse to open it. All symbolic links are resolved, so it’s not possible to avoid this restriction with a symlink. If the file doesn’t exist then the symlink couldn’t be resolved and the filename is compared to (a resolved) open_basedir .

The special value . indicates that the working directory of the script will be used as the base-directory. This is, however, a little dangerous as the working directory of the script can easily be changed with chdir().

In httpd.conf, open_basedir can be turned off (e.g. for some virtual hosts) the same way as any other configuration directive with “php_admin_value open_basedir none“.

Under Windows, separate the directories with a semicolon. On all other systems, separate the directories with a colon. As an Apache module, open_basedir paths from parent directories are now automatically inherited.

The restriction specified with open_basedir is a directory name since PHP 5.2.16 and 5.3.4. Previous versions used it as a prefix. This means that “open_basedir = /dir/incl” also allowed access to “/dir/include” and “/dir/incls” if they exist. When you want to restrict access to only the specified directory, end with a slash. For example: open_basedir = /dir/incl/

The default is to allow all files to be opened.

——————-

Tăng kích thước upload file trong PHP apache,nginx (front end)

NGINX

Chú ý các cấu hình quan trọng sau trong thẻ http { }

client_max_body_size 25M;   #tăng tham số này lên
client_body_buffer_size 128k;

Restart nginx

PHP/APACHE

php.ini

Tăng post_max_sizeupload_max_filesize

httpd.conf

Tăng LimitRequestBody

#This directive specifies the number of bytes from 0 (meaning unlimited) to 2147483647 (2GB) that are allowed in a request body.

Giải pháp cho server

Nginx + Apache + MysqlServer+Caching!

Chạy khá ổn định