Sqlite3, apache kullanıcıları ve kolay yükler

1 Cevap php

Ben bir süper kolay kurulum işlemini olması gerekir küçük bir app yazıyorum. Sürüm tek bir csv dosya yerine bir veritabanı kullanılmıştır, böylece v2 için öncelik # 1 yerine gidiyor sqlite oluyor. Ben Ruby ile sqlite çok kullanılan, ve onu seviyorum, ama bu PHP ile kullanarak benim ilk kez ettik.

Temelde, SQLite3 db eklemek mümkün almak için, ben database.sqlite3 dosyasını ve apache kullanıcı tarafından sahip olunan içeren klasörü hem de yapmak gerekiyordu. Docs okuma, bu normal görünüyor.

Ancak, apache hep aynı kullanıcı olarak çalışan olacak değildir. İşte, bu 'http', ama bu doğru, 'www-data' bulunuyor Ubuntu biliyor musun?

Yani, Apache olarak çalışan ve değişen, ya da ben bu yanlışlar hakkında gidiyorum bir kullanıcı adı algılamak için iyi bir yolu var mı? Bu uygulamayı kullanmak kişi biliyor ya da bu gibi küçük ayrıntılar hakkında hiçbir şey umurumda değil, ben sadece install komut koymak bir şey olması gerekir.

Teşekkürler.

1 Cevap

I believe you're going at it from the wrong side: you need the SQLite db to be writable by the PHP script, as I understand the matter, and this might not be the same as the Apache user. If PHP is installed as an Apache module it will inherit the Apache user, but a much more common case on shared servers is to have PHP set up as CGI under suphp or phpsuexec, so the scripts run with the permissions of the user himself.

Ben klasör ve veritabanı oluşturmak için install.php senaryo yazmaya öneririm, böylece her iki olursa olsun, hangi kullanıcı, betiğin izinlerini devralır. mkdir() ve sqlite_open() için kılavuzun içine bak. Başka hiçbir şey işe yaramazsa her zaman orada var chmod().

Özellikle SQLite v 3 alıntı gibi phpversion() ile sunucu sürümünü kontrol etmek isteyebilirsiniz; PHP 5.3 sqlite_ * fonksiyonları sürüm 3, PHP 5.2 ile çalışmak ve aşağıda yerine sürüm 2 anlıyorum. Eğer kullanmanız gerekir PHP 5.2 sürümünü 3 kullanmak için pdo_sqlite.