Archive for category Все для сайту

eAccelerator для сайту

eacceleratorІнструмент для кешування 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) це число показує, скільки часу зайняв один запит.

Інколи виграш від використання такої кеш-системи може сягати всього кількох мілісекунд, або його НАВІТЬ МОЖЕ НЕ БУТИ , але вона все-одно МОЖЕ ДОПОМОГТИ у випадку великого зростання користувачів на сайті – тоді виграш в часі буде значно більшим.
Іншими словами, успішність застосування кеш-системи залежить від багатьох факторів, зокрема від особливості структури сайту і кількості відвідувачів на ньому.

Коментарів немає

Завантаження великих файлів на сервер

Є принципово два шляхи: використання постійних запитів до серверу і через Флеш(коли рахується відправлена інформація, а не прийнята сервером). В обох випадках цим підходам допомагає JS

1) Перший варіант не надто вдало реалізований на PHP. По суті він став можливий з версії 5.2 та й то з використанням додаткової бібліотеки – APC (бібліотека для опимізації і прискорення роботи скриптів через роботу з кешем). Працює ця бібліотека(точніше її використання для індикації процесу загрузки) глючно, багато скарг. В принципі можна використовувати інші серверні мови – такі як PERL. Скажімо ресурс Rapidshare теж використовує певний cgi сценарій для інформування користувача, скільки байт завантажено.

2) Другий варіант є теж широко вживаним. Найбільш популярні бібліотеки – це swfupload і fancyupload. По своїй суті – це об’єкти флеш в обгортці з JS. fancyupload використовує MooTools а swfupload – щось своє.

Отож, якщо вам не хочеться заморочуватись з Perl, то рекомендується позаморочуватись з Flash…

Коментарів немає

Географія користувачів по ip-адресі

Існує кілька способів виявити, з якої країни користувач. Основних два:

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 пропонує базу і по містам, а не тільки по країнам. Точність обіцяють досить високу.

Коментарів немає

Проблема з іменами хостів на локальному ПК

iЗавдяки широкій популярності таких пакетів як Денвер, WAMP тощо, проблеми налаштування веб-сервера на локальному комп’ютері звелись до мінімуму. І справді, інсталяція займає всього кілька кліків, не потрібно довго шаманити з конфігураційними файлами. Проте нюансів локальної веб-розробки вистачає. Нижче – про один із них.

Часто при створенні локальних сайтів програміста охоплює незрозуміле бажання назвати свій веб-сайт якомога простіше. Як наслідок, з’являються адреси типу http://testsite або http://my_testsite На перший погляд, все нормально, принаймні налаштування того ж Денвера дозволяють працювати з цими хост-адресами. Проблеми починаються згодом, коли чомусь некоректно працює сесія в РНР, не працює авторизація у WP – список можна продовжити. Додаткову неясність вносить різна поведінка цих “несправностей” у різних браузерах. Звичайно, причину кожної з проблем можна пояснити, але значно простіше виконувати одну елементарну рекомендацію: завжди створювати локальні імена сайтів так, як вони виглядали б в інтернеті:http://testsite.net або http://www.testsite.net

Коментарів немає