小编Nic*_*ton的帖子

为什么我会收到 sqlite 错误,“无法打开数据库文件”?

使用我的 Django 应用程序,我可以很好地从数据库中读取数据。当应用程序没有访问文件的权限时,它给了我这个错误:

尝试写一个只读数据库

这是有道理的。所以我编辑了文件的权限,让Apache进程有写权限。但是,我收到了这个神秘的错误,而不是能够写入:

无法打开数据库文件

如果它有用,这里是整个输出:

Request Method: POST
Request URL:    http://home-sv-1/hellodjango1/polls/1/vote/
Exception Type: OperationalError
Exception Value:    
unable to open database file
Exception Location: /usr/lib/pymodules/python2.5/django/db/backends/sqlite3/base.py in execute, line 193
Python Executable:  /usr/bin/python
Python Version: 2.5.2
Python Path:    ['/var/www', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/pymodules/python2.5', '/usr/lib/pymodules/python2.5/gtk-2.0']
Server time:    Sun, 23 Aug 2009 07:06:08 -0500
Run Code Online (Sandbox Code Playgroud)

如果需要堆栈跟踪,请告诉我。

django sqlite

72
推荐指数
4
解决办法
25万
查看次数

根据推荐的用法,网站应该位于 /var/ 还是 /usr/ 中?

根据Linux 目录结构指南/usr/适用于应用程序文件,/var/适用于更改的文件(我认为这意味着“属于应用程序的文件”)。这样对吗?

如果是这种情况,那么我在使用两者之间有点纠结。网站是一个应用程序(如果它是动态的,可以这么说),但在其他情况下,它只是 Apache 使用的文件集合。

默认的 www 目录位于/var/www/,所以我们应该通过使用/var/websites/(或类似的东西)来效仿,还是/usr/websites/因为它们可能是应用程序而选择?

这是一个非常微不足道的问题,但它仍然困扰着我。对于我们的案例,我倾向于/usr/web或类似的东西,因为我们的网站都是应用程序。

更新:

这是针对我们公司的网站;它不是共享托管服务器,因此我们无需担心将它们分开/home/或类似的事情。

linux website directory

67
推荐指数
4
解决办法
2万
查看次数

什么可能导致命令 `crontab -e` 出现“权限被拒绝”?

以下是我希望对您有所帮助的一些输出:

nick@home-sv-1:~$ crontab -e
/var/spool/cron/crontabs/nick: Permission denied

nick@home-sv-1:~$ echo $EDITOR
emacs

nick@home-sv-1:~$ ls /var/spool/cron/crontabs
ls: cannot open directory /var/spool/cron/crontabs: Permission denied

nick@home-sv-1:~$ sudo ls -al /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab 4096 2009-10-25 20:45 .
drwxr-xr-x 3 root root    4096 2009-05-18 01:19 ..
-rw------- 1 root root     612 2009-10-25 01:20 root
Run Code Online (Sandbox Code Playgroud)

问题:

crontab 没有 setguid,也不在 crontab 组中。

home-sv-1:~# ls -al /usr/bin/crontab
-rwxr-xr-x 1 root root 32048 2009-08-30 03:34 /usr/bin/crontab
Run Code Online (Sandbox Code Playgroud)

解决方案:

作为根...

home-sv-1:~# chown root.crontab /usr/bin/crontab
home-sv-1:~# chmod g+s /usr/bin/crontab …
Run Code Online (Sandbox Code Playgroud)

cron

27
推荐指数
3
解决办法
7万
查看次数

LAST_ACK 是什么意思,作为 netstat 中的状态值?

如果 Windows 服务器有数千个端口处于打开LAST_ACK状态(如 netstat 所示),这意味着什么?是因为一个端点正在等待另一个端点响应吗?

tcp

16
推荐指数
3
解决办法
8万
查看次数

如何在 Debian 上完全删除 mysql-server?

我想我会在这里分享我的问题然后回答,因为似乎有很多人坚持我的立场 - 但没有明确的答案。问题是,如果你 apt-get remove mysql-server,它不会清理配置和数据库文件,所以如果你以某种方式把它们搞砸了,那么再次安装,不会替换它们。所以似乎有很多人在问“我如何彻底删除mysql-server,以便我可以重新安装一个新的?” -- 每个人都回答apt-get remove --purge mysql-server-- 我不知道为什么,但这并没有完全卸载。我的回答如下...

mysql debian

14
推荐指数
1
解决办法
5万
查看次数

我应该使用 /etc/bind/zones/ 还是 /var/cache/bind/?

每个教程似乎对此都有不同的看法。对于我的 ISC BIND 区域,我应该使用/etc/bind/zones/还是/var/cache/bind/?在上次安装中,我使用/var/cache/bind/但只是因为我被引导这样做;但是,我刚刚在该新 Debian 安装中发现了一个 pid 文件,因此我认为使用“工作目录”来存储区域文件可能不是最好的主意。似乎许多管理员都使用它,因此他们在声明新区域时不必键入完整路径。

例如:

file "/etc/bind/zones/db.foobar.com";
Run Code Online (Sandbox Code Playgroud)

代替:

file "db.foobar.com";
Run Code Online (Sandbox Code Playgroud)

显然更容易打字,但这是好还是坏的做法?

有些人可能还建议将工作目录设置为/etc/bind/zones

options {
    // directory "/var/cache/bind";
    directory "/etc/bind/zones";
}
Run Code Online (Sandbox Code Playgroud)

...但有些东西告诉我这不是一个好习惯,因为我认为 pid 文件将在那里创建(除非它只是/var/cache/bind巧合)。

我查看了联机帮助页,但似乎没有说明目录选项的用途,任何想法到底是为什么设计的?

bind named-conf

12
推荐指数
2
解决办法
1万
查看次数

为什么 Debian Lenny git 包没有安装 git?

如果我在 Debian Lenny 上运行以下命令:

apt-get install git
Run Code Online (Sandbox Code Playgroud)

...我无法使用 git:

# git --version
bash: git: command not found
Run Code Online (Sandbox Code Playgroud)

git debian-lenny

9
推荐指数
2
解决办法
7314
查看次数

为什么我收到错误,无效的命令“PythonHandler”?

我正在尝试部署 Django 应用程序,但遇到了障碍。在 Debian(最新)上,到目前为止我已经运行了这些命令:

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-python python-django
Run Code Online (Sandbox Code Playgroud)

我已经尝试在 Apache 2 配置文件中手动添加模块,但老实说我完全迷失了。它与我多年前使用的 Apache 版本 1 完全不同。

Syntax error on line 7 of /etc/apache2/sites-enabled/000-default:
Invalid command 'PythonHandler', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)

