OwnCloud mit httpd und Mariadb

franco98

NetBSDler aus Leidenschaft
Hallo mal wieder!

Ich habe mir vor einigen Tagen einen kleinen OwnCloud Server mit OpenBSD 6, httpd und MariaDB aufgesetzt.
Es funktioniert eigentlich alles, aber ohne die MariaDB Anbindung bisher. Ich habe phpMyAdmin am Laufen, kann über das interne Netz (192.168.0.xyz) darauf zugreifen und die OwnCloud Datenbank konfigurieren.

Ich bekomme aber OwnCloud nicht dazu statt SQLite MariaDB zu benutzen. Bekannte Fehlermeldung beim 1. Anmelden:

"SQLite will be used as database.
For larger installations we recommend to choose a different database backend.
Especially when using the desktop client for file syncing the use of SQLite is discouraged."

PHP-5.6, php-mysql usw. sind installiert, die entsprechenden *.ini in /etc/php-5.6 gelinkt. Ich habe es mit der OwnCloud-Version aus den Ports (9.0) und einer älteren (8.2) probiert. Nichts!

Hat jemand eine Idee wo ich nach einem Fehler suchen kann?

VG aus LE
Franco

P.S. Der Teil meiner OwnCloud-Konfiguration aus der httpd.conf:

listen on egress port 80
listen on egress tls port 443

tls {
certificate "/etc/ssl/server.crt"
key "/etc/ssl/private/server.key"
}

# Set max upload size to 10GiB (in bytes)
connection max request body 10737418240

# First deny access to the specified files
location "/db_structure.xml" { block }
location "/.ht*" { block }
location "/README" { block }
location "/data*" { block }
location "/config*" { block }

# PHP-Scripts
location "/owncloud/*.php*" {
root {
"/owncloud", strip 1
}
fastcgi socket "/run/php-fpm.sock"
}

# HTML-Files
location "/owncloud/*" {
root {
"/owncloud", strip 1
}
}
 
Wie wäre es denn mal mit:

OWNCLOUDDIRECTORY/config/config.php
Code:
  'dbtype' => 'mysql',
  'dbname' => 'owncloudDB',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'owncloudUSER',
  'dbpassword' => 'SUPERGEHEIMESPASSWORT',
 
Habe ich! Ich habe auch den 'dbhost' mal verändert ('localhost', '192.168.0.100' , 'myname.mydomain.de', usw...) es kommt immer als Meldung:

"Only SQLite is available. Install and activate additional PHP modules to choose other database types"

Die PHP Module sind richtig installiert, ich vermute eher es hängt mit der chroot von httpd zusammen. Alle wichtigen Dateien sind aber auch in /var/www/etc kopiert (host, localtime, resolv.conf). Keine Ahnung i.M.?!
 
Die Frage kann ich natürlich so pauschal nicht beantworten. Die Ausgabe von phpinfo.php hier posten ebenso wenig ;-). Interessant ist aber, dass phpinfo() den MYSQL_SOCKET unter /var/run/mysql/mysql.sock findet, ich ihn aber in der /etc/my.cnf für MariaDB so definiert habe:

[client]
socket = /var/www/var/run/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/www/var/run/mysql/mysql.sock
# To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0".
bind-address = 0.0.0.0

Was meinst du genau mit "Was ist denn wo zu erreichen"?

VG aus LE
Franco
 
Bei mir es es wie folgt gelinkt und funktioniert bestens mit OpenBSDs httpd und mariadb:

Code:
curl.ini -> /etc/php-5.6.sample/curl.ini
gd.ini -> /etc/php-5.6.sample/gd.ini
mcrypt.ini -> /etc/php-5.6.sample/mcrypt.ini
mysqli.ini -> /etc/php-5.6.sample/mysqli.ini
pdo_mysql.ini -> /etc/php-5.6.sample/pdo_mysql.ini
redis.ini -> /etc/php-5.6.sample/redis.ini
zip.ini -> /etc/php-5.6.sample/zip.ini

Code:
Database configuration
----------------------
See the following URL for setting up a database for ownCloud:
  https://doc.owncloud.org/server/9.1/admin_manual/configuration_database/linux_database_configuration.html

ownCloud can work with a PostgreSQL, MariaDB or SQLite3 database.
Support for SQLite3 is included with the main php package; to use
another database, the corresponding package needs to be installed
*before* setting up ownCloud:
  php-pdo_pgsql or php-pdo_mysql
/usr/local/share/doc/pkg-readmes/owncloud-9.1.1
 
php-pdo_mysql ??? Hatte ich noch nicht installiert, nur php_mysql, es änderte aber nichts. Schade!
 
Ich hatte das mal so gelöst, dass ich in der owncloud-config aus "localhost" "127.0.0.1" gemacht und ihn damit quasi "gezwungen" über TCP/IP zu gehen statt einen Unix-Socket zu nutzen. Mal probiert?
 
phpinfo() den MYSQL_SOCKET unter /var/run/mysql/mysql.sock findet, ich ihn aber in der /etc/my.cnf für MariaDB so definiert habe:

[client]
socket = /var/www/var/run/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/www/var/run/mysql/mysql.sock
# To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0".
bind-address = 0.0.0.0

Da dürfte doch das Geheimnis vergraben sein.
 
