小编Dav*_*nes的帖子

如何在自动加载中使用PHP命名空间?

当我尝试使用自动加载和名称空间时,我收到此错误:

致命错误:类"的Class1"中找不到/usr/local/www/apache22/data/public/php5.3/test.php线10

谁能告诉我我做错了什么?

这是我的代码:

Class1.php:

<?php

namespace Person\Barnes\David
{
    class Class1
    {
        public function __construct()
        {
            echo __CLASS__;
        }
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

test.php的:

<?php

function __autoload($class)
{
    require $class . '.php';
}

use Person\Barnes\David;

$class = new Class1();

?>
Run Code Online (Sandbox Code Playgroud)

php autoload

98
推荐指数
4
解决办法
12万
查看次数

PostgreSQL在内存数据库中

我想从内存运行我的PostgreSQL数据库服务器.原因是在我的新服务器上,我有24 GB的内存,几乎没有使用它.

我知道我可以运行这个命令来制作一个ramdisk:

mdmfs -s 1024m md2 /mnt
Run Code Online (Sandbox Code Playgroud)

理论上我可以将PostgreSQL存储在那里.但问题是,如果服务器崩溃或重新启动,数据将会消失.

基本上,我希望数据库始终在内存中加载,这样它就不必去硬盘驱动器读取每条记录,因为我有大量的内存,因为内存比硬盘驱动器快.

是否有办法在PostgreSQL写入磁盘的同时执行此操作,以便在服务器出现故障时不丢失任何数据?或者有没有办法缓存内存中的所有数据?

memory postgresql freebsd

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

是否可以拥有带通配符证书的有效子子域?

说我有以下域名:

example.com
Run Code Online (Sandbox Code Playgroud)

我有这个域的通配符SSL证书.子域test.example.com正确验证.但是,当我尝试使用类似的域时demo.test.example.com,我在所有主流浏览器中收到错误消息:

demo.test.example.com uses an invalid security certificate.

The certificate is only valid for the following names:
  *.example.com , example.com
Run Code Online (Sandbox Code Playgroud)

是否可以将通配符证书用于"子子域"?

apache ssl ssl-certificate

10
推荐指数
2
解决办法
9405
查看次数

如何在目录上强制HTTPS并强制进行HTTPS身份验证

我想知道强制HTTPS身份验证的最佳方法是什么.

当我在.htaccess文件中有这个时:

AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
Run Code Online (Sandbox Code Playgroud)

身份验证有效,但它通过端口80进行身份验证,以明文形式发送密码.

所以我想我会添加一个重定向规则来将所有非HTTPS请求重定向到等效的HTTPS请求:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteBase /~david/
RewriteRule ^(.*)$ https://myserver.tld/~david/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)

这也有效,但它首先在端口80上进行身份验证,然后重定向,然后再在端口443上进行身份验证.我不想在端口80上进行身份验证,因为密码将以明文形式发送.我无法找到一种立即重定向到HTTPS的好方法,然后再进行身份验证.

我能想出如何做到这一点的唯一方法是这样做:

AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
ErrorDocument 403 /403.php
SSLRequireSSL
Run Code Online (Sandbox Code Playgroud)

在我的服务器上有一个403.php的PHP脚本:

<?php

header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

?>
Run Code Online (Sandbox Code Playgroud)

这是期望的行为.它需要SSL,因此当您尝试访问端口80上的目录时,它会发出自定义错误文档,并将该文档重定向到HTTPS.

这看起来像一个kludge.有没有更好的方法来实现这一目标?

apache .htaccess

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

如何使用C API使用SQLite3 import命令?

我有以下代码:

int rc;
rc = sqlite3_exec(sqlite3_database, ".import mydata.csv mytable", callback, 0, &errMsg);
Run Code Online (Sandbox Code Playgroud)

运行此命令后,errMsg包含以下错误消息:

near ".": syntax error
Run Code Online (Sandbox Code Playgroud)

我假设它无法识别导入命令.但是,在命令行上从sqlite3程序运行它时,此命令有效.

我需要能够直接在我的程序中使用import命令.有没有办法可以做到这一点?我需要使用import命令的原因是因为为CSV文件的每一行执行插入需要超过5分钟,并且import命令需要一瞬间.

c sqlite iphone objective-c

1
推荐指数
1
解决办法
3569
查看次数

如何让mod_rewrite在我的主目录中工作?

我将我的PHP文件存储在FreeBSD下的这个目录下:

/home/david/public_html/code/php
Run Code Online (Sandbox Code Playgroud)

在我的浏览器中,我通过以下URL访问它们:

http://192.168.6.7/~david/code/php
Run Code Online (Sandbox Code Playgroud)

我有一个htaccess文件来重写URL:

RewriteEngine on
RewriteRule ^test test.php
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器中访问http://192.168.6.7/~david/code/php/test时,我收到此错误:

Not Found

The requested URL /home/david/public_html/code/php/test.php
Run Code Online (Sandbox Code Playgroud)

如您所见,重写规则成功尝试将测试重定向到test.php.但由于某种原因,它失败了.

我在我的apache错误日志文件中找到了这个:

File does not exist: /usr/local/www/data/home
Run Code Online (Sandbox Code Playgroud)

有人知道怎么修这个东西吗?顺便说一句,如果我把它放在一个web目录而不是我的主目录中,一切正常.

php apache freebsd

0
推荐指数
1
解决办法
1505
查看次数