我已将以下内容添加到我的sites-available/default文件中的标签之间。

    <Location "/">
              SetHandler python-program
              PythonHandler django.core.handlers.modpython
              SetEnv DJANGO_SETTINGS_MODULE hellodjango1.settings
              PythonDebug Off
    </Location>
Run Code Online (Sandbox Code Playgroud)

以下是我到目前为止使用过的教程,但运气不佳:

debian mod-python django apache-2.2

8
推荐指数
3
解决办法
2万
查看次数

为什么新的 IIS7 安装会显示所有文件的空白页?

我试图浏览到 .html、.png、.css、.txt 文件,但页面只是空白。我试过从其他机器浏览 - 同样的问题。此外(可能不相关)没有我期望它们的日志文件:C:\inetpub\logs- 它只包含 1 个空wmsvc目录。有任何想法吗?

iis-7

8
推荐指数
1
解决办法
2万
查看次数

如何使用 .htaccess 始终从 HTTP 重定向到 HTTPS?

有一些类似的问题,我试图从中找出答案,但到目前为止我一直没有成功。请告知我如何始终将 http 重定向到 https(并在此过程中从主机名中删除www.)。还有一个附带说明,最好在主 Apache conf 中执行此操作而不是.htaccess- 但我想这不适用于大多数人。

更新:

我已将此代码段添加到一个VirtualHost部分:

RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

...但它在我访问时没有效果http://www.domain(它应该重定向到https://domain

更新 2:

它没有效果,因为我没有使用RewriteEngine on- 所以它现在可以工作:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

http .htaccess

7
推荐指数
3
解决办法
9万
查看次数