Как да го открием?
Файловете с разширение .ini се наричат инициализационни (конфигурационни) файлове. Съдържат данни за конфигурацията (настройките) на някое приложение. Отварят се с текстов редактор.
Файлът php.ini служи за конфигуриране на начина на работа на РНР, т.е. определя начина на работа на РНР интерпретатора.
Ако нямам представа къде е съхранен файлът, ще е необходимо да претърся цялата файлова система. За целта в командния ред въввеждам:
Файлът php.ini служи за конфигуриране на начина на работа на РНР, т.е. определя начина на работа на РНР интерпретатора.
Ако нямам представа къде е съхранен файлът, ще е необходимо да претърся цялата файлова система. За целта в командния ред въввеждам:
sudo find / -name 'php.ini'
Конфигурационните файлове на XAMPP се намират в директорията /opt/lampp/etc/ (https://dreamlandpoly.blogspot.com/p/apache-directories.html).
Конфигурационният файл php.ini на PHP CLI (РНР Command Line Interface – с него могат да са стартират скриптове, които не са качени на сървъра) е разположен в директорията /etc/php5/cli/.
За да отворя файла php.ini, в терминала въвеждам:
Конфигурационният файл php.ini на PHP CLI (РНР Command Line Interface – с него могат да са стартират скриптове, които не са качени на сървъра) е разположен в директорията /etc/php5/cli/.
За да отворя файла php.ini, в терминала въвеждам:
sudo jedit /opt/lampp/etc/php.ini
Параметри, влияещи върху производителността на РНР
Преди да се промени стойността на някой параметър, е необходимо да се проучи каква точно е неговата роля.
В Таблица-1 съм описала параметрите, чиито стойности указват влияние върху производителността на РНР.
Име на параметъра | Местоположение в php.ini | Описание |
---|---|---|
output_buffering | Language Options | Output buffering позволява изходът от РНР да се съхранява в паметта (буфера), вместо незабавно да се предава към браузъра или терминала. Параметърът output_buffering контролира именно този процес. |
implicit_flush | Language Options | Параметърът implicit_flush контролира изпразването на буфера. |
realpath_cache_size | Language Options | Стойността на параметъра realpath_cashe_size определя размера на кеша (realpath cashe), заделен за съхраняване на реалните пътища до файловете, с които работи PHP и значително влияе върху бързодействието на сървъра. |
realpath_cache_ttl | Language Options | Стойността на параметъра realpath_cache_ttl определя продължителността от време (в секунди) за което се кешира информацията за даден файл или директория в realpath cashe. |
max_execution_time | Resource Limits | Стойността на параметъра max_execution_time определя максималното време, необходимо за изпълнение на всеки скрипт. |
max_input_time | Resource Limits | Стойността на параметъра max_input_time определя времето, необходимо за анализ на рекуестите. |
memory_limit | Resource Limits | Стойността на параметъра memory_limit определя максималното количество памет, което може да консумира скрипта. |
post_max_size | Data Handling | Стойността на параметъра post_max_size задава максималния позволен размер на $POST данните. |
file_uploads | File Uploads | Позволява или забранява ъплоуд на файлове. |
upload_tmp_dir | File Uploads | Определя директорията, в която временно се съхраняват файловете преди да се ъплоуднат. |
upload_max_filesize | File Uploads | Задава размера на файловете, които се ъплоудват. |
max_file_uploads | File Uploads | Задава максималния брой файлове, които могат да бъдат ъплоуднати едновременно. |
Интеракция потребител – операционна система
Секция “Resource Limits”.
В тази секция има три параметъра, чиито стойности могат да се променят, за да се подобри производителността на РНР:
- max_execution_time – максималното време за изпълнение на всеки скрипт преди да бъде прекъснат от парсера. Подразбиращата се стойност е 30 секунди. За да се увеличи скоростта, с която ще се обработва РНР скрипта, стойността може да се намали, например max_execution_time = 5.
- max_input_time – времето необходимо за анализ на рекуестите.
- memory_limit – максималното количество памет, което може да консумира скрипта. Това ограничение е необходимо, за да предотврати претоварването на сървъра от лошо написани скриптове. За да се премахне ограничението (не е желателно), стойността на параметъра може да се промени на 1.
Заделената памет, необходима за изпълнение на РНР скриптове и/или РНР приложения може да се промени в зависимост от наличната системна памет, паметта, необходима за други приложения, които работят на сървъра и съответно РНР приложението, което ще се стартира на сървъра.Как да получа стойността на количеството памет, заделено за РНР?
Това може да се направи чрез стартиране на програмата top в терминала или чрез функцията memory_get_peak_usage(), която връща максималното количеството памет (в байтове), заделено за изпълнение на РНР скрипта. Скриптът се стартира няколко пъти (поне 10) и се взема средната стойност на количеството консумирана памет от скрипта.
Секции File Uploads и Data Handling
Ако не се налага ъплоуд на файлове в уеб директорията на сървъра, от съобръжения за сигурност е по-добре ъплоуда да бъде забранен.
- file_uploads= On - разрешен ъплоуд на файлове.
- upload_tmp_dir ="/opt/lampp/temp/". При писане на скрипт за ъплоуд на файлове трябва да се обърне внимание на факта, че РНР трие файла от временната директория в края на рекуеста. Преди да завърши изпълнението на скрипта, файлът трябва да се премести или копира.
- upload_max_filesize = 128M (подразбиращата стойност е 128M). Ако искам да ъплоудвам по-малки по размер файлове, понижавам стойността. В противен случай я увеличавам.
- max_file_uploads
- post_max_size =128M (подразбиращата стойност е 128M). Стойността на този параметър е свързана със стойността на параметъра memory_limit, която трябва да бъде по-голяма от стойността на post_max_size.
Например: Искам да мога да ъплоудна 20 файла, всеки с размер до 10 МВ, настройките, които трябва да направя в php.ini файла са:
upload_max_filesize = 10M
max_file_uploads = 20
post_max_size = 208M
memory_limit = 216M
Буфериране на данните
Изходното буфериране позволява изхода от РНР да се съхрани в паметта, вместо незабавно да се изпрати към браузъра или терминала. По подразбиране буферирането на изхода от РНР е разрешено.
Процесът се контролира в секцията Language Options от параметъра output_buffering на php.ini файла. По подразбиране се буферират 4096 байта преди съдържанието да се предаде към уеб сървъра.
Възможни стойности за output_buffering:
On - разрешено буфериране и размерът на буфера е неограничен. Не е желателно да се ползва тази опция.
Off - буферирането е изключено.
Целочислена стойност - разрешено буфериране, като е поставен максималният му размер в байтове.
output_buffering = 4096
implicit_flush = Off //пълно изпразване на буфера
Включването на implicit_flush е позволено само при дебъгване. Ако се налага да се промени стойността на изходното буфериране, новата стойност трябва да е кратна на 4 (за 32–битови системи) или на 8 (за 64–битови).
Процесът се контролира в секцията Language Options от параметъра output_buffering на php.ini файла. По подразбиране се буферират 4096 байта преди съдържанието да се предаде към уеб сървъра.
Възможни стойности за output_buffering:
On - разрешено буфериране и размерът на буфера е неограничен. Не е желателно да се ползва тази опция.
Off - буферирането е изключено.
Целочислена стойност - разрешено буфериране, като е поставен максималният му размер в байтове.
output_buffering = 4096
implicit_flush = Off //пълно изпразване на буфера
Включването на implicit_flush е позволено само при дебъгване. Ако се налага да се промени стойността на изходното буфериране, новата стойност трябва да е кратна на 4 (за 32–битови системи) или на 8 (за 64–битови).
Няма коментари:
Публикуване на коментар