LINUX.ORG.RU
решено ФорумAdmin

ownCloud не видит установленные модули PHP

 , , ,


0

1

Пытаюсь установить ownCloud на Ubuntu 12.04 Server с Nginx в качестве веб-сервера и Postgres в роли СУБД. Пользовался статьями: http://doc.owncloud.org/server/7.0/admin_manual/installation/installation_sou... и http://doc.owncloud.org/server/7.0/admin_manual/configuration/configuration_d....

При открытии страницы ownCloud получаю вот что (скриншот):

No database drivers (sqlite, mysql, or postgresql) installed.

PHP module GD not installed. Please ask your server administrator to install the module.

Magic Quotes is enabled. ownCloud requires that it is disabled to work properly. Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.

PHP modules have been installed, but they are still listed as missing? Please ask your server administrator to restart the web server.

Список установленных пакетов для PHP:

  • php5-common;
  • php5-curl;
  • php5-fpm;
  • php5-gd;
  • php5-imagick;
  • php5-intl;
  • php5-mcrypt;
  • php5-pgsql

/etc/php5/conf.d/pgsql.ini:

extension=pdo_pgsql.so
extension=pgsql.so

[PostgresSQL]
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

Конфиг Nginx:

upstream php-handler {
        server 127.0.0.1:9000;
}

server {
        listen 80;
        server_name DOMAIN_NAME;
        return 301 https://$server_name$request_uri;  # enforce https
}
server {
        listen 443 ssl;
        server_name DOMAIN_NAME;

        ssl_certificate /etc/nginx/cert/cloud.cert.pem;
        ssl_certificate_key /etc/nginx/cert/cloud.key.pem;

        # Path to the root of your installation
        root /var/www/owncloud;

        client_max_body_size 10G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
        location ~ ^/(?:\.|data|config|db_structure\.xml|README) {
                deny all;
        }
        location / {
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }
        location ~ \.php(?:$|/) {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }
        location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }
}

grep -e '^magic' /etc/php5/fpm/php.ini:

magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off

С PHP раньше особо не сталкивался, поэтому обнаружить, в чём проблема, не могу. В гугле нашёл это и это, но не помогло (Nginx перезапускал).

Что делать?

В php.ini проверь включены ли необходимые модули. Судя по ошибке не расскоментирована строчка extension=gd.so и extension=pgsql.so

ImperialDwarf ()
Ответ на: комментарий от ImperialDwarf

Попытался добавить эти строчки в самое начало /etc/php5/fpm/php.ini, ничего не получилось. Может, нужно в какой-нибудь другой php.ini-файл это писать?

Также в /etc/php5/conf.d/ есть файлы gd.ini, pgsql.ini, в которых включаются эти расширения, но эти файлы, по-видимому, игнорируются. Что мне с ними делать?

# Nginx перезапускал

theNamelessOne ★★★★★ ()
Ответ на: комментарий от theNamelessOne

У меня вообще подозрение, что PHP читает настройки из другого файла (т. к. в /etc/php5/fpm/php.ini magic_quotes были изначально отключены, а ownCloud на них ругается).

theNamelessOne ★★★★★ ()
Ответ на: комментарий от theNamelessOne

Сейчас гляну конфиги на убунте. Дома под арчем все решилось после правок которые указал выше.

Попробуй создать вручную страничку с <?php phpinfo(); ?> . Думаю это даст часть ответов на необходимые вопросы.

ImperialDwarf ()
Ответ на: комментарий от theNamelessOne

Если мне не изменяет память то php-fpm должен идти отдельным сервисом и для подхвата настроек следует перегружать именно его, а не nginx.

ImperialDwarf ()
Ответ на: комментарий от ImperialDwarf

Так и есть, сделал service php5-fpm restart, и всё заработало. Спасибо большое!

theNamelessOne ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.