Rumah > Soal Jawab > teks badan
P粉3203612012023-08-28 22:34:33
Komen eksplisit oleh Mike 'Pomax' Kamermans tentang cara ini harus dilakukan. Walau bagaimanapun, dokumentasi manual PHP boleh agak membingungkan.
Dan beberapa penjelasan tentang jawapan lain:
Menggunakan fail penghurai PHP (seperti yang diterangkan dalam Lajos Arpad) menambahkan beberapa risiko keselamatan dan sekumpulan pengekodan, sintaks dan beberapa overhed pemprosesan yang benar-benar tidak perlu.
.htaccess
确实可以为某些 PHP 安装设置自定义 ini 指令,但如果您使用的是“FastCGI”或“CGI”(可能还有 suPHP) ) PHP 安装实际上会导致您的网站崩溃并出现 500 错误,因此请使用本地 .user.ini
fail seperti yang diterangkan di sini. Bagaimana untuk mencari SAPI saya?
Hanya gunakan .htaccess
jika anda menjalankan PHP sebagai modul Apache (cth. mod_php). Bagaimana untuk mencari SAPI saya?
Jadi, bagaimanakah hasrat anda harus dipenuhi?
Baca fail PHP.ini versi PHP semasa.
Pada baris 180 (untuk PHP 8.1), ia sepatutnya kelihatan seperti ini:
Buat nota nilai, Saya syorkan menyesuaikannya (seperti yang ditunjukkan dalam contoh ini). Nilai ini ialah nama fail fail yang akan ditempatkan dalam setiap akaun unik pada pelayan yang memegang tetapan "tempatan" khusus akaun untuk fail PHP.ini global.
Fail biasanya bermula dengan public_html
文件夹中,因此应以 .
supaya ia disembunyikan secara lalai (lebih lanjut mengenai perkara ini kemudian). Jika fail ini tidak wujud, tetapan PHP teras akaun tidak akan diubah.
Jadi anda kini tahu/telah menetapkan nama fail PHP tersuai anda kini menjana fail dalam akaun anda dan kemudian anda boleh menetapkan tetapan PHP.ini yang anda mahu sesuaikan secara individu untuk akaun ini.
Contohnya
akan mengandungi maklumat sampel berikut:
; ; Some optional comment text here for human consumption ; session.cookie_secure=1 session.save_path=/home/sitea.com_account/sessions session.name=session-sitea error_log=/home/sitea.com_account/errors/PHP_errors.log upload_max_filesize=50M
Maklumat ini dihuraikan oleh PHP dan mengatasi sebarang nilai yang sepadan dalam PHP.ini teras, tetapi hanya untuk akaun itu.
Sebagai contoh, untuk fail ini pengguna php siteb.com anda ia akan kelihatan lebih seperti ini:
akan mengandungi maklumat sampel berikut:
; ; Some optional comment text here for human consumption ; session.cookie_secure=1 session.save_path=/home/siteb.com_account/session_b session.name=site-b-UniqueSession error_log=/home/siteb.com_account/errors/PHP_errors.log upload_max_filesize=5M
Anda kemudian boleh menyemak sama ada tetapan akaun ini ditetapkan dengan betul dengan meneroka phpinfo()
pada setiap akaun dan mencatat perbezaan setempat dan teras yang ditunjukkan.
/public_html/
Fail user.ini teras dalam laluan mestilah semua fail yang diperlukan untuk setiap sub-fail/folder pada akaun tersebut untuk diproses (ini kadangkala bergantung pada persediaan pelayan LAMP tepat anda dan pengendali PHP anda).
Seperti yang saya katakan, sebaik sahaja anda menyediakan fail ujian ini, anda harus menjalankan phpinfo()
untuk menyemak sama ada nilainya dilaksanakan.
Jika anda tidak mahu menggunakan phpinfo()
那么您可以轻松使用 [ini_get](https://www.php.net/manual/en/function .ini-get)
maka anda boleh dengan mudah menggunakan [ini_get](https://www.php.net/manual/en/function .ini-get)
untuk membuang data sensitif kepada log ralat dan bukannya penyemak imbas.
<?php error_log("ini data for this account: ".ini_get('upload_max_filesize')); exit;
user.ini biasanya berakhir dengan .
字符开头,以将其隐藏在目录中,但这并不意味着浏览器代理无法访问它,因此最好添加几行添加到您的 .htaccess
untuk menafikan akses kepada fail ini.
<Files .account-php81.ini> Require all denied </Files>
Beberapa pemikiran akhir:
Nilai teras PHP.ini memang berubah dalam versi baharu PHP, jadi amalan terbaik adalah menggunakan fail .ini tempatan yang berbeza untuk versi PHP yang berbeza (.account-php80.ini
, <代码>.account-php81.ini等)。请注意,每个 php.ini
Teras semua perlu memanggil fail user.ini setempat masing-masing secara eksplisit, seperti yang diterangkan dalam langkah 1 di atas
Prinsip di atas digariskan dalam manual PHP dan mesti diperhatikan:
P粉1447050652023-08-28 14:10:59
Anda boleh menetapkan ini dalam .htaccess
文件来设置 PHP 配置值 - 至少对于大多数设置:如果您查看 在配置指令文档中,对于标记为 PHP_INI_PERDIR
或 < code>PHP_INI_ALL 您可以使用 PHP php_value 或 php_flag
命令在 .htaccess
fail setiap tapak (atau malah setiap folder) menggunakan ="https://www.php.net/manual/en/configuration.changes.php" rel="nofollow noreferrer"> "Bagaimana untuk menukar tetapan konfigurasi" Dokumentasi.
Sebagai contoh, untuk menyediakan upload_max_filesize
,请在该网站的文档根目录中创建一个 .htaccess
fail dalam tapak web anda dan meletakkan teks di dalamnya:
php_value upload_max_filesize 24M
Malangnya, menukarnya dalam max_file_uploads
和 upload_tmp_dir
是标记为 PHP_INI_SYSTEM
的设置,您无法在 .htaccess
fail...