Vị trí ini php của Rocky Linux

Cách chỉ định một php tùy chỉnh. cái này dành cho một Trang web (Apache2 với mod_php)

Trên trang này

Bài viết ngắn này giải thích cách chỉ định một php tùy chỉnh. ini cho trang web chạy trên Apache2 với mod_php. Bằng cách đó, mỗi trang web có thể có php của riêng mình. ini thay vì phải sử dụng cái mặc định của máy chủ.

1 lưu ý sơ bộ

Tôi đang sử dụng trang web www. ví dụ. com tại đây với gốc tài liệu /var/www/web1/web tại đây.

2 Nhận thông tin chi tiết về cài đặt PHP của bạn

Bây giờ chúng ta sẽ tạo một tệp PHP nhỏ ( thông tin. php ) trong thư mục gốc của tài liệu và gọi nó trong trình duyệt. Tệp sẽ hiển thị các chi tiết hữu ích về quá trình cài đặt PHP của chúng ta, chẳng hạn như php đã sử dụng. tệp này.

______0
<?php
phpinfo();
?>

Bây giờ chúng tôi gọi tệp đó trong trình duyệt (e. g. http. //www. ví dụ. com/thông tin. php ).

Vị trí ini php của Rocky Linux

Như bạn thấy, trang web hiện đang sử dụng /etc/php/8. 1/apache2/php. tệp này.

3 php tùy chỉnh. đây là dành cho một trang web

Tôi sẽ sao chép php mặc định. cái này ( /etc/php/8. 1/apache2/php. cái này trên Debian/Ubuntu; . ini /etc/php.ini trên Fedora/CentOS) vào thư mục /etc/php/web1/ và thực hiện www.example.com sử dụng php. ini từ thư mục /etc/php/web1/ .

Debian/Ubuntu

mkdir /etc/php/web1/
cp /etc/php/8.1/apache2/php.ini /etc/php/web1/

Fedora/CentOS

mkdir /etc/php/web1/
cp /etc/php.ini /etc/php/web1/

(Bây giờ bạn có thể sửa đổi /var/www/web1/php. cái này theo ý thích của bạn. )

Sau đó mở cấu hình vhost cho www. ví dụ. com và thêm một dòng PHPINIDir vào đó.

<VirtualHost 1.2.3.4:80>
[...]
PHPINIDir /etc/php/web1
[...] </VirtualHost>

PHPINIDir phải chứa thư mục nơi chứa php. ini tệp cho trang web được đặt.

Khởi động lại Apache sau đó

Debian/Ubuntu

service apache2 restart

Fedora/CentOS

service httpd restart

Bây giờ hãy gọi thông tin. php lại trong trình duyệt ( http. //www. ví dụ. com/thông tin. php ).

Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Danh sách các mô-đun PHP

Các mô-đun được đặt tại thư mục

$ ls
6 và có thể dễ dàng thay đổi thư mục hiện tại của chúng tôi thành /etc/php. d/ bằng cách sử dụng lệnh cd sau

cd /etc/php.d/

Lý do tại sao chúng tôi thay đổi thư mục để loại bỏ các mô-đun là các mô-đun được đặt tên hoàn toàn khác trong thư mục gốc. Bây giờ, liệt kê các mô-đun có sẵn bằng lệnh đã cho

$ ls
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Kiểm tra các mô-đun PHP

Ví dụ: hãy xóa mô-đun curl bằng cách sử dụng lệnh đã cho

<?php
phpinfo();
?>
1

2. Vô hiệu hóa thực thi mã PHP từ xa

Trong hầu hết các trường hợp, các kết nối từ xa không thể tin cậy được. Bằng cách vô hiệu hóa quyền truy cập vào trình bao bọc fopen, họ chỉ có thể truy cập các tệp cục bộ. Để tắt fopen, chúng ta cần mở tệp cấu hình PHP bằng cách sử dụng lệnh đã cho

<?php
phpinfo();
?>
2

Bây giờ, hãy sử dụng

$ ls
7 và nhập
$ ls
8 sẽ đưa chúng tôi đến các dòng cụ thể từ đó chúng tôi sẽ tắt các tùy chọn đó

<?php
phpinfo();
?>
5
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Tắt thực thi mã PHP từ xa

Khi bạn đã hoàn tất các thay đổi, hãy lưu tệp cấu hình trước

$ ls
9 và nhấn Enter

3. Vô hiệu hóa rò rỉ thông tin PHP

Khi không bị tắt, thế giới có thể dễ dàng xác định phiên bản PHP nào hiện đang được máy chủ web của chúng tôi sử dụng. Điều này nghe có vẻ không phải là vấn đề lớn nhưng để kẻ tấn công biết phiên bản chính xác có thể nguy hiểm

<?php
phpinfo();
?>
2

Bây giờ, thay đổi mặc định thành

<?php
phpinfo();
?>
10

<?php
phpinfo();
?>
9
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Tắt rò rỉ thông tin PHP

4. Vô hiệu hóa nhật ký lỗi PHP

Theo mặc định, mọi lỗi từ máy chủ web của chúng tôi đều hiển thị với khách truy cập, bao gồm cả những kẻ tấn công. Để đảm bảo rằng không có lỗi nào hiển thị với bất kỳ ai, chúng tôi phải thực hiện các thay đổi trong tệp cấu hình PHP của mình

<?php
phpinfo();
?>
2

Và thay đổi cài đặt mặc định hiển thị nhật ký lỗi thành

<?php
phpinfo();
?>
10

mkdir /etc/php/web1/
cp /etc/php/8.1/apache2/php.ini /etc/php/web1/
2
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Tắt nhật ký lỗi PHP

Nhưng nếu bạn là nhà phát triển và cần có nhật ký lỗi để khắc phục các sự cố phát triển thì sao?

Chúng tôi chỉ cần kích hoạt log_errors và cung cấp đường dẫn đến error_log nơi các tệp nhật ký của chúng tôi sẽ được lưu trữ

cd /etc/php.d/
0
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Bật nhật ký lỗi trong PHP

5. Kiểm soát tài nguyên PHP

Theo chúng tôi, quản lý tài nguyên là phần quan trọng nhất khi bảo mật PHP. Ở đây, chúng tôi sẽ phân bổ một lượng thời gian thực thi, thời gian đầu vào và giới hạn bộ nhớ cố định, vì vậy nếu bằng cách nào đó, tập lệnh của chúng tôi bị xâm phạm, quá trình thực thi sẽ bị dừng sau một thời gian nhất định

Chúng tôi đã chọn 25 giây cho thời gian thực hiện và đầu vào và 30 MB giới hạn bộ nhớ. Chắc chắn bạn có thể tùy chỉnh nó theo nhu cầu của bạn

cd /etc/php.d/
1
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Kiểm soát tài nguyên PHP

6. Hạn chế quyền truy cập tệp PHP

Để hạn chế quyền truy cập tệp, chúng tôi sẽ bật

<?php
phpinfo();
?>
12 để đảm bảo rằng PHP chỉ có thể bao gồm các tệp từ các thư mục được liệt kê của chúng tôi

Quan trọng. Điều này sẽ chặn danh sách tất cả các thư mục khác và yêu cầu chúng tôi thêm các thư mục quan trọng theo cách thủ công, bao gồm cả việc thêm các tệp tạm thời và thư mục phiên

cd /etc/php.d/
2
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Kiểm soát quyền truy cập tệp PHP

7. Định cấu hình tải lên tệp PHP

Nếu ứng dụng của bạn không yêu cầu tải tệp lên từ phía người dùng, bạn nên tắt tính năng tải tệp lên. Điều này ngăn những kẻ tấn công tải lên các tập lệnh nguy hiểm mà cuối cùng có thể làm hỏng toàn bộ ứng dụng

cd /etc/php.d/
3

Nhưng nếu ứng dụng của bạn được thiết kế để lấy tệp từ phía người dùng thì sao?

cd /etc/php.d/
4
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Kiểm soát tải lên tệp PHP

Trong PHP, theo mặc định, các tệp tạm thời được đặt trong một thư mục mà tất cả người dùng hệ thống có thể ghi vào. Vị trí mặc định phải được chuyển sang một nơi an toàn hơn và đảm bảo rằng nó không nằm trong thư mục gốc của web

Vì chúng tôi đã sử dụng open_basedir, chúng tôi sẽ sử dụng cùng một vị trí như chúng tôi đã đưa vào danh sách trắng

cd /etc/php.d/
5

8. Vô hiệu hóa các chức năng PHP nguy hiểm

PHP có nhiều chức năng khác nhau được bật theo mặc định và có thể hữu ích cho mục đích phát triển. Tuy nhiên, nhiều chức năng có thể bị tin tặc sử dụng để khai thác máy chủ web của bạn và việc vô hiệu hóa chúng sẽ tạo thêm một lớp bảo mật

Chúng tôi có một bộ chức năng bị vô hiệu hóa và đảm bảo kiểm tra chéo chúng trước khi thay đổi tệp cấu hình

cd /etc/php.d/
6
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Tắt các hàm PHP không mong muốn

9. Thay đổi thư mục bộ đệm SOAP

Khi chúng tôi thay đổi phiên và thư mục tạm thời mặc định, điều tương tự cũng áp dụng cho bộ đệm SOAP vì nó không nên được lưu vào thư mục mặc định. Hãy chắc chắn rằng nó được lưu vào một nơi an toàn

cd /etc/php.d/
7
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Thay đổi thư mục bộ đệm SOAP

10. Kiểm soát kích thước POST PHP

Bằng cách kiểm soát kích thước POST, chúng tôi có thể bảo mật máy chủ của mình khỏi tin tặc đang cố gắng làm tắc nghẽn tài nguyên máy chủ bằng cách gửi các tệp lớn. Điều này giúp chúng tôi tránh khỏi sự cố máy chủ không mong muốn và thời gian phản hồi chậm

cd /etc/php.d/
8
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Giới hạn kích thước POST PHP

11. Bảo vệ cấu hình PHP

Trong khi xóa các tệp không cần thiết, chúng tôi thường xóa một số tệp quan trọng hoặc thậm chí cả thư mục. Vì vậy, chúng tôi phải tinh chỉnh cài đặt theo cách mà ngay cả người dùng root cũng không thể xóa chúng. Để tạo tệp và thư mục, chúng tôi sẽ sử dụng chattr với các cờ khác nhau

Khi bạn sử dụng lệnh đã cho, bạn không thể sửa đổi hoặc xóa một tệp cụ thể nữa

cd /etc/php.d/
9

Trong khi cố gắng xóa một tệp bất biến, nó sẽ hiển thị lỗi "Thao tác không được phép"

$ ls
0
Vị trí ini php của Rocky Linux
Vị trí ini php của Rocky Linux
Lỗi Hoạt động không được phép

Nhưng nếu bạn muốn tiếp tục viết các tệp đó trong khi làm cho chúng không thay đổi thì sao?

$ ls
1

Có thể có một số trường hợp bạn không cần tệp cấu hình cũ nữa và trong trường hợp đó, chúng tôi phải hủy đặt thuộc tính

$ ls
2

Tương tự, nếu bạn đã sử dụng thuộc tính

<?php
phpinfo();
?>
13 trong quá trình tạo tệp không thay đổi, bạn có thể đảo ngược nó bằng cách sử dụng lệnh đã cho

$ ls
3

12. Sử dụng chứng chỉ SSL cho HTTPS

Ngày nay, mọi trình duyệt hiện đại như Google Chrome, Firefox, Opera và các trình duyệt khác đều khuyến nghị sử dụng HTTPS cho máy chủ web. Vì HTTPS cung cấp kênh truy cập được mã hóa và bảo mật cho các trang web không đáng tin cậy, chúng tôi có thể cung cấp trải nghiệm đáng tin cậy cho người dùng của mình

Bằng cách thêm HTTPS, chúng tôi có thể được bảo vệ khỏi các cuộc tấn công XSS, bao gồm cả việc ngăn chặn tin tặc đọc dữ liệu được vận chuyển bằng mã

Để kích hoạt HTTPS, chúng tôi sẽ cài đặt và sử dụng Chứng chỉ SSL Let's Encrypt miễn phí trên máy chủ

$ ls
4

13. Cập nhật PHP thường xuyên

Vì nó là một ngôn ngữ mã nguồn mở, nên nó được vá gần như hàng ngày. Nó có vẻ không phải là một bước quan trọng nhưng nó có thể cứu bạn khỏi các lỗ hổng lớn. Vì vậy, hãy đảm bảo luôn cập nhật các gói PHP của bạn, điều này sẽ giúp bạn tránh được nhiều lỗ hổng có thể xảy ra

$ ls
5

Đây là ý kiến ​​của chúng tôi về cách bạn có thể dễ dàng nâng cao tính bảo mật của PHP trong các hệ thống Linux. Trong suốt hướng dẫn này, chúng tôi đã cố gắng làm mọi thứ đơn giản nhất có thể và nếu bạn vẫn còn thắc mắc, vui lòng cho chúng tôi biết trong phần nhận xét

Tệp PHP Linux của tôi ở đâu?

Vị trí mặc định cho php. tập tin này là. Ubuntu 16. 04. /etc/php/7. 0/apache2 . CentOS 7. /etc/php.

Đường dẫn PHP của tôi ở đâu?

ini thường nằm trong /etc/php/8. 1/apache2/php .

Tệp ini PHP trong Terminal ở đâu?

Câu trả lời của bạn .
Bạn có thể nhận được một phpinfo() đầy đủ bằng cách sử dụng. php -i
Và, trong đó, có php. đây là tập tin được sử dụng. $ php -i. grep 'Tệp cấu hình' Tệp cấu hình (php. ini) Đường dẫn => /etc Tệp cấu hình đã tải => /etc/php. cái này
Trên Windows, hãy sử dụng tìm thay thế. php -i. tìm/a"tệp cấu hình" Hy vọng điều này hữu ích

PHP này ở đâu trên php8?

Vị trí php của bạn. ini nằm ở “ /etc/php/8. 0/apache2/php. ini ” và bạn có thể dễ dàng kiểm tra điều này trong phần “Tệp cấu hình đã tải” cũng trong cửa sổ này.