在Ubuntu服务器上,我在用户的主目录下有一个数据库文件,特别是/home/pistacchio/lessico/mydatabase.db 。 Apache在www-data组下工作。 什么是授予访问该文件到Apache的最佳方式? 谢谢
不知道为什么有人给你一个-1 …但这里是一些关于这个问题的思考。
如果你想要一个数据库驱动的网站,Apache不需要直接访问数据库文件。 通常情况下,apache依赖于一个特定的编程语言模块(PHP,Perl,Python,Bash,CGI等)来访问数据库服务器,然后根据需要访问文件进行更改。 不依赖专用“服务器”的基于文件的数据库确实存在,但在multithreading环境中可能会遇到问题。 (查看“比赛条件”,如果你想了解更多信息)
如果你正在尝试直接对文件进行某种备份,那么你所做的一切都是错误的。 如果数据库文件随时挂载到活动的数据库服务器上,出于各种原因,这些文件将被更改。 如果您正在尝试下载/复制/不断更改的文件,您可能最终导致下载失败或损坏的下载。 有几个步骤需要执行“locking”数据库以防止在复制期间写入数据…或者您需要查看数据库备份工具(如“mysqldump”)来创build数据库转储…然后回来 您还可以查看卷快照…您可以在其中创build文件当前状态的“快照”,然后下载快照而不是不断变化的版本。
如果您仍然试图直接下载数据库文件,则可以在web-root someplace中创build一个到该文件的符号链接,然后确保已设置权限(可能在组或所有人位上)以允许用户Apache正在运行以访问这些文件。 你也可以使用像suphp这样的框架(不推荐)来作为另一个用户执行php会话。