我即将处理管理和运行我的第一个连接互联网的Apache网络服务器,我想知道是否有任何系统管理员和开发人员希望分享他们关于运行Apache网络服务器的安全性和优化技巧的一些知识.
也许你可以分享你在安装Apache webserver(在Linux机器上)后立即做的事情的前五(或十)个列表.
任何帮助非常感谢.
我的自动部署系统通过subversion更新了我的网站的最新版本.我没有将我的实时站点指向主干(这几乎总是正在进行中的版本),而是让我的实时站点指向标签.
例如,我在trunk上工作,当我的v1.0完成时,我创建了一个名为1.0的标签,然后检查该标签,然后是我的实时网站.现在,我继续在trunk上工作,过了一会儿就有了v2.0.我创建了一个名为2.0的标签,我希望我的实时网站类似于这个2.0标签.
我可以擦除当前的实时网站并检查此2.0标签.然而,这听起来很容易.我的网站大小约1GB,因为它有各种PDF文档和视频.我可以肯定地说,我做更新的大多数时间都是复制更改或错误修复.这意味着每次更新可能只有1%的网站更改.由于我的版本控制只能通过异地http连接访问我的网络服务器,这意味着我需要一遍又一遍地下载整个网站.
有没有一种简单的方法在标签之间切换,并且subversion只更新这些标签之间的差异?
我有一个服务大量VirtualHosts的问题,我想知道是否有更有效的做事方式.
我目前正在使用Location指令来服务来自不同部门的大量项目,来自19个部门的300多个项目.除了提供文件的目录之外,每个Location指令的结构都相同.我目前拥有的是一个大文件,看起来像这样:
<VirtualHost *>
ServerName www.myserver.com
<Location /departmentA/project1>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/departmentA/project1/passwords
Require valid-user
</Location>
<Location /departmentA/project2>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/departmentA/project2/passwords
Require valid-user
</Location>
<Location /departmentB/project1>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/departmentA/project1/passwords
Require valid-user
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,除路径外,所有这些结构都是相同的.我想要的当然是我可以使用变量作为部门和项目名称,只需维护一个Location指令.我认为这对服务器和内存来说也不那么重.
<VirtualHost *>
ServerName www.myserver.com
<Location /$1/$2>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/$1/$2/passwords
Require valid-user
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 我在我自己的RemoteObject类中封装了对远程服务的调用.这一切都正常,除非我必须处理传递给远程调用的变量参数.因为这是对它的调用,所以NetConnection.call我应该能够传递变量参数,但因为我正在封装NetConnection.call它会引发错误.这就是我的方法目前的样子:
public function call( method : String, callback : Function, ... args ) : void
{
var responder : Responder;
responder = new Responder( callback, onResponderStatus );
this._nc.call( this._remoteObject + "." + method, responder, args );
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我的方法将变量arguments参数作为最后一个参数.我正在尝试将这些参数传递给NetConnection.call方法.但是,在我的方法范围内,args将是Array类型.如何正确转发变量参数NetConnection.call?
我注意到Kohana 3 ORM在我开始使用它时为每个模型运行一个"SHOW FULL COLUMNS":
SHOW FULL COLUMNS FROM `mytable`
Run Code Online (Sandbox Code Playgroud)
此查询可能需要几个时钟周期才能执行(在Kohana分析器中,它实际上是我当前应用程序中运行的所有查询中最慢的).
有没有办法通过禁用此行为来帮助Kohana 3 ORM加速并明确定义模型中的列?
在我的应用程序中,我有一个短信服务.此服务是一个简单的POPO,它将实例带到驱动程序以执行实际的SMS功能.
想象一下,我有两个驱动器,mock_driver并且gateway_driver被定义为这样的services部分:
mock_driver:
class: MyApp\Service\Sms\MockDriver
gateway_driver:
class: MyApp\Service\Sms\GatewayDriver
calls:
- [setConfig, ["%gateway_user%", "%gateway_password%", "%gateway_endpoint%"]]
Run Code Online (Sandbox Code Playgroud)
SMS服务的定义如下:
service_sms:
class: MyApp\Service\SmsService
calls:
- [setDriver, ["%service_sms_driver%"]]
Run Code Online (Sandbox Code Playgroud)
我面临的问题是我想将两个驱动程序之一的"实例"传递给setDriver我的服务方法.应该在我的哪个驱动程序中定义parameters.yml,例如:
service_sms_driver: ["@mock_driver"]
Run Code Online (Sandbox Code Playgroud)
但是,我坚持使用语法来使其正常工作.我认为它的要点是正确的,除了service_sms_driver我的值的语法parameters.yml和setDriver实际服务的方法调用.
任何帮助赞赏.
编辑: 正如澄清一样,两个驱动程序都实现了相同的界面.但是,每个驱动程序可能需要不同的配置方式,这些方式可能无法在接口中捕获.如果我只是传递类名它会工作正常,但我试图注入实例.希望这是有道理的.
当使用裸机Doctrine和开箱即用的命令行时,有两个命令可用,使用Doctrine和Symfony时似乎不可用,并且app/console:
dbal
dbal:import Import SQL file(s) directly to Database.
dbal:run-sql Executes arbitrary SQL directly from the command line.
Run Code Online (Sandbox Code Playgroud)
有没有办法在Symfony中启用这些命令app/console?
我有一张 Materialise 卡,右上角有一个下拉菜单。但是,当单击下拉按钮时,菜单显示但菜单内容不会超出卡片的边界:
<ul id='myDropdown-menu' class='dropdown-content'>
<li><a href="#">Option 1</a></li>
<li><a href="#">Option 2</a></li>
</ul>
<div class="card white">
<div class="card-content grey-text text-darken-4">
<span class="card-title grey-text text-darken-4">Card Title</span>
<a id="myDropdown" class='btn-floating waves-effect waves-light transparent right' href='#' data-activates='myDropdown-menu'><i class="material-icons blue-grey-text text-darken-4">more_vert</i></a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何让下拉菜单超出卡片的边界?
我正在研究一些与时间相关的功能,我选择始终使用UTC时间并将时间戳存储为整数以保持一致性.
但是,我注意到当我使用mktime它时,似乎当前设置的时区会影响返回值mktime.从我理解的文档中,mktime应该返回自epoch以来的秒数:
返回与给定参数对应的Unix时间戳.此时间戳是一个长整数,包含Unix Epoch(1970年1月1日00:00:00 GMT)与指定时间之间的秒数.
http://php.net/manual/en/function.mktime.php
但是,似乎mktime包括当前设置的时区.使用以下代码时:
date_default_timezone_set('UTC');
$time = mktime(0, 0, 0, 1, 1, 2016 );
echo "{$time}\n";
date_default_timezone_set('Australia/Sydney');
$time = mktime(0, 0, 0, 1, 1, 2016 );
echo "{$time}\n";
Run Code Online (Sandbox Code Playgroud)
我希望这两个时间值相同,但显然它们不是:
1451606400
1451566800
Run Code Online (Sandbox Code Playgroud)
这似乎是一个11小时的差异:
1451606400 - 1451566800 = 39600 / (60*60) = 11
Run Code Online (Sandbox Code Playgroud)
我在使用时没有正确理解mktime和/或为什么要考虑时区mktime?
我正在将 AWS/Terraform 与 ECS 结合使用,并且我有一个设置,其中有多个 AWS 帐户,这些帐户都需要访问单独 AWS 帐户中的 ECR 中包含的 Docker 映像。
在单独的 AWS 帐户(ECR 中包含 Docker 映像的帐户)中,我创建了一个具有访问密钥(ID 和密钥)的用户。
在我的其他 AWS 帐户中,我有 ECS 任务定义,可以在其中指定 Docker 映像的位置,但是,当我运行该任务时,它需要访问其他帐户才能拉取映像。
如何在 Terraform ECS 任务定义中指定从其他帐户提取 Docker 映像,该映像需要使用该其他帐户中用户的访问密钥进行身份验证?
apache ×2
symfony ×2
amazon-ecs ×1
dbal ×1
doctrine-orm ×1
kohana-3 ×1
kohana-orm ×1
materialize ×1
mktime ×1
optimization ×1
php ×1
remoting ×1
security ×1
svn ×1
tags ×1
terraform ×1
timezone ×1
virtualhost ×1
webserver ×1