我正在尝试设置我们的服务器以允许通过SSL进行流量.我知道SSL不适用于Name Virtual Host,但是我们在具有专用私有IP的虚拟机上拥有所有apache服务器.我们有一个主虚拟机,它具有mod_proxy设置,可以将流量路由到适当的vms.
但是,为了路由https流量,我们需要在代理和vms上安装证书.我们有一个可以在所有主机上使用的通配符证书.一切似乎都正常工作,但我在代理的apache日志中收到以下内容:
[警告]初始化:SSL服务器IP /端口冲突:host1.domain.com:443(/ etc/apache2/sites-enabled/host1:1)与host2.domain.com:443(/ etc/apache2/sites-启用/主机2:1)
我们在代理上设置的每个主机都有一条错误消息.我们的代理虚拟主机设置如下:
<VirtualHost ipaddress:443>
ServerName host1.domain.com
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / https://privateip:443/
ProxyPassReverse / https://privateip:443/
SSLProxyEngine on
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让这个工作吗?
我在PHP中有许多命令行脚本,它们使用exec()来执行诸如重启服务,加载MySQL时区文件等任务.虽然exec()本身不向屏幕输出任何内容,但我运行的一些命令正在强制输出我似乎无法抑制(即使使用ob_start()/ ob_end_clean()).例如,以下内容会将时区文件加载到MySQL中.我们定期运行此程序以确保MySQL的时区数据是最新的:
$command = 'mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql';
exec($command, $output, $result);
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我希望命令的所有输出都写入$ output,但我仍然将以下输出强制到屏幕:
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh89' as time zone. Skipping it.
...
Run Code Online (Sandbox Code Playgroud)
有没有办法抑制这个输出?重定向到/ dev/null并不理想,因为这会导致PHP继续处理而不等待命令完成.
在此先感谢
~JamesArmes
我正在使用PHP与Microsoft Exchange进行通信.在我的生产服务器上一切正常,但我的开发机器上一直有401 Unauthorized.我尝试从命令行使用curl,我得到相同的结果.
使用以下命令在我的机器上返回"401":
curl https://mail.example.com/EWS/Exchange.asmx -w %{http_code} --ntlm -u username:password
Run Code Online (Sandbox Code Playgroud)
同样的确切调用在我的生产机器上返回"302",这正是我所期望的.
我的开发机器使用curl 7.19.7,我的生产机器使用curl 7.18.0.
我在其中一台服务器上将文件上传到S3时遇到问题.我们使用S3存储备份,所有服务器都运行Ubuntu 8.04,PHP 5.2.4和libcurl 7.18.0.每当我尝试上传文件时,亚马逊都会返回RequestTimeout错误.我知道我们当前版本的libcurl中存在一个错误,导致上传超过200MB.出于这个原因,我们将备份拆分为较小的文件.
我们在亚马逊的EC2上托管服务器,在客户的"私有云"(公司防火墙后面的VMWare ESX盒)上托管服务器.我遇到问题的特定服务器托管在客户的私有云上.
我们使用来自http://undesigned.org.za/2007/10/22/amazon-s3-php-class的Amazon S3 PHP类.我尝试过200MB,100MB和50MB文件,结果相同.我们使用以下内容上传文件:
$s3 = new S3($access_key, $secret_key, false);
$success = $s3->putObjectFile($local_path, $bucket_name,
$remote_name, S3::ACL_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
我已尝试设置curl_setopt($curl, CURLOPT_NOPROGRESS, false);在上传文件时查看进度条.我第一次使用此选项运行它设置它有效.但是,每次都失败了.它似乎以大约3Mb/s上传文件5-10秒然后下降到0.在20秒后坐在0,亚马逊返回"RequestTimeout - 你的套接字连接到服务器没有读取或写入超时期间.空闲连接将被关闭." 错误.
我试过从RitHub将S3类更新到最新版本,但没有区别.我还找到了Amazon S3 Stream Wrapper类,并尝试使用以下代码:
include 'gs3.php';
define('S3_KEY', 'ACCESSKEYGOESHERE');
define('S3_PRIVATE','SECRETKEYGOESHERE');
$local = fopen('/path/to/backup_id.tar.gz.0000', 'r');
$remote = fopen('s3://bucket-name/customer/backup_id.tar.gz.0000', 'w+r');
$count = 0;
while (!feof($local))
{
$result = fwrite($remote, fread($local, (1024 * 1024)));
if ($result === false)
{
fwrite(STDOUT, $count++.': Unable to write!'."\n");
}
else
{
fwrite(STDOUT, $count++.': …Run Code Online (Sandbox Code Playgroud)