Php_ini_loaded_file

Phần này chứa các câu hỏi phổ biến về cách cài đặt PHP. PHP có sẵn cho hầu hết mọi hệ điều hành và hầu hết mọi máy chủ web

Để cài đặt PHP, hãy làm theo hướng dẫn trong Cài đặt và Cấu hình

  1. Tại sao tôi không nên sử dụng Apache2 với MPM theo luồng trong môi trường sản xuất?
  2. Unix/Windows. php của tôi nên ở đâu. là tập tin này được định vị?
  3. Unix. Tôi đã cài đặt PHP, nhưng mỗi lần tôi tải tài liệu, tôi nhận được thông báo 'Tài liệu không chứa dữ liệu'. Những gì đang xảy ra ở đây?
  4. Unix. Tôi đã cài đặt PHP bằng RPMS, nhưng Apache không xử lý các trang PHP. Những gì đang xảy ra ở đây?
  5. Unix. Tôi đã vá Apache bằng bản vá tiện ích mở rộng FrontPage và đột nhiên PHP ngừng hoạt động. PHP không tương thích với các phần mở rộng Apache FrontPage?
  6. Unix/Windows. Tôi đã cài đặt PHP, nhưng khi tôi cố gắng truy cập tệp tập lệnh PHP qua trình duyệt của mình, tôi nhận được một màn hình trống
  7. Unix/Windows. Tôi đã cài đặt PHP, nhưng khi cố gắng truy cập tệp tập lệnh PHP qua trình duyệt của tôi, tôi gặp lỗi máy chủ 500
  8. Một số hệ điều hành. Tôi đã cài đặt PHP mà không có lỗi, nhưng khi tôi thử khởi động Apache, tôi gặp lỗi biểu tượng không xác định. [hộp của tôi. người dùng /src/php5] root# apachectl configtest apachectl. /usr/local/Apache/bin/httpd Ký hiệu không xác định. _nén _giải nén
  9. các cửa sổ. Tôi đã cài đặt PHP, nhưng khi tôi cố gắng truy cập tệp tập lệnh PHP qua trình duyệt của mình, tôi gặp lỗi. lỗi cgi. Ứng dụng CGI được chỉ định hoạt động sai do không trả về một bộ tiêu đề HTTP hoàn chỉnh. Các tiêu đề nó đã trở lại là
  10. các cửa sổ. Tôi đã làm theo tất cả các hướng dẫn, nhưng vẫn không thể làm cho PHP và IIS hoạt động cùng nhau
  11. Khi chạy PHP dưới dạng CGI với IIS, PWS, OmniHTTPD hoặc Xitami, tôi gặp lỗi sau. Cảnh báo an ninh. PHP CGI không thể được truy cập trực tiếp
  12. Làm cách nào để biết nếu php của tôi. là điều này được tìm thấy và đọc?
  13. Làm cách nào để thêm thư mục PHP của tôi vào PATH trên Windows?
  14. Làm cách nào để tạo php. ini có sẵn cho PHP trên windows không?
  15. Có thể sử dụng đàm phán nội dung Apache [tùy chọn MultiViews] với PHP không?
  16. PHP có bị giới hạn chỉ xử lý các phương thức yêu cầu GET và POST không?
Tại sao tôi không nên sử dụng Apache2 với MPM theo luồng trong môi trường sản xuất?

PHP là keo. Nó là chất keo được sử dụng để xây dựng các ứng dụng web thú vị bằng cách gắn hàng tá thư viện của bên thứ 3 lại với nhau và làm cho tất cả xuất hiện dưới dạng một thực thể nhất quán thông qua giao diện ngôn ngữ trực quan và dễ học. Tính linh hoạt và sức mạnh của PHP phụ thuộc vào sự ổn định và mạnh mẽ của nền tảng cơ bản. Nó cần một hệ điều hành đang hoạt động, một máy chủ web đang hoạt động và các thư viện của bên thứ 3 đang hoạt động để gắn kết với nhau. Khi bất kỳ lỗi nào trong số này ngừng hoạt động, PHP cần có cách để xác định sự cố và khắc phục chúng nhanh chóng. Khi bạn làm cho khung bên dưới trở nên phức tạp hơn bằng cách không có các luồng thực thi hoàn toàn riêng biệt, các phân đoạn bộ nhớ hoàn toàn riêng biệt và một hộp cát mạnh cho từng yêu cầu thực hiện, các điểm yếu khác sẽ được đưa vào hệ thống của PHP

