当我尝试使用自动加载和名称空间时,我收到此错误:
致命错误:类"的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) 我想从内存运行我的PostgreSQL数据库服务器.原因是在我的新服务器上,我有24 GB的内存,几乎没有使用它.
我知道我可以运行这个命令来制作一个ramdisk:
mdmfs -s 1024m md2 /mnt
Run Code Online (Sandbox Code Playgroud)
理论上我可以将PostgreSQL存储在那里.但问题是,如果服务器崩溃或重新启动,数据将会消失.
基本上,我希望数据库始终在内存中加载,这样它就不必去硬盘驱动器读取每条记录,因为我有大量的内存,因为内存比硬盘驱动器快.
是否有办法在PostgreSQL写入磁盘的同时执行此操作,以便在服务器出现故障时不丢失任何数据?或者有没有办法缓存内存中的所有数据?
说我有以下域名:
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)
是否可以将通配符证书用于"子子域"?
我想知道强制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.有没有更好的方法来实现这一目标?
我有以下代码:
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命令需要一瞬间.
我将我的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目录而不是我的主目录中,一切正常.