Три тупые проблемы с PHP (Ubuntu)

Discussion in 'PHP' started by Apeckou, 28 Nov 2011.

  1. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    Здравствуйте, помогите пожалуйста с настройкой сервака, совсем загуглился уже.

    Проблема1.
    Не работает функция mail(). Сначала очень долго думает, потом возвращает 1 (типа все нормально) но почта так и не приходит. Куда копать, какие логи выложить, подскажите плз.

    Проблема2.
    Не работают файлы .htaccess. Что бы я в них ни прописывал - без толку, будто апач их вообще не обрабатывает.

    Проблема3.
    Не работает ни в каком виде функция flush(). Пробовал по-разному извращаться, и с ob_end_flush() - без толку.

    Кто может что посоветовать - буду рад каментам. Вторые сутки не сплю, гуглю гуглю гуглю...
     
    #1 Apeckou, 28 Nov 2011
    Last edited: 28 Nov 2011
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    1. Настроить почтовый демон. Если настроен, потестить отправку писем из консоли при помощи mutt. Далее, втыкать в логи почтового демона. Возможно, ваши письма попадают в блэклист.
    2. В конфиге апача на вашу веб-директорию поставьте AllowOverride All. Рестартаните апач. Если не помогает, втыкайте в логи апача.
     
  3. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    3. Выложить примеры кода, как пробовали делать.
     
  4. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    3. пробовал все сделать по этой статье - не помогло. http://www.netfaq.ru/php-script/PHP_dopilivaem_Flush_napilnikom

    2. как именно мне нужно прописать это? Я пробовал в apache2.conf вписывать в конец такую шнягу
    <Directory "/var/www">
    AllowOverride All
    Allow from All
    </Directory>
    но не помогло. А httpd.conf у меня вообще пустой

    1. все что я сделал это поставил ubuntu со всякими php/mysql и тп. и затем установил sendmail. В php.ini прописано следующее:
    sendmail_from no value no value
    sendmail_path /usr/sbin/sendmail -t -i

    по пути /usr/sbin/sendmail лежит что-то похожее на ярлык с именем sendmail
    больше ничего сказать не могу =(
     
    #4 Apeckou, 28 Nov 2011
    Last edited: 28 Nov 2011
  5. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    ребят, заманался гуглить, никак не могу понять что куда прописывать чтобы все это заработало. помогите плиз
     
  6. c411k

    c411k Members of Antichat

    Joined:
    16 Jul 2005
    Messages:
    550
    Likes Received:
    675
    Reputations:
    704
    @ini_set('output_buffering',0);
    @ob_implicit_flush(1);
     
    _________________________
  7. Doctorrr

    Doctorrr New Member

    Joined:
    9 Nov 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    ну что, получилось?

    если нет, включи

    PHP:
    <?php
    ini_set
    ('error_reporting'E_ALL);
    ini_set('log_errors',1); ini_set('error_log','/var/logs/php/errlog.txt'); 

    $to  '[email protected]';
    $subject 'test';
    $body 'HELLO';

    mail($to$subject$body,
        
    "From: Mr. User <[email protected]>\r\n" .
        
    "MIME-Version: 1.0\r\n" .
        
    "Content-Type: multipart/mixed; boundary=\"----------A4D921C2D10D7DB\"\r\n") or die('Mail Error');

    запусти и втыкай в /var/logs/php/errlog.txt
    (создав его с правами на запись)

    да, и конечно же убедись, что запущен sendmail

    ps -afx | grep sendmail
     
  8. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    doctor

    создал файлик как ты сказал. права 777. создал скрипт, запустил
    функция возвращает 1, типа отправила. и ничего не приходит
    файл errlog.txt так и остается пустым

    на команду ps -afx | grep sendmail сервер отвечает

    Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
    25899 pts/0 S+ 0:00 | \_ grep --color=auto sendmail
    19883 ? Ss 0:02 sendmail: MTA: accepting connections
     
  9. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    3.

    @ini_set('output_buffering',0);
    @ob_implicit_flush(1);

    поставил вначале скрипта. так надо было сделатЬ? ничего не изменилось
    пробовал даже в цикле ставить)
     
    #9 Apeckou, 29 Nov 2011
    Last edited: 29 Nov 2011
  10. c411k

    c411k Members of Antichat

    Joined:
    16 Jul 2005
    Messages:
    550
    Likes Received:
    675
    Reputations:
    704
    телепатов вроде нет, что и куда ты вставляешь.

    PHP:
    <?php

    //error_reporting(0);
    @ini_set("max_execution_time",0);
    @
    ini_set('output_buffering',0);
    //@set_magic_quotes_runtime(0);
    @set_time_limit(0);
    @
    ob_implicit_flush(1);

    header("Content-Type: text/html; charset=utf-8\r\n");
    header("Pragma: no-cache");

    function 
    myflush($timee)
    {
        if(
    ob_get_contents())
        {
            
    ob_flush();
            
    ob_clean();
            
    flush();
            
    usleep($timee);
        }
    }

    for(
    $n 0; ++$n <= 33;)
    {
        echo 
    $n.' ';
        
    myflush(100000);
    }

    echo 
    '<br>';

    for(
    $n 0; ++$n <= 33;)
    {
        echo 
    $n.' ';
        
    myflush(40000);
    }

    ?>
     
    _________________________
    2 people like this.
  11. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    sendmail сама-по-себе отправляет письма?
     
  12. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    3. зашибись, теперь FLUSH работает, пасиба большое!"



    не знаю как проверить, из консоли не умею еще отправлять =(
     
  13. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Покажите вывод команды: whereis apache2 что бы узнать где у вас лежит апачь. И еще вопрос, какая ОС? Апачь ставили из репов или из сорцев или была уже предустановлена? Если из репов или была предустановлена то зачастую конфиг файлы апача лежат в /etc/apache2 а если из сорцев там префикс стандартный помоему /usr/share когда будете знать точно где лежат конфиг файлы покажите ls -lha этой папки.

    Code:
    [01:13][root][~]# whereis apache2
    apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz
    [01:13][root][~]# cd /etc/apache2;ls -lha
    total 55K
    drwxr-xr-x  9 root root  408 2011-11-01 22:19 .
    drwxr-xr-x 58 root root 3.7K 2011-11-22 00:31 ..
    -rw-r--r--  1 root root  26K 2011-11-01 22:19 apache2.conf
    -rw-r--r--  1 root root 9.9K 2009-07-14 23:00 apache2.conf.dpkg-dist
    drwxr-xr-x  2 root root  232 2011-09-16 09:54 conf.d
    -rw-r--r--  1 root root  378 2009-07-14 23:00 envvars
    -rw-r--r--  1 root root    0 2007-02-03 21:41 httpd.conf
    drwxr-xr-x  2 root root 2.8K 2011-09-16 09:54 mods-available
    drwxr-xr-x  2 root root 1.1K 2010-10-08 11:36 mods-enabled
    -rw-r--r--  1 root root  513 2009-12-14 09:48 ports.conf
    drwxr-xr-x  2 root root  104 2011-09-16 09:54 sites-available
    drwxr-xr-x  2 root root   48 2007-02-03 21:43 sites-enabled
    drwxr-xr-x  2 root root   80 2009-12-14 09:39 ssl.crt
    drwx------  2 root root   80 2009-12-14 09:39 ssl.key
    [01:17][root][/etc/apache2]#
    
    Как видите httpd.conf и у меня пустой, основная конфигурация в apache2.conf но и в ней может не быть ничего про виртуальные хосты. Конфиги вирт. хостов зачастую лежат в sites-available
    Code:
    [01:22][root][/etc/apache2/sites-available]# l
    total 12K
    -rw-r--r-- 1 root root  950 2009-07-14 23:00 default
    -rw-r--r-- 1 root root 7.2K 2009-07-14 23:00 default-ssl
    
    И вот уже в default есть директива:

    Code:
    <Directory /var/www/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    AllowOverride None нужно заменить на AllowOverride All тогда будут работать файлы .htaccess
    После всех изменений нужно перезапустить сервер apache2 сделать это можно либо через:
    apache2ctl restart или /etc/init.d/apache2 restart


    UP вопрос насчет ОС отпал, увидел в названии топика, убунту, в таком случае всё будет так как я описал, дэбианаподобная система
     
    #13 b3, 30 Nov 2011
    Last edited: 30 Nov 2011
    1 person likes this.
  14. Doctorrr

    Doctorrr New Member

    Joined:
    9 Nov 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Кстати да, AnGeI прав, первое что надо проверить:
    Отправка почты из консоли -- ф-ция mail:
    Code:
    # mail [email protected]
    Subject: hello
    ololo
    .
    EOT
    
    когда закончил писать тело -- поставь точку на пустой строке и нажми ENTER.
     
  15. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    я возможно совсем ламобот, но так и не допер как это вбить в консоли все вместе
    mail [email protected]
    Subject: hello
    ololo
    .
    EOT


    попробовал написать mail [email protected], мне выдало

    The program 'mail' can be found in the following packages:
    * heirloom-mailx
    * mailutils
    Try: apt-get install <selected package>

    я попробовал по этому совету установить mailutils
    # apt-get install mailutils

    но дело это нифига не поменяло. апач рестартил
    как теперь эту байду удалить? ХД
    не люблю лишний шлак, установленный в системе

    а во, я сделал #apt-get --purge remove mailutils
    вроде удалило


    короче вопрос с sendmail актуален =(
     
    #15 Apeckou, 30 Nov 2011
    Last edited: 30 Nov 2011
  16. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    3.

    Для b3:
    HTACCESS заработали, пасиба большое! Заманался гуглить!!)
     
  17. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    mutt заюзайте, я же написал во втором посте. Это консольный почтовый клиент. Им и потестируйте хождение мыл.
     
  18. Doctorrr

    Doctorrr New Member

    Joined:
    9 Nov 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Вообще-то mail должен присутствовать, если sendmail установлен :/

    И на убунту, судя по этому, он тоже должен быть: http://askubuntu.com/questions/12917/how-to-send-mail-from-the-command-line/12939#12939

    Мне кажется, то, что он не работает -- тревожный признак... я, правда, юзаю другие дистрибутивы, но не видел ни одного без mail.
     
  19. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    Во, я переустановил sendmail командой apt-get install sendmail

    теперь пробую отправить сообщение из консоли по этой статье: http://webinface.ru/content/38-ubuntu/63-sendmail-php-ubuntu

    и все отправилось, сообщение пришло как должно было.

    А вот ПХП все равно тупит. Сначала думает полчаса, потом ф-я mail возвращает 1, но почта так и не приходит. В чем проблема?
     
  20. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    короче проблема с сендмаилом решилась тупо прописыванием хостнейма в консоли...