Nếu bạn muốn sử dụng MPM theo luồng, hãy xem cấu hình FastCGI nơi PHP đang chạy trong không gian bộ nhớ của chính nó

Unix/Windows. php của tôi nên ở đâu. là tập tin này được định vị?

By default on Unix it should be in /usr/local/lib which is /lib. Most people will want to change this at compile-time with the --with-config-file-path flag. You would, for example, set it with something like:

--with-config-file-path=/etc
Và sau đó bạn sẽ sao chép php. ini-Development từ bản phân phối sang /etc/php. ini và chỉnh sửa nó để thực hiện bất kỳ thay đổi cục bộ nào bạn muốn.
--with-config-file-scan-dir=PATH

Trên Windows, đường dẫn mặc định cho php. ini là thư mục Windows. Nếu bạn đang sử dụng máy chủ web Apache, php. ini được tìm kiếm đầu tiên trong thư mục cài đặt Apaches, e. g. c. \tệp chương trình\nhóm apache\apache. Bằng cách này, bạn có thể có các php khác nhau. ini cho các phiên bản Apache khác nhau trên cùng một máy

Xem thêm chương về tập tin cấu hình

Unix. Tôi đã cài đặt PHP, nhưng mỗi lần tôi tải tài liệu, tôi nhận được thông báo 'Tài liệu không chứa dữ liệu'. Những gì đang xảy ra ở đây?

Điều này có thể có nghĩa là PHP đang gặp sự cố nào đó và đang bị phá giá. Hãy xem nhật ký lỗi máy chủ của bạn để xem đây có phải là trường hợp không, sau đó thử tái tạo sự cố bằng một trường hợp thử nghiệm nhỏ. Nếu bạn biết cách sử dụng 'gdb', sẽ rất hữu ích khi bạn có thể cung cấp dấu vết ngược với báo cáo lỗi của mình để giúp các nhà phát triển xác định chính xác vấn đề. Nếu bạn đang sử dụng PHP làm mô-đun Apache, hãy thử một cái gì đó như

  • Dừng quá trình httpd của bạn

  • gdb httpd

  • Dừng quá trình httpd của bạn

  • > chạy -X -f /path/to/httpd. conf

  • Sau đó tìm nạp URL gây ra sự cố với trình duyệt của bạn

  • > chạy -X -f /path/to/httpd. conf

  • Nếu bạn đang bị kết xuất lõi, gdb sẽ thông báo cho bạn về điều này ngay bây giờ

  • loại hình. bt

  • Bạn nên bao gồm backtrace của bạn trong báo cáo lỗi của bạn. Điều này phải được gửi tới » https. //github. com/php/php-src/vấn đề

Nếu tập lệnh của bạn sử dụng các hàm biểu thức chính quy [ preg_match[] và bạn bè], bạn nên đảm bảo rằng mình đã biên dịch PHP và Apache bằng cùng một gói biểu thức chính quy. Điều này sẽ tự động xảy ra với PHP và Apache 1. 3. x

Unix. Tôi đã cài đặt PHP bằng RPMS, nhưng Apache không xử lý các trang PHP. Những gì đang xảy ra ở đây?

Giả sử bạn đã cài đặt cả Apache và PHP từ các gói RPM, bạn cần bỏ ghi chú hoặc thêm một số hoặc tất cả các dòng sau vào tệp httpd của mình. tập tin conf

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
Và thêm.
AddType application/x-httpd-php .php
. đến các thuộc tính toàn cầu hoặc các thuộc tính của VirtualDomain mà bạn muốn thêm hỗ trợ PHP vào. Unix. Tôi đã vá Apache bằng bản vá tiện ích mở rộng FrontPage và đột nhiên PHP ngừng hoạt động. PHP không tương thích với các phần mở rộng Apache FrontPage?

Không, PHP hoạt động tốt với các tiện ích mở rộng FrontPage. Vấn đề là bản vá FrontPage sửa đổi một số cấu trúc Apache, mà PHP phụ thuộc vào. Biên dịch lại PHP [sử dụng 'make clean ; make'] sau khi áp dụng bản vá FP sẽ giải quyết được sự cố

