Ето няколко лични задължителни неща, които винаги настройвам в моите LAMP приложения.
-
Инсталирайте mod_deflate за apache и не използвайте gzip handlers на PHP.mod_deflate ще ви позволи да компресирате статично съдържание, като javascript/css/static html, както и обичайния динамичен PHP изход, и това е нещо по-малко, за което трябва да се притеснявате във вашия код.
-
Бъдете внимателни с .htaccess файлове! Разрешаването на .htaccess файлове за директории във вашето приложение означава, че Apache трябва постоянно да сканира файловата система, търсейки .htaccessdirectives. Далеч по-добре е да поставите директиви в основната конфигурация или конфигурация vhost, където те се зареждат веднъж. Всеки път, когато можете да се отървете от файла за достъп на ниво директория, като го преместите в основен конфигурационен файл, спестявате време за достъп до диска.
-
Подгответе слоя на базата данни на вашето приложение, за да използвате някакъв вид мениджър на връзки (аз използвам най-много приложения на Singleton). Не е много трудно да се направи, а намаляването на броя на връзките към базата данни, които приложението ви отваря, спестява ресурси.
-
Ако смятате, че приложението ви ще види значително натоварване, memcached може да направи чудеса. Имайте това предвид, докато пишете кода си... може би един ден вместо да създавате обекти в движение, ще ги получите от memcached. Малко предвидливост ще направи изпълнението безболезнено.
-
След като приложението ви стартира и работи, задайте бавното време на заявка на MySQL на малък брой и наблюдавайте усърдно логическия запис на бавната заявка. Това ще ви покаже откъде идват вашите проблемни заявки и ще ви позволи да оптимизирате своите заявки и индекси, преди те да се превърнат в проблем.
-
За сериозни настройки на производителността, вие ще искате да компилирате PHP от източник. Инсталирането от пакет инсталира много библиотеки, които може никога да не използвате. Тъй като PHP среди се зареждат във всеки екземпляр на нишка на Apache, дори 5MB памет от допълнителни библиотеки бързо се превръща в 250MB загубена памет, когато няма 50 Apache нишки. Поддържам списък на моя стандартен ред ./configure, който използвам при изграждането на PHP тук , и намирам, че отговаря на повечето от моите приложения. Недостатъкът е, че ако в крайна сметка имате нужда от библиотека, трябва да прекомпилирате PHP, за да я получите. Анализирайте кода си и го тествайте в среда за разработка, за да сте сигурни, че имате всичко, от което се нуждаете.
-
Минимизирайте своя Javascript.
-
Бъдете готови да преместите статично съдържание, като изображения и видео, на нединамичен уеб сървър. Напишете своя код, така че всички URL адреси за изображения и видео лесно да се конфигурират да сочат към друг сървър в бъдеще. Уеб сървърът, оптимизиран за статично съдържание, може лесно да обслужва десетки или дори стотици пъти по-бързо от сървъра за динамично съдържание.
Това е, което мога да измисля от главата си. Търсенето в Google за най-добрите практики за PHP ще намерите много съвети как да пишете по-бърз/по-добър код (като:echo
е по-бърз от print
).