@thorwin - Ich habe in der config.php das Feld für 'dbhost' => '127.0.0.1', dann => '192.168.0.100' geändert - kein Erfolg.
@peterle - /var/www/var/run/mysql/mysql.sock ist eigentlich nicht falsch, wenn man das Socket nutzen will, es liegt in der chroot - aber es wird von php wohl nicht gefunden. phpMyAdmin nutzt TCP/IP - keine Probleme.

Ich weiß nicht wo ich suchen soll. Das Setup beim 1. Anmelden von OwnCloud bietet mir überhaupt nicht erst an eine Datenbank einzurichten, nur das Administrator-Konto und das Datenverzeichnis. Ich glaube auch nicht das Socket benötigt wird, TCP/IP funktioniert ja.
 
Wer ist denn 192.168.0.100?

Was steht denn in der mysql.ini, (my.cnf, o.a.) wo er lauschen soll?

Schau mal in die php.ini, da kannst Du das default socket für mysql angeben.

Wenn alles richtig konfiguriert ist, kannst Du bei der Einrichtung von owncloud wählen, welche DB Du nutzen möchtest.
 
@peterle - 192.168.0.100 ist die IP des Servers, zu erreichen über ssh.

/etc/my.cnf
# To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0".
bind-address = 0.0.0.0
port = 3306

Ich habe das socket mal in der my.cnf und der php-5.6.ini geändert, so das es in der chroot liegt ( /var/www/var/run/mysql/mysql.sock) - kein Erfolg. Es gibt keine Auswahl für eine Datenbank beim Setup.

Mariadb und phpMyAdmin benutzen mysqli als PHP extension, hier funktioniert alles - remote ohne Probleme. Ich habe auch in den Logs (/var/www/logs/error.log und /var/www/owncloud/data/owncloud.log) nachgeschaut, nichts zu finden.

In meiner httpd.conf habe ich für den OwnCloud Server einen eigenen server Eintrag:

server "owncloud.myhost.de" {
listen on egress port 80
listen on egress tls port 443

tls {
certificate "/etc/ssl/server.crt"
key "/etc/ssl/private/server.key"
}

# Set max upload size to 10GiB (in bytes)
connection max request body 10737418240

# First deny access to the specified files
location "/db_structure.xml" { block }
location "/.ht*" { block }
location "/README" { block }
location "/data*" { block }
location "/config*" { block }

# PHP-Scripts
location "/owncloud/*.php*" {
root {
"/owncloud", strip 1
}
fastcgi socket "/run/php-fpm.sock"
}

# HTML-Files
location "/owncloud/*" {
root {
"/owncloud", strip 1
}
}
}

Ich finde nichts!

VG aus LE
Franco
 
... dass phpinfo() den MYSQL_SOCKET unter /var/run/mysql/mysql.sock findet, ...

Dann bau deine my.cnf doch spaßeshalber mal so um, daß er seine .sock auch da ablegt.

Kann es sein, daß dein chroot-Env keinen Zugang zu einem mysql client hat und es vielleicht daran scheitert? (wüste Vermutung!)
 
Dann bau deine my.cnf doch spaßeshalber mal so um, daß er seine .sock auch da ablegt.

Kann es sein, daß dein chroot-Env keinen Zugang zu einem mysql client hat und es vielleicht daran scheitert? (wüste Vermutung!)

Dann dürfte phpMyAdmin auch nicht laufen, es läuft aber auf dem gleichen httpd in der selben chroot (/var/www) ohne Probleme. Das MySQL-Socket sollte auch nicht das Problem sein, da ich MySQL bzw. MariaDB mit TCP/IP anspreche. Wie ich die environment der chroot abändere? Es wird irgendwie das php-mysql nicht gefunden oder was weiß ich...
 
@franco98: Min. seit Version 8.0 verwendet die Owncloud kein php-mysql sondern php-pdo_mysql welches wiederum php-pdo benötigt.
Evtl fehlt Dir nur noch php-pdo
 
# pkg_info -a | grep php
php-5.6.23p0 server-side HTML-embedded scripting language
php-bz2-5.6.23p0 bzip2 compression extensions for php5
php-curl-5.6.23p0 curl URL library extensions for php5
php-fastcgi-5.6.23p0 stand-alone FastCGI version of PHP
php-gd-5.6.23p0 image manipulation extensions for php5
php-intl-5.6.23p0 intl library support for php5
php-mcrypt-5.6.23p0 mcrypt encryption/decryption extensions for php5
php-mysql-5.6.23p0 mysql database access extensions for php5
php-mysqli-5.6.23p0 mysql database access extensions for php5
php-pdo_mysql-5.6.23p0 PDO mysql database access extensions for php5
php-zip-5.6.23p0 zip functions for php5
phpMyAdmin-4.5.5.1p0 tool to handle the administration of MySQL over the web

Scheint alles da zu sein?! php-pdo gibt es wohl für OpenBSD 6.0 nicht.

:(
 
Egal, habe auch noch php-pdo_dblib installiert -> OwnCloud sagt mir:

Es ist nur SQLite verfügbar. Installiere und aktiviere zusätzliche PHP-Module, um andere Datenbank-Typen auswählen zu können.
 
Es hat klappt :):):)! Danke an alle noch einmal und vielen Dank im Besonderen an @h0sch1 . Es waren wohl die letzten Module php-pdo_mysql und php-pdo_dblib. Ich hatte vor lauter Aufregung vergessen die *.ini zum Schluß in die /etc/php-5.6 zu linken. Nun erscheint die Auswahl für MariaDB. Die Verbindung läuft mit meinen Zugangsdaten.

Schönes WE und Prost
Franco
 
Zurück
Oben