Unix/Windows. Tôi đã cài đặt PHP, nhưng khi tôi cố gắng truy cập tệp tập lệnh PHP qua trình duyệt của mình, tôi nhận được một màn hình trống

Thực hiện 'xem nguồn' trong trình duyệt web và bạn có thể thấy rằng bạn có thể xem mã nguồn của tập lệnh PHP của mình. Điều này có nghĩa là máy chủ web đã không gửi tập lệnh tới PHP để giải thích. Đã xảy ra lỗi với cấu hình máy chủ - kiểm tra kỹ cấu hình máy chủ theo hướng dẫn cài đặt PHP

Unix/Windows. Tôi đã cài đặt PHP, nhưng khi cố gắng truy cập tệp tập lệnh PHP qua trình duyệt của tôi, tôi gặp lỗi máy chủ 500

Đã xảy ra lỗi khi máy chủ cố chạy PHP. Để xem thông báo lỗi hợp lý, từ dòng lệnh, hãy thay đổi thư mục chứa tệp thực thi PHP [php. exe trên Windows] và chạy php -i. Nếu PHP có bất kỳ sự cố nào khi chạy, thì một thông báo lỗi phù hợp sẽ được hiển thị, thông báo này sẽ cung cấp cho bạn manh mối về những gì cần thực hiện tiếp theo. Nếu bạn nhận được toàn màn hình mã HTML [đầu ra của hàm phpinfo[] ] thì PHP đang hoạt động và vấn đề của bạn có thể liên quan đến cấu hình máy chủ mà bạn nên kiểm tra lại.

Một số hệ điều hành. Tôi đã cài đặt PHP mà không có lỗi, nhưng khi tôi thử khởi động Apache, tôi gặp lỗi biểu tượng không xác định.
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Điều này thực sự không liên quan gì đến PHP, nhưng với các thư viện máy khách MySQL. Một số cần --with-zlib, số khác thì không. Điều này cũng được đề cập trong Câu hỏi thường gặp về MySQL

các cửa sổ. Tôi đã cài đặt PHP, nhưng khi tôi cố gắng truy cập tệp tập lệnh PHP qua trình duyệt của mình, tôi gặp lỗi.
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Thông báo lỗi này có nghĩa là PHP không xuất được gì cả. Để xem thông báo lỗi hợp lý, từ dòng lệnh, hãy thay đổi thư mục chứa tệp thực thi PHP [php. exe trên Windows] và chạy php -i. Nếu PHP có bất kỳ sự cố nào khi chạy, thì một thông báo lỗi phù hợp sẽ được hiển thị, thông báo này sẽ cung cấp cho bạn manh mối về những gì cần thực hiện tiếp theo. Nếu bạn nhận được toàn màn hình mã HTML [đầu ra của hàm phpinfo[] ] thì PHP đang hoạt động.

Khi PHP đang hoạt động ở dòng lệnh, hãy thử truy cập lại tập lệnh qua trình duyệt. Nếu nó vẫn không thành công thì nó có thể là một trong những điều sau đây

  • Quyền truy cập tệp trên tập lệnh PHP, php của bạn. exe, php5ts. dll, php. ini hoặc bất kỳ tiện ích mở rộng PHP nào mà bạn đang cố tải khiến người dùng internet ẩn danh
    --with-config-file-scan-dir=PATH
    3 không thể truy cập chúng
  • Tệp tập lệnh không tồn tại [hoặc có thể không phải là nơi bạn nghĩ nó có liên quan đến thư mục gốc web của bạn]. Lưu ý rằng đối với IIS, bạn có thể khắc phục lỗi này bằng cách đánh dấu vào ô 'tệp kiểm tra tồn tại' khi thiết lập ánh xạ tập lệnh trong Trình quản lý dịch vụ Internet. Nếu tệp tập lệnh không tồn tại thì thay vào đó, máy chủ sẽ trả về lỗi 404. Ngoài ra còn có lợi ích bổ sung là IIS sẽ thực hiện bất kỳ xác thực nào cần thiết cho bạn dựa trên quyền NTLanMan trên tệp tập lệnh của bạn
