我试图在Debian 9上设置Apache和FPM,就像我们之前用Debian 7和8完成的一样。我相信,在Apache 2.4中mod_fastcgi被赞成mod_proxy_fcgi的弃用,并且随后将其从Debian 9 apt repos,我一直无法完成我们以前的设置。 基本上,我们使用FPM来在单个服务器(登台/开发服务器)上对多个站点进行沙箱。 最终的结果是,每个站点都拥有并分组到一个用户,FPM在该特定用户的进程下运行该站点。 以下是我们使用的Apache vhost示例: FastCgiExternalServer /home/siteusername/www/php5-fcgi -socket /tmp/php5-fpm-siteusername.sock -pass-header Authorization <VirtualHost *:80> DocumentRoot /home/username/www/domain.com/public_html/ ServerName www.domain.com <Directory /home/siteusername/www/domain.com/public_html/> AllowOverride all </Directory> <Directory /home/siteusername/www/> Require all granted AllowOverride all </Directory> AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /home/siteusername/www/php5-fcgi <ifModule mod_headers.c> Header set X-Robots-Tag "noindex" </ifModule> </VirtualHost> 这里是我们使用的一个FPMconfiguration的例子: [siteusername] […]
我目前正在尝试按照我在apache中的做法:为每个应用程序设置不同的PHP错误日志。 我到目前为止阅读了一些教程,似乎没有任何解释我想要什么,我不能相信IISpipe理员不使用它,因为它是一个基本和非常有用的function。 首先,我在我的php.ini文件中设置了这些规范: log_errors = On error_log = syslog error_reporting = E_ALL 然后,在IIS中,在我的网站的“日志”选项中,我select了W3C格式,select了“每个站点一个文件”选项,select“日志文件和ETW事件”,并设置任务每天创build一个新文件。 我在我的网站上创build了一个错误(导致500错误),但似乎没有保存在日志中。 我可以在日志中看到一个用户在页面上,并有一个错误500,但错误不报告… 这甚至可以使用IIS? 如果是这样,怎么样? PS:我不在乎每个网站都有一个单独的日志,其中只包含PHP错误,或者每个网站链接的错误(这也不会影响到我)。 PPS:我知道error_log可能是一个文件的path,但我真的希望每个网站都有自己的错误日志… 谢谢你,祝你有美好的一天。
最近,我用fpm支持编译php 5.3.11,并且尽快使用apache ProxyPassMatch "^/(.*\.php(/.*)?)$" "fcgi://127.0.0.1:9000/$1" DirectoryIndex index.html index.htm index.sthml welcome.html /index.php index.php 它使PHP工作正常,但停止目录列表; 另一方面我有: <FilesMatch ".*\.php.*"> SetHandler "proxy:fcgi://127.0.0.1:9000/var/www/" DirectoryIndex index.html index.htm index.shtml welcome.html index.php /index.php Options +Indexes +Multiviews +Includes +FollowSymLinks </FilesMatch> 它作为ProxyPassMatch反向工作,一切正常,但PHP断裂。 我有我的php-fpm.conf指令:listen = 127.0.0.1:9000 我试过了 listen = /var/run/php-fpm.sock 但是这一切都是一样的。 这是不是可以使用选项+索引+多视图+包括+ FollowSymLinks与ProxyPassMatch一起? 为什么不是我的FilesMatch指令工作? 我什至试图设置处理程序的完整path 相信我,我尝试了几乎所有使用谷歌,服务器故障和堆栈溢出! 谢谢你的帮助。
我最近将一个系统从基于Ubuntu 12的四服务器设置迁移到一个新的数据中心的Ubuntu 16三服务器设置。 系统为会话处理程序使用memcache。 该会话用于确定用户是否已login,以及哪个用户已login。它在Ubuntu 12安装程序上运行良好。 在新的Ubuntu 16安装程序中,我现在每login一次,就立即注销(会话消失)。 该系统还允许我作为pipe理员在用户之间切换(基本上将会话数据更改为新的选定用户)。 当我这样做,有时它会切换回旧的用户,当我导航到另一个页面。 这一切听起来像我的memcache会议不工作100%,我有时会得到旧的会话数据,无论是从我注销时,或当我是一个不同的用户。 我如何debugging这个来确定问题是什么? 我的谷歌search已经find了如何debuggingmemcached而不是memcache 这是来自php.ini的相关configuration: session.save_handler = memcache session.save_path="tcp://10.32.82.2:11211?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://10.32.82.3:11211?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://10.32.82.4:11211?persistent=1&weight=1&timeout=1&retry_interval=15" 这是来自memcache.ini的相关configuration: extension=memcache.so [memcache] memcache.dbpath="/var/lib/memcache" memcache.maxreclevel=0 memcache.maxfiles=0 memcache.archivememlim=0 memcache.maxfilesize=0 memcache.maxratio=0 memcache.allow_failover=1 memcache.session_redundancy=4
我最近在我的开发环境中尝试了Blackfire ( https://blackfire.io免费账户)来对我的代码进行“分析”。 我现在正在考虑将其设置在生产环境中。 问题 Q1:加载PHP扩展是否存在安全问题? Q2:其他人可以在我的网站上触发分析吗? 问题3:如果没有触发器,PHP扩展程序在生产中加载是否有速度问题?
我的phpinfo()正确告诉我,我正在Apache Web服务器上运行HHVM 3.18.1。 如果我尝试加载任何不是我的index.php的PHP页面,我会得到: [Thu Aug 17 11:35:56.542841 2017] [proxy_fcgi:error] [pid 19023] [client 127.0.0.1:59730] AH01067: Failed to read FastCGI header [Thu Aug 17 11:35:56.543005 2017] [proxy_fcgi:error] [pid 19023] (70014)End of file found: [client 127.0.0.1:59730] AH01075: Error dispatching request to : [Thu Aug 17 11:36:49.676178 2017] [proxy_fcgi:error] [pid 19028] [client 127.0.0.1:59736] AH01067: Failed to read FastCGI […]
我正在尝试开发一个sslchecker.com模拟器用于testing目的。 我想了解一些时刻: 在结果中,我们可以看到“解决”和“主机名”。 是“解决”一个域名,证书签名? 什么是“主机名”在这种情况下? 这不是一个forms的价值,因为我总是看到“不匹配”。 应该在那里? 我可以如何使用openssl的PHP函数或在terminal中使用纯openssl进行检测: 3.1“解决”(到它签署的域名) 3.2“hostname”(基于2个问题是什么) 3.3“供应商签署”(是或否)是 – 如果我们有“由…颁发”的值)? 3.4 PHP的openssl函数给我链没有最后的根证书,为什么? 我如何才能拿到根证书? 3.5如何使用SSL协议连接到链中的一个证书? 我应该使用什么域和端口,我怎么能检测到它,这有可能吗? 3.6我如何检查连锁证书的域名,并确认连锁证书对这个域名有效? 对不起,如果因为我英文不好或SSL理解不好而提出的问题不正确。 另外,我可以读什么? 也许你可以推荐一些video或简短的文章,而不是维基?
拒绝服务攻击 在互联网上托pipe一个网站时,拒绝服务攻击是一个常见的威胁。 虽然大多数安全漏洞可以通过避免危险的编码习惯/技术来防止,但DOS保护需要不同的方法。 懒惰的DOS攻击 具体而言,我并不担心networking上的复杂垃圾邮件发送者会使用昂贵的设备(可能优于我自己的设备)来接受付款。 我无法想象任何人都会为了让我的网站停下来而付出那么多的钱。 我更担心的是懒惰的攻击,这些攻击很可能来自聪明的青less年,他们试图在不知情的网站上testing他们的破坏力,特别是那些通过黑客马拉松和事件听说过我的网站和项目的人。 这些“懒惰的攻击”非常便宜,易于执行,并且可以采取简单的浏览器脚本或泛洪程序的forms,向我的站点服务器发送大量的请求。 一个强大的系统(像我的专用服务器)只能通过利用更强大的系统中的弱点,并利用它的能力来抵御自身,才能被弱系统(比如光源资源脚本)带走。 具体来说,我的意思是当同一个用户不断地向服务器发出几乎不需要的请求。 如果用于客户端资源的服务器资源的比例至less大于可用的服务器资源与客户端资源的比例,那么我的网站可能很容易被取消。 if (Server Resources : Client Resources > Server Power : Client Power) { ServerDown(); } 在Apache中确保请求返回策略 我不是问如何使我的Apache站点DOScertificate,而是如何通过locking一个客户端可以在一定时间内发送的请求数量,然后将其视为攻击者,从而减less对便宜,懒惰的DOS攻击的攻击。 这特别适用于php脚本和其他需要更多资源将内容转发给客户端的页面。 什么是最好的办法(MySQL禁止表,Apache设置,蜜jar等),以确保一个相对较小的网站对廉价的DOS攻击? 最初被问到堆栈交换
我在使用定制Docker容器和Linux上的Web App的Azure上进行名称parsing时遇到了问题。 在Azure中使用默认的resolv.conf文件时,使用curl和wget进行名称parsing需要4-10秒。 search reddog.microsoft.com nameserver 127.0.0.11 options timeout:1 attempts:5 ndots:0 当我将名称服务器更改为8.8.8.8时,所有工作正常。 如果我理解正确, Docker挂载主机的resolv.conf文件,并且应该使用Docker运行命令选项设置DNS设置。 不build议直接更改这些文件。 Docker如何pipe理容器内的DNSconfiguration的确切细节可以从一个Docker版本更改为下一个。 所以你不应该假定/ etc / hosts,/etc/resolv.conf这样的文件在容器中被pipe理,并且保持文件不变,而是使用下面的Docker选项。 但是,在Azure中设置泊坞窗运行参数似乎不可能。 这是我以前在SO这个主题上的post 。
我正在尝试为我的gitolite服务器写一个GUI。 我的计划是创build一个钩子,然后将git log写入数据库或文件。 然后一个PHP文件可以读取这个数据,并像Github上的networking一样显示它。 我现在的问题是如何知道哪个用户已经提交了? 因为如果他的git电子邮件不同,那么我的服务器数据库中的电子邮件我无法识别用户。 你对这个问题有什么build议吗? 有没有更好的方式来获取所有提交比git log ?