Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP скриптът за всеки потребител изглежда кара apache да виси

Това поведение звучи като заключване на сесия. Начинът, по който PHP сесиите работят по подразбиране, е да се заключи сесията (за да се предотврати запис на два процеса в обекта на сесията). Това обикновено е добре за типичните краткотрайни PHP скриптове, но може да ви ухапе, когато имате нещо, което работи дълго време.

Ако вашето приложение изобщо не използва сесии, тогава трябва да изключите session.auto_start в php.ini или .htaccess:http ://www.php.net/manual/en/session.configuration.php#ini.session.auto-start (Ако не го виждате там или вече е изключено, но използвате някакъв вид рамка, рамката може да стартира сесията вместо вас; ако е така, по-лесно е да преминете към следващото решение, отколкото да се опитвате да се борите рамката.)

Ако използвате сесията на някои страници, но не и в този продължителен процес, решението е да затворите сесията в началото на вашия скрипт с session_write_close() :

<?
set_time_limit(0);

require '../connect.php';
require '../includes/ses.php';

session_write_close();

$i = 1;
....

Отново, предупреждението за рамката:ако рамката започва сесия вместо вас, тогава поставете session_write_close(); след включване на файловете на рамката, не преди! (Вие споменахте, че това е случаят във вашите коментари, поради което го поставих след редовете за изискване.)

Ако вашият дълготраен процес трябва да използва сесията, но само за четене, горното все още работи. Вижте https://stackoverflow.com/a/14409902/841830 (Както показва този отговор, ако трябва да пишете в сесията в края на дълготрайния процес, това също е възможно.)

(P.S. На това вече беше отговорено в коментарите, но приех предложението на Wrikken да го публикувам като отговор. Да, слуховете са верни:ще направя всичко за няколко повторения...)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Правилно боравене с дълги данни в Hibernate

  2. mysqldump таблица без изхвърляне на първичния ключ

  3. MySQL DATEDIFF() срещу TIMEDIFF():Каква е разликата?

  4. Случаен номер в MySQL колона

  5. Грешка в MySQL LEFT JOIN