các cửa sổ. Tôi đã làm theo tất cả các hướng dẫn, nhưng vẫn không thể làm cho PHP và IIS hoạt động cùng nhau

Đảm bảo rằng bất kỳ người dùng nào cần chạy tập lệnh PHP đều có quyền chạy php. người cũ. IIS sử dụng người dùng ẩn danh được thêm vào thời điểm IIS được cài đặt. Người dùng này cần có quyền đối với php. người cũ. Ngoài ra, bất kỳ người dùng được xác thực nào cũng sẽ cần có quyền để thực thi php. người cũ. Và đối với IIS4, bạn cần nói với nó rằng PHP là một công cụ tập lệnh. Ngoài ra, bạn sẽ muốn đọc faq này

Khi chạy PHP dưới dạng CGI với IIS, PWS, OmniHTTPD hoặc Xitami, tôi gặp lỗi sau.
--with-config-file-scan-dir=PATH
4

Bạn phải đặt cgi. buộc chuyển hướng chỉ thị tới ________ 10. Nó mặc định là

--with-config-file-scan-dir=PATH
1, vì vậy hãy chắc chắn rằng lệnh không được chú thích [với một
--with-config-file-scan-dir=PATH
2]. Giống như tất cả các lệnh, lệnh này được đặt trong php. đây

Bởi vì mặc định là

--with-config-file-scan-dir=PATH
1, điều quan trọng là bạn phải chắc chắn 100% rằng php chính xác. tập tin ini đang được đọc. Đọc faq này để biết chi tiết

Làm cách nào để biết nếu php của tôi. là điều này được tìm thấy và đọc?

Để đảm bảo php của bạn. ini đang được PHP đọc, hãy gọi tới phpinfo[] . Gần trên cùng, sẽ có một danh sách có tên là

--with-config-file-scan-dir=PATH
4. Điều này sẽ cho bạn biết nơi PHP đang tìm kiếm php. ini và nó có được đọc hay không. Nếu chỉ tồn tại một thư mục PATH, thì nó sẽ không được đọc và bạn nên đặt tệp php của mình. ini trong thư mục đó. Nếu php. ini được bao gồm trong PATH, nó đang được đọc.

Nếu php. ini đang được đọc và bạn đang chạy PHP dưới dạng một mô-đun, thì hãy đảm bảo khởi động lại máy chủ web của bạn sau khi thực hiện các thay đổi đối với php. đây

Xem thêm php_ini_loaded_file[] .

Làm cách nào để thêm thư mục PHP của tôi vào PATH trên Windows?

Trên Windows

  • Chuyển đến Bảng điều khiển và mở biểu tượng Hệ thống [Bắt đầu → Bảng điều khiển]

  • Chuyển đến tab Nâng cao

  • Nhấp vào nút 'Biến môi trường'

  • Nhìn vào ngăn 'Biến hệ thống'

  • Tìm mục Đường dẫn [bạn có thể cần phải cuộn để tìm thấy nó]

  • Nhấp đúp chuột vào mục Đường dẫn

  • Nhập thư mục PHP của bạn ở cuối, bao gồm ';' . g.

    --with-config-file-scan-dir=PATH
    5]

  • nhấn OK

Ghi chú. Hãy chắc chắn khởi động lại sau khi làm theo các bước trên để đảm bảo rằng các thay đổi PATH được áp dụng.

Làm cách nào để tạo php. ini có sẵn cho PHP trên windows không?

Có một số cách để làm điều này. Nếu bạn đang sử dụng Apache, hãy tham khảo tài liệu của Apache, nếu không, bạn phải đặt biến môi trường PHPRC

Có thể sử dụng đàm phán nội dung Apache [tùy chọn MultiViews] với PHP không?

Nếu các liên kết đến tệp PHP bao gồm các phần mở rộng, mọi thứ sẽ hoạt động hoàn hảo. Câu hỏi thường gặp này chỉ dành cho trường hợp khi liên kết đến tệp PHP không bao gồm phần mở rộng và bạn muốn sử dụng thương lượng nội dung để chọn tệp PHP từ URL không có phần mở rộng. Trong trường hợp này, hãy thay thế dòng

--with-config-file-scan-dir=PATH
6 bằng

Chủ Đề