我现在正在将应用程序从标准专用服务器迁移到AWS EC2上.我还将数据库(MySQL)移到了Amazon RDS上.现在我有一个问题,我非常肯定与PHP或Apache配置有关.
在我的专用服务器上,我现在可以毫无问题地访问Amazon RDS数据库,但在EC2实例上,使用完全相同的代码我收到此消息:
SQLSTATE[HY000] [2003] Can't connect to MySQL server on ....................eu-west-1.rds.amazonaws.com
我可以通过笔记本电脑上的Sequel Pro和我其他服务器上的PHP访问数据库服务器.我试图在我的其他服务器上输入MySQL数据库的IP地址,但是同样的错误消息,所以我想在Apache或PHP中有一些配置我需要做什么?
它是在CentOS上运行Apache和PHP的EC2实例.
关于什么配置阻止此连接的建议?
我正在尝试实现一个搜索过滤器,以在我的一个控制器中获取对象。我有以下代码:
public class SearchFilter
{
    public DateTime? BusinessDate;
    public DateTime? BusinessDateFrom;
    public DateTime? BusinessDateTo;
    public bool? Status;
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
    public SearchFilter get([FromUri] SearchFilter SearchFilter)
    {
        var Results = db.MyTable.Where(t => t.Published == true);
        if (SearchFilter.BusinessDate != null)
        {
            Results = Results.Where(t => t.BusinessDate == SearchFilter.BusinessDate);
        }
        else
        {
            if (SearchFilter.BusinessDateFrom != null && SearchFilter.BusinessDateTo != null)
            {
                Results = Results.Where(t => t.BusinessDate >= SearchFilter.BusinessDateFrom && t.BusinessDate <= SearchFilter.BusinessDateTo);
            }
        }
        if (SearchFilter.Status != null)
        {
            Results = Results.Where(t => t.Approved …Run Code Online (Sandbox Code Playgroud) 我有一个创建大量 Excel 文件的应用程序,我想将这些文件存储在 Amazon S3 中以备后用。
$objPHPExcel = PHPExcel_IOFactory::load('template.xlsx');
$objPHPExcel->getActiveSheet()->getCell('A1')->setValue('SomeVal');
// ...
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('filename.xlsx');
Run Code Online (Sandbox Code Playgroud)
这是我通常用来保存文件的代码,但我不想将文件存储在我的应用程序服务器上,因此我将这些文件存储在 S3 Bucket 中。
这是我通常用来将文件上传到 S3 的代码:
$s3 = S3Client::factory(array(
    'key' => AWS_KEY,
    'secret' => AWS_SECRET
));
$result = $s3->putObject(array(
    'Bucket' => AWS_BUCKET,
    'Key' => 'somefileinmybucket.jpg',
    'SourceFile' => $filepath,
    'ACL' => 'private'
));
Run Code Online (Sandbox Code Playgroud)
从我(有限的)以前使用这些工具的经验来看,唯一的解决方案似乎是:
我的问题是:有没有更好的方法,我不必将它保存到我的应用程序服务器的磁盘之间?
启动此过程后,将生成 50 到 100 个 excel 文件,应该上传到 S3,因此我想尽可能简化该过程。
编辑:这可能是重复的问题只涉及 S3,而不是 PHPExcel。它不讨论 PHP,这是这个问题所涉及的。
我正在尝试连接到.mdb文件,并安装了MDBTools
当我运行PHP脚本时,这是我得到的错误;
[unixODBC][Driver Manager]Can't open cursor lib 'libodbccr'
Run Code Online (Sandbox Code Playgroud)
在/usr/lib64我找到以下类似的库;
有没有我需要编辑的配置文件,因为对我而言,似乎lib就在那里,只是unixODBC无法找到它?
我刚刚开始在PHP中使用DateTime对象,现在我无法理解这一点.
我认为这DateTime会考虑我设置的默认时区date_default_timezone_set,但显然不会:
date_default_timezone_set('Europe/Oslo');
$str = strtotime('2015-04-12');
$date = new DateTime("@".$str);
$response['TZ'] = $date->getTimezone()->getName();
$response['OTZ'] = date_default_timezone_get();
$response['Date'] = $date->format('Y-m-d');
echo json_encode($response);
Run Code Online (Sandbox Code Playgroud)
这是我得到的回应:
{
  "TZ":"+00:00",
  "OTZ":"Europe\/Oslo",
  "Date":"2015-04-11"
}
Run Code Online (Sandbox Code Playgroud)
将正确的DateTimeZone传递给构造函数也不起作用,因为DateTime在给出UNIX时间戳时忽略它.(如果我将常规日期字符串传递给构造函数,则可以正常工作).
如果我这样做,日期会正确显示:
$date->setTimezone(new DateTimeZone("Europe/Oslo"));
我不想在每次处理约会时都要通过时区,但是从我看来我可能需要的时间来看?
在我C#度过了大半生的生活之后,我最近开始做一些编程PHP.
在PHP我能做到这一点:
class User
{
    public __construct($UserId)
    {
        // Do stuff
    }
}
class Employee extends User
{
    public __construct($EmployeeId)
    {
        // Look up the UserId connected to $EmployeeId
        $UserId = hypothetical_get_user_id_func($EmployeeId);
        parent::__construct($UserId);
    }
}
Run Code Online (Sandbox Code Playgroud)
但是,C#我似乎没有这种可能性,因为$UserId在它进入第一个构造函数之前,我似乎必须知道它.
public class User
{
    public User(int UserId)
    {
        // Do stuff
    }
}
public class Employee : User
{
    public Employee(int EmployeeId) : base(***) // I don't know this value yet?
    {
        // This …Run Code Online (Sandbox Code Playgroud)