Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

mod_fcgid: read data timeout in 31 seconds ?

Help
Greg
2011-11-16
2012-10-11
  • Greg
    Greg
    2011-11-16

    Hi.
    I'm running Apache/2.2.16 (Ubuntu) , libapache2-mod-fcgid
    1:2.3.5-2ubuntu0.1, php5-cgi 5.3.3-1ubuntu9.6. on Ubuntu 10.10 LTS,
    in a Virtualmin LAMP stack. Each Virtualhost runs suexec, thus the
    need for mod-fcgid so that each site is running under its own user
    account.

    I have a clean install of PHPWiki , latest stable version. I'm trying
    to import the data from the old install of PHPWiki (3.2 MB zip), using
    the restore feature, every time I try the restore the process crashes
    with "500 Internal server error" the the following in the logs :

    mod_fcgid:
    read data timeout in 31 seconds, referer:
    http://test-phpwiki.example.com/index.php/PhpWikiAdministration

    (110)Connection timed out: mod_fcgid: ap_pass_brigade failed in
    handle_request function, referer:
    http://test-phpwiki.example.com/index.php/PhpWikiAdministration

    I have adjusted every setting I can find in php, mod-fcgid, and
    apache. I'v googled for the last day and a half with no clear answer.

    Configuration as follows:

    root@nzhmlapp04:/home/phpwiki# cat fcgi-bin/php5.fcgi

    !/bin/bash

    PHPRC=$PWD/../etc/php5
    export PHP_FCGI_MAX_REQUESTS=5000
    export PHP_FCGI_CHILDREN=8
    export PHPRC
    umask 022
    SCRIPT_FILENAME=$PATH_TRANSLATED
    export SCRIPT_FILENAME
    exec /usr/bin/php5-cgi

    root@nzhmlapp04:/home/phpwiki# cat /etc/apache2/mods-enabled/fcgid.conf
    <IfModule mod_fcgid.c="">
    AddHandler fcgid-script .fcgi
    FcgidConnectTimeout 300
    MaxRequestLen 1000000000
    IdleTimeout 3600
    ProcessLifeTime 7200
    MaxProcessCount 1000
    DefaultMinClassProcessCount 3
    DefaultMaxClassProcessCount 100
    IPCConnectTimeout 60
    IPCCommTimeout 600
    BusyTimeout 300
    </IfModule>

    apache2.conf

    root@nzhmlapp04:/home/phpwiki# cat /etc/apache2/apache2.conf grep
    ServerRoot "/etc/apache2"
    LockFile /var/lock/apache2/accept.lock
    PidFile ${APACHE_PID_FILE}
    TimeOut 300
    KeepAlive on
    MaxKeepAliveRequests 100
    KeepAliveTimeout 60
    <IfModule mpm_prefork_module="">
    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxClients 150
    MaxRequestsPerChild 0
    </IfModule>
    <IfModule mpm_worker_module="">
    StartServers 2
    MinSpareThreads 25
    MaxSpareThreads 75
    ThreadLimit 64
    ThreadsPerChild 25
    MaxClients 150
    MaxRequestsPerChild 0
    </IfModule>
    <IfModule mpm_event_module="">
    StartServers 2
    MaxClients 150
    MinSpareThreads 25
    MaxSpareThreads 75
    ThreadLimit 64
    ThreadsPerChild 25
    MaxRequestsPerChild 0
    </IfModule>
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
    AccessFileName .htaccess
    <Files ~="" "^\.ht"="">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
    DefaultType text/plain
    HostnameLookups Off
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf
    Include /etc/apache2/httpd.conf
    Include /etc/apache2/ports.conf
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\"
    \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\"
    \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
    Include /etc/apache2/conf.d/
    Include /etc/apache2/sites-enabled/
    NameVirtualHost 192.168.32.22:80

    apache virtualhost

    SuexecUserGroup "#1014" "#1014"
    ServerName phpwiki.example.com
    ServerAlias www.phpwiki.example.com
    ServerAlias test-phpwiki.example.com
    ServerAlias webmail.phpwiki.example.com
    ServerAlias admin.phpwiki.example.com
    DocumentRoot /home/phpwiki/public_html
    ErrorLog /var/log/virtualmin/phpwiki.example.com_error_log
    CustomLog /var/log/virtualmin/phpwiki.example.com_access_log combined
    ScriptAlias /cgi-bin/ /home/phpwiki/cgi-bin/
    ScriptAlias /awstats/ /home/phpwiki/cgi-bin/
    DirectoryIndex index.html index.htm index.php index.php4 index.php5
    <Directory home="" phpwiki="" public_html="">
    Options -Indexes +IncludesNOEXEC +FollowSymLinks +ExecCGI
    allow from all
    AllowOverride All
    AddHandler fcgid-script .php
    AddHandler fcgid-script .php5
    FCGIWrapper /home/phpwiki/fcgi-bin/php5.fcgi .php
    FCGIWrapper /home/phpwiki/fcgi-bin/php5.fcgi .php5
    </Directory>
    <Directory home="" phpwiki="" cgi-bin="">
    allow from all
    </Directory>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} =webmail.phpwiki.example.com
    RewriteRule ^(.)
    https://phpwiki.example.com:20000/
    RewriteCond %{HTTP_HOST} =admin.phpwiki.example.com
    RewriteRule ^(.
    )
    https://phpwiki.example.com:10000/
    RemoveHandler .php
    RemoveHandler .php5
    IPCCommTimeout 31
    <Files awstats.pl="">
    AuthName "phpwiki.example.com statistics"
    AuthType Basic
    AuthUserFile /home/phpwiki/.awstats-htpasswd
    require valid-user
    </Files>

    php.ini

    engine = On
    short_open_tag = On
    asp_tags = Off
    precision = 14
    y2k_compliance = On
    output_buffering = 4096
    zlib.output_compression = Off
    implicit_flush = Off
    unserialize_callback_func =
    serialize_precision = 100
    allow_call_time_pass_reference = Off
    safe_mode = Off
    safe_mode_gid = Off
    safe_mode_include_dir =
    safe_mode_exec_dir =
    safe_mode_allowed_env_vars = PHP_
    safe_mode_protected_env_vars = LD_LIBRARY_PATH
    disable_functions =
    disable_classes =
    expose_php = On
    max_execution_time = 600
    max_input_time = 600
    memory_limit = 128M
    error_reporting = E_ALL & ~E_DEPRECATED
    display_errors = Off
    display_startup_errors = Off
    log_errors = On
    log_errors_max_len = 1024
    ignore_repeated_errors = Off
    ignore_repeated_source = Off
    report_memleaks = On
    track_errors = Off
    html_errors = On
    error_log = /home/phpwiki/logs/php_errors.log
    variables_order = "GPCS"
    request_order = "GP"
    register_globals = Off
    register_long_arrays = Off
    register_argc_argv = Off
    auto_globals_jit = On
    post_max_size = 32M
    magic_quotes_gpc = Off
    magic_quotes_runtime = Off
    magic_quotes_sybase = Off
    auto_prepend_file =
    auto_append_file =
    default_mimetype = "text/html"
    doc_root =
    user_dir =
    enable_dl = Off
    file_uploads = On
    upload_tmp_dir = /home/phpwiki/tmp
    upload_max_filesize = 32M
    max_file_uploads = 20
    allow_url_fopen = On
    allow_url_include = Off
    default_socket_timeout = 240

    pdo_mysql.cache_size = 2000
    pdo_mysql.default_socket=

    define_syslog_variables = Off

    SMTP = localhost
    smtp_port = 25
    mail.add_x_header = On

    sql.safe_mode = Off

    odbc.allow_persistent = On
    odbc.check_persistent = On
    odbc.max_persistent = -1
    odbc.max_links = -1
    odbc.defaultlrl = 4096
    odbc.defaultbinmode = 1

    ibase.allow_persistent = 1
    ibase.max_persistent = -1
    ibase.max_links = -1
    ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
    ibase.dateformat = "%Y-%m-%d"
    ibase.timeformat = "%H:%M:%S"

    mysql.allow_local_infile = On
    mysql.allow_persistent = On
    mysql.cache_size = 2000
    mysql.max_persistent = -1
    mysql.max_links = -1
    mysql.default_port =
    mysql.default_socket =
    mysql.default_host =
    mysql.default_user =
    mysql.default_password =
    mysql.connect_timeout = 60
    mysql.trace_mode = Off

    mysqli.max_persistent = -1
    mysqli.allow_persistent = On
    mysqli.max_links = -1
    mysqli.cache_size = 2000
    mysqli.default_port = 3306
    mysqli.default_socket =
    mysqli.default_host =
    mysqli.default_user =
    mysqli.default_pw =
    mysqli.reconnect = Off

    mysqlnd.collect_statistics = On
    mysqlnd.collect_memory_statistics = Off

    pgsql.allow_persistent = On
    pgsql.auto_reset_persistent = Off
    pgsql.max_persistent = -1
    pgsql.max_links = -1
    pgsql.ignore_notice = 0
    pgsql.log_notice = 0

    sybct.allow_persistent = On
    sybct.max_persistent = -1
    sybct.max_links = -1
    sybct.min_server_severity = 10
    sybct.min_client_severity = 10

    bcmath.scale = 0

    session.save_handler = files
    session.save_path = /home/phpwiki/tmp
    session.use_cookies = 1
    session.use_only_cookies = 1
    session.name = PHPSESSID
    session.auto_start = 0
    session.cookie_lifetime = 0
    session.cookie_path = /
    session.cookie_domain =
    session.cookie_httponly =
    session.serialize_handler = php
    session.gc_probability = 1
    session.gc_divisor = 1000
    session.gc_maxlifetime = 1440
    session.bug_compat_42 = Off
    session.bug_compat_warn = Off
    session.referer_check =
    session.entropy_length = 0
    session.cache_limiter = nocache
    session.cache_expire = 180
    session.use_trans_sid = 0
    session.hash_function = 0
    session.hash_bits_per_character = 5
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

    mssql.allow_persistent = On
    mssql.max_persistent = -1
    mssql.max_links = -1
    mssql.min_error_severity = 10
    mssql.min_message_severity = 10
    mssql.compatability_mode = Off
    mssql.secure_connection = Off

    tidy.clean_output = Off

    soap.wsdl_cache_enabled=1
    soap.wsdl_cache_dir="/tmp"
    soap.wsdl_cache_ttl=86400
    soap.wsdl_cache_limit = 5

    ldap.max_links = -1

    Any ideas what could be causing this , and how do I resolve it ?

    Thanks