PHP – Cấu hình File php.ini

Tệp cấu hình PHP – php.ini – là cách cuối cùng. Và ngay lập tức ảnh hưởng đến chức năng của PHP. Tệp php.ini được đọc mỗi khi khởi tạo PHP. Nói cách khác, httpd được khởi động lại cho phiên bản mô-đun hoặc với mỗi lần thực thi tập lệnh cho phiên bản CGI. Nếu thay đổi của bạn không hiển thị, hãy nhớ dừng và khởi động lại httpd. Nếu nó vẫn không hiển thị, hãy sử dụng phpinfo() để kiểm tra đường dẫn đến php.ini.

Các tập tin cấu hình php.ini được xem xét tốt và kỹ lưỡng. Các khóa có phân biệt chữ hoa chữ thường, các giá trị từ khóa thì không. Khoảng trắng và các dòng bắt đầu bằng dấu chấm phẩy bị bỏ qua. Boolean có thể được biểu thị bằng 1/0, Yes/No, On/Off hoặc True/False. Các giá trị mặc định trong php.ini-dist sẽ dẫn đến cài đặt PHP hợp lý có thể được tinh chỉnh sau này.

Ở đây, tôi đang giải thích các cài đặt quan trọng trong cấu hình php.ini mà bạn có thể cần cho PHP Parser của mình.

Các cài đặt trong cấu hình php.ini

short_open_tag = Off

Các thẻ mở ngắn trông như thế này: <? ?>. Tùy chọn này phải được đặt thành Off nếu bạn muốn sử dụng các hàm XML.

safe_mode = Off

Nếu điều này được đặt thành ON, có thể bạn đã biên dịch PHP với –enable-safe-mode flag. Chế độ an toàn phù hợp nhất với việc sử dụng CGI. Xem giải thích trong phần “CGI compile-time options” được đưa ra trước đó trong seri bài viết này.

safe_mode_exec_dir = [DIR]

Tùy chọn này chỉ phù hợp nếu chế độ an toàn đang ON; nó cũng có thể được đặt bằng –with-execute-dir flag trong quá trình xây dựng Unix. PHP ở chế độ an toàn chỉ thực thi các tệp nhị phân bên ngoài ngoài thư mục này. Mặc định là /usr/local/bin. Điều này không liên quan gì đến việc cung cấp một trang Web PHP / HTML bình thường.

safe_mode_allowed_env_vars = [PHP_]

Tùy chọn này đặt các biến môi trường mà người dùng có thể thay đổi trong chế độ an toàn. Mặc định chỉ là những biến được thêm trước bằng “PHP_”. Nếu chỉ thị này trống, hầu hết các biến đều có thể thay đổi được.

safe_mode_protected_env_vars = [LD_LIBRARY_PATH]

Tùy chọn này đặt biến môi trường nào mà người dùng không thể thay đổi trong chế độ an toàn. Ngay cả khi safe_mode_allowed_env_vars được đặt cho phép.

disable_functions = [function1, function2…]

Một bổ sung đáng hoan nghênh cho cấu hình PHP4 và một bổ sung tồn tại trong PHP5 là khả năng vô hiệu hóa các chức năng đã chọn vì lý do bảo mật. Trước đây, điều này đòi hỏi phải chỉnh sửa thủ công mã C mà từ đó PHP được tạo ra. Hệ thống tệp, hệ thống và các chức năng mạng có lẽ nên được thực hiện đầu tiên vì cho phép khả năng ghi tệp và thay đổi hệ thống qua HTTP không bao giờ là một ý tưởng an toàn như vậy.

max_execution_time = 30

Hàm set_time_limit () sẽ không hoạt động ở chế độ an toàn. Do đó, đây là cách chính để đặt kịch bản hết thời gian chờ ở chế độ an toàn. Trong Windows, bạn phải hủy bỏ dựa trên bộ nhớ tối đa được tiêu thụ hơn là thời gian. Bạn cũng có thể sử dụng cài đặt thời gian chờ của Apache để hết thời gian nhưng điều đó cũng sẽ áp dụng cho các tệp không phải PHP trên trang web.

error_reporting = E_ALL & ~E_NOTICE

Giá trị mặc định là E_ALL & ~ E_NOTICE, tất cả các lỗi ngoại trừ thông báo. Máy chủ phát triển nên được đặt ít nhất là mặc định; chỉ các máy chủ sản xuất mới nên xem xét một giá trị thấp hơn.

error_prepend_string = [“”]

Với bookend – error_append_string – cài đặt này cho phép bạn tạo thông báo lỗi có màu khác với văn bản khác.

warn_plus_overloading = Off

Cài đặt này đưa ra cảnh báo nếu toán tử + được sử dụng với các chuỗi, như trong một giá trị biểu mẫu.

variables_order = EGPCS

Cài đặt cấu hình này thay thế gpc_order. Cả hai hiện không được dùng nữa cùng với register_globals. Nó thiết lập thứ tự của các biến khác nhau: Môi trường, GET, POST, COOKIE và SERVER (hay còn gọi là Tích hợp sẵn). Bạn có thể thay đổi thứ tự này xung quanh. Các biến sẽ được ghi đè liên tiếp theo thứ tự từ trái sang phải, lần nào biến ở ngoài cùng bên phải sẽ thắng. Điều này có nghĩa là, nếu bạn rời cài đặt mặc định và tình cờ sử dụng cùng một tên cho một biến môi trường, một biến POST và một biến COOKIE, thì biến COOKIE sẽ sở hữu tên đó ở cuối quá trình. Trong thực tế, điều này không xảy ra nhiều.

