|
|
|
| Подскажите, почему не удается выполнить длительный скрипт. Стоит nimp (сборка apache + nginx под windows) поставил в php.ini max_execution_time = 0, но все равно выбивает ошибку!
504 Gateway Time-out nginx | |
|
|
|
|
|
|
|
для: Ванек2010
(30.01.2012 в 10:31)
| | set_time_limit(600); скрипт будет до 600 секунд работать, если поставить 0, то пока полностью не отработает. | |
|
|
|
|
|
|
|
для: Lotanaen
(30.01.2012 в 10:38)
| | Пробовал не помогает. | |
|
|
|
|
|
|
|
для: Ванек2010
(30.01.2012 в 10:51)
| | а Ваш скрипт должен что-то в браузер выдавать? если только работать с БД либо грузить изображения, то скрипт будет продолжать работу не смотря на то что в браузере отобразится страница о тайм-ауте. | |
|
|
|
|
|
|
|
для: Lotanaen
(30.01.2012 в 11:01)
| | Скрипт рассылает на почту клиентов информацию, вывод на экран не треубется. Раньше все было нормально, сейчас нет.
В том то и дело, что после написания о тайм-ауте скрипт не перестает работать, но если закрыть окно браузера, то он перестает, хотя раньше он продолжал работать. | |
|
|
|
|
|
|
|
для: Ванек2010
(30.01.2012 в 11:10)
| | да я такое замечал не раз, но у меня это еще завсит в каком браузере я скрипт запускаю - например асли в опере, то после закрытия окна скрипт перестает работать, а если в ИЕ, то продолжает работу. | |
|
|
|
|
|
|
|
для: Lotanaen
(30.01.2012 в 10:38)
| | nginx равнодушен к set_time_limit(), увеличить время выполнения скрипта в нем (могу конечно и соврать, но) можно только непосредственно в его файле конфигурации. | |
|
|
|
|
|
|
|
для: Ванек2010
(30.01.2012 в 10:31)
| | Ограничение имеется еще и у Apache - он не будет бесконечно долго ждать ответа. Вам обязательно использовать Apache? Может просто запустить скрипт в командной строке? | |
|
|
|
|
|
|
|
для: cheops
(30.01.2012 в 10:41)
| | Наверно нет, как на виндовсе запустить в командной строке? | |
|
|
|
|
|
|
|
для: Ванек2010
(30.01.2012 в 10:48)
| | Самый просто вариант просто скопируйте скрип в папку PHP и выполните там команду
PS Вообще вариантов масса, вплоть до планировщика заданий. Можно запустить командную строку и выполнить команду
C:/путь_к_php/php.exe D:/путь_к_файлу/имя_скрита.php
| можно даже сделать, чтобы скрипты по двойному щелчку мыши запускались, назначив расширению .php, обработчик php.exe. | |
|
|
|
|
|
|
|
для: cheops
(30.01.2012 в 11:17)
| | php.exe. не помогло пишет, не поврежден, но предназначен для другого типа ПК.
Вбил в командную строку
C:\nimp\component\php\php.exe C:\nimp\htdocs\other\mailsend\mailSend.php
|
И ноль эмоций, в блокнот логов который показывает, что рассылка на данный ящик прошла успешно, не чего не занеслось.
На счет попытки запустить с веба, также, сдыхает на 2 ящике и перестает работать. | |
|
|
|
|
|
|
|
для: Ванек2010
(30.01.2012 в 11:41)
| | Погодите у вас настроен почтовый сервер? Это отражено в php.ini? Тогда нужно еще указать путь к php.ini в параметре -c.
C:\nimp\component\php\php.exe -c C:\nimp\component\php\php.ini -f C:\nimp\htdocs\other\mailsend\mailSend.php | |
|
|
|
|
|
|
|
для: cheops
(30.01.2012 в 11:49)
| | Вроде все успешно, спасибо! | |
|
|
|
|
|
|
|
для: cheops
(30.01.2012 в 11:49)
| | Появилась проблема, текст сообщения рассылается с картинками с помощью вашего кода. Так вот при запуске из командной строки путь до картинок надо указывать абсолютный, при этом картнки на почту отсылаются, но отбражаются файлом, а не встроены в html код.
<?php
# Сами картинки
$picture[0] = "letter1.jpg";
$picture[1] = "letter2.jpg";
# Табличка и встроенная картинка
............<td><img src='cid:".md5($picture[0])."'></td>..........
# Ф-я отправки
function send_mail($mail_to, $thema, $html, $path)
{
$EOL = "\n";
$boundary = "--".md5(uniqid(time()));
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "From: test@domen.ru$EOL";
// Вложение отсуствует
$headers .= "Content-Type: multipart/related; boundary=\"$boundary\"$EOL";
$multipart = "--{$boundary}$EOL";
$multipart .= "Content-Type: text/html; charset=koi8-r$EOL";
$multipart .= "Content-Transfer-Encoding: 8bit$EOL";
$multipart .= $EOL;
$multipart .= str_replace("\r\n", "\n", $html);
$multipart .= $EOL;
if (!empty($path))
{
for($i = 0; $i < count($path); $i++)
{
$file = file_get_contents($path[$i]);
$name = basename($path[$i]);
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: image/jpeg; name=\"$name\"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
// Вложение отсуствует
// $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";
$multipart .= "Content-ID: <".md5($name).">$EOL";
$multipart .= $EOL;
$multipart .= chunk_split(base64_encode($file), 76, $EOL);
}
}
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($mail_to, $thema, $multipart, $headers))
return False;
else
return True;
exit;
}
|
| |
|
|
|
|
|
|
|
для: Ванек2010
(31.01.2012 в 16:44)
| | >но отбражаются файлом, а не встроены в html код.
В смысле отображаются файлом?
PS Под новые вопросы лучше заводить новые темы. | |
|
|
|
|
|
|
|
для: cheops
(31.01.2012 в 16:56)
| | Как прикрепленные, но там где они должны быть их нет. | |
|
|
|