Archive for category Все для сайту
eAccelerator для сайту
Posted by Цінитель in Все для сайту on 04.12.2009
Інструмент для кешування php-файлів на сервері для пришвидшення видачі результатів. Файли після компіляції в байт-код зберігаються в оперативній пам’яті сервера, на диск або і там і там.
eAccelerator являє собою звичайний модуль під Апач.
Сайт – http://www.eaccelerator.net/
Скачати скомпільовану бібліотеку для Віндовс можна тут
Етапи встановлення(описано для Windows, під Юнікс-системи все те саме, окрім того, що розширення бібліотеки буде не *.dll, a *.so – її треба буде скомпілювати або десь скачати):
1) скопіювати скачану бібліотеку в папку з розширеннями для РНР (наприклад сюди – usr\local\php5\ext\)
2) відредагувати файл php.ini додавши наступні рядки ПЕРЕД підключенням інших розширень
extension=eaccelerator.dll eaccelerator.shm_size=”16″ ; eaccelerator.cache_dir=/tmp/eaccelerator ;ця папка вже повинна бути створена eaccelerator.enable=”1″ eaccelerator.optimizer=”1″ eaccelerator.check_mtime=”1″ eaccelerator.filter=”" eaccelerator.shm_max=”0″ eaccelerator.shm_ttl=”0″ eaccelerator.shm_prune_period=”0″ eaccelerator.shm_only=”0″ eaccelerator.compress=”1″ eaccelerator.compress_level=”9″ eaccelerator.keys = “shm_only” ;це означає, що буде використовуватись тільки оперативна пам’ять eaccelerator.sessions = “shm_only” eaccelerator.content = “shm_only” eaccelerator.allowed_admin_path = “X:\home\somesite.com\www\eaccelerator\control.php”
Що означає кожен параметр можна почитати наприклад тут.
3) при бажанні можна скопіювати файл control.php, що йде в поставці eAccelerator, кудись собі на сервер, прописати його розміщення в eaccelerator.allowed_admin_path, задати бажані пароль та логін всередині і переглядати статистику використання eAccelerator прямо в браузері.
4) Не забути перезавантажити Апач
Акселератор стоїть, але як подивитись чи дає його використання хоча б щось? Можна використати утиліту, яка йде в поставці Апача – ab(Apache Benchmark)
Приклад використання:
ab -n 1000 -c 10 -q http://test-site.com/test.php
(буде виконано 1000 запитів, по 10 одночасно)
Буде виведена статистика, серед якої варто виділити:
Time per request: xxxx [ms] (mean) – це число показує, скільки в сумі зайняв весь пакет із 10 одночасних запитів
Time per request: xxxx [ms] (mean, across all concurrent requests) це число показує, скільки часу зайняв один запит.
Інколи виграш від використання такої кеш-системи може сягати всього кількох мілісекунд, або його НАВІТЬ МОЖЕ НЕ БУТИ , але вона все-одно МОЖЕ ДОПОМОГТИ у випадку великого зростання користувачів на сайті – тоді виграш в часі буде значно більшим.
Іншими словами, успішність застосування кеш-системи залежить від багатьох факторів, зокрема від особливості структури сайту і кількості відвідувачів на ньому.
Завантаження великих файлів на сервер
Posted by Цінитель in Все для сайту on 22.11.2009
Є принципово два шляхи: використання постійних запитів до серверу і через Флеш(коли рахується відправлена інформація, а не прийнята сервером). В обох випадках цим підходам допомагає JS
1) Перший варіант не надто вдало реалізований на PHP. По суті він став можливий з версії 5.2 та й то з використанням додаткової бібліотеки – APC (бібліотека для опимізації і прискорення роботи скриптів через роботу з кешем). Працює ця бібліотека(точніше її використання для індикації процесу загрузки) глючно, багато скарг. В принципі можна використовувати інші серверні мови – такі як PERL. Скажімо ресурс Rapidshare теж використовує певний cgi сценарій для інформування користувача, скільки байт завантажено.
2) Другий варіант є теж широко вживаним. Найбільш популярні бібліотеки – це swfupload і fancyupload. По своїй суті – це об’єкти флеш в обгортці з JS. fancyupload використовує MooTools а swfupload – щось своє.
Отож, якщо вам не хочеться заморочуватись з Perl, то рекомендується позаморочуватись з Flash…
Географія користувачів по ip-адресі
Posted by Цінитель in Все для сайту on 26.08.2009
Існує кілька способів виявити, з якої країни користувач. Основних два:
1) Щоразу звертатись до онлайн-баз даних, де міститься інфа про географію ір-адрес. НЕДОЛІКИ: можлива певна затримка в часі.
2) Мати на сайті власну БД адрес(в MySQL або в навіть в бінарному форматі). НЕДОЛІКИ: цю базу доведеться періодично оновлювати “в ручну”
Обидва вищенаведених способи мають як платні, так і безкоштовні рішення. Провів невелике дослідження існуючих рішень. Отже:
1)ip-to-country.webhosting.info – онлайн-сервіс, працює не стабільно
2)whois.ripe.net – теж саме
3)PHP-IP2Location-2.20 – треба качати базу ір-адресів собі на сайт, але ця база в них не безкоштовна
4)http://www.maxmind.com/app/php – теж треба качати базу, але вона безкоштовна. До того ж цей сервіс часто рекомендують.
Встановив. Працює. Підключається достатньо просто. Рекомендую :)
До речі цей же maxmind.com пропонує базу і по містам, а не тільки по країнам. Точність обіцяють досить високу.
Проблема з іменами хостів на локальному ПК
Posted by Цінитель in Все для сайту on 09.07.2009
Завдяки широкій популярності таких пакетів як Денвер, WAMP тощо, проблеми налаштування веб-сервера на локальному комп’ютері звелись до мінімуму. І справді, інсталяція займає всього кілька кліків, не потрібно довго шаманити з конфігураційними файлами. Проте нюансів локальної веб-розробки вистачає. Нижче – про один із них.
Часто при створенні локальних сайтів програміста охоплює незрозуміле бажання назвати свій веб-сайт якомога простіше. Як наслідок, з’являються адреси типу http://testsite або http://my_testsite На перший погляд, все нормально, принаймні налаштування того ж Денвера дозволяють працювати з цими хост-адресами. Проблеми починаються згодом, коли чомусь некоректно працює сесія в РНР, не працює авторизація у WP – список можна продовжити. Додаткову неясність вносить різна поведінка цих “несправностей” у різних браузерах. Звичайно, причину кожної з проблем можна пояснити, але значно простіше виконувати одну елементарну рекомендацію: завжди створювати локальні імена сайтів так, як вони виглядали б в інтернеті:http://testsite.net або http://www.testsite.net