register_globals = Off

Cài đặt này cho phép bạn quyết định xem bạn có muốn đăng ký các biến EGPCS dưới dạng toàn cục hay không. Tính năng này hiện không được dùng nữa và kể từ PHP4.2, theo mặc định, flag này được đặt thành OFF. Thay vào đó, hãy sử dụng các mảng superglobal. Tất cả các danh sách mã chính trong cuốn sách này đều sử dụng mảng superglobal .

gpc_order = GPC

Cài đặt này đã không được chấp nhận.

magic_quotes_gpc = On

Cài đặt này thoát khỏi các dấu ngoặc kép trong dữ liệu GET/POST/COOKIE đến. Nếu bạn sử dụng nhiều biểu mẫu có thể gửi cho chính chúng hoặc các biểu mẫu khác và hiển thị giá trị biểu mẫu, bạn có thể cần đặt chỉ thị này thành ON hoặc chuẩn bị sử dụng addlash() trên dữ liệu kiểu chuỗi.

magic_quotes_runtime = Off

Cài đặt này thoát khỏi dấu ngoặc kép trong cơ sở dữ liệu đến và chuỗi văn bản. Hãy nhớ rằng SQL thêm dấu gạch chéo vào dấu ngoặc kép và dấu nháy đơn khi lưu trữ chuỗi và không loại bỏ chúng khi trả lại. Nếu cài đặt này bị Tắt, bạn sẽ cần sử dụng dấu gạch ngang () khi xuất bất kỳ loại dữ liệu chuỗi nào từ cơ sở dữ liệu SQL. Nếu magic_quotes_sybase được đặt thành ON, điều này phải được OFF.

magic_quotes_sybase = Off

Cài đặt này thoát khỏi các dấu nháy đơn trong cơ sở dữ liệu đến và chuỗi văn bản với dấu nháy đơn kiểu Sybase thay vì dấu gạch chéo ngược. Nếu magic_quotes_runtime được đặt thành ON, điều này phải được OFF.

auto-prepend-file = [path/to/file]

Nếu một đường dẫn được chỉ định ở đây, PHP phải tự động bao gồm () nó ở đầu mỗi tệp PHP. Bao gồm các giới hạn đường dẫn được áp dụng.

auto-append-file = [path/to/file]

Nếu một đường dẫn được chỉ định ở đây, PHP phải tự động bao gồm () ở cuối mỗi tệp PHP, trừ khi bạn thoát bằng cách sử dụng hàm exit (). Bao gồm các giới hạn đường dẫn được áp dụng.

include_path = [DIR]

Nếu bạn đặt giá trị này, bạn sẽ chỉ được phép bao gồm hoặc yêu cầu các tệp từ các thư mục này. Thư mục bao gồm thường nằm dưới gốc tài liệu của bạn. Điều này là bắt buộc nếu bạn đang chạy ở chế độ an toàn. Đặt giá trị này thành .in, để bao gồm các tệp từ cùng thư mục mà tập lệnh của bạn đang ở. Nhiều thư mục được phân tách bằng dấu hai chấm:.: /Usr/local/apache/htdocs:/usr/local lib.

doc_root = [DIR]

Nếu bạn đang sử dụng Apache, bạn đã đặt gốc tài liệu cho máy chủ này hoặc máy chủ ảo trong httpd.conf. Đặt giá trị này ở đây nếu bạn đang sử dụng chế độ an toàn hoặc nếu bạn chỉ muốn bật PHP trên một phần trang web của mình (ví dụ: chỉ trong một thư mục con của gốc Web của bạn).

file_uploads = [on/off]

Bật flag này nếu bạn tải tệp lên bằng tập lệnh PHP.

upload_tmp_dir = [DIR]

Đừng bỏ ghi chú dòng này trừ khi bạn hiểu ý nghĩa của tải lên HTTP!

session.save-handler = files

Trừ những trường hợp hiếm hoi, bạn sẽ không muốn thay đổi cài đặt này. Vì vậy, không chạm vào nó.

ignore_user_abort = [On/Off]

Cài đặt này kiểm soát những gì sẽ xảy ra nếu khách truy cập trang web nhấp vào nút STOP của trình duyệt. Mặc định là ON, có nghĩa là tập lệnh tiếp tục chạy cho đến khi hoàn thành hoặc hết thời gian. Nếu cài đặt được thay đổi thành OFF, tập lệnh sẽ hủy bỏ. Cài đặt này chỉ hoạt động ở chế độ mô-đun, không phải CGI.

mysql.default_host = hostname

Máy chủ lưu trữ mặc định để sử dụng khi kết nối với máy chủ cơ sở dữ liệu nếu không có máy chủ lưu trữ nào khác được chỉ định.

mysql.default_user = username

Tên người dùng mặc định để sử dụng khi kết nối với máy chủ cơ sở dữ liệu nếu không có tên nào khác được chỉ định.

mysql.default_password = password

Mật khẩu mặc định để sử dụng khi kết nối với máy chủ cơ sở dữ liệu nếu không có mật khẩu nào khác được chỉ định.

Qua bài này, bạn đã cơ bản biết được cấu hình php.ini như thế nào cho đúng.