我的一台服务器(Ubuntu 12.04,16CPU,32GB RAM)运行我的网站(Nginx 1.1.19,PHP5-FPM,Php 5.3.10,Symfony2 Web Framework) 突然,用户开始得到HTTP 5 **错误。 当我在服务器上,有大量的磁盘IO,罪魁祸首是[flush] 。 当我使用dmesg浏览内核日志时,发现[flush]是nginx进程需要花费太多时间来刷新的原因。 (我认为) 事件发生时的内核日志条目: Jan 31 22:51:25 ip-10-0-0-160 kernel: [115562.048088] INFO: task nginx:17876 blocked for more than 120 seconds. Jan 31 22:51:25 ip-10-0-0-160 kernel: [115562.050180] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Jan 31 22:51:25 ip-10-0-0-160 kernel: [115562.057484] nginx D ffffffff81806240 0 17876 17875 […]
概述: 我有十几个WP安装在Ubuntu 14.04 LTS,w / PHP 5.5.9和Nginx 1.4.6上。 MySQL在备用节点上运行,而不是在公共networking上运行。 目标: 要让每个WP安装的目录和文件不是世界可读的。 如果恶意用户访问特定的WP安装,我不能让他们能够导航到备用WP安装并读取DB凭据。 细节: Nginx作为www数据运行。 为每个虚拟主机创build一个没有shell的用户。 每个虚拟主机都支持一个WP安装。 PHP-FPM池特定于每个用户/虚拟主机运行。 PHP-FPM池通过socks连接w / Nginx,而不是回环IP。 阅读下面的Wordfence文章,我试图设置文件权限,如下所示: 文件 – 640 目录 – 750 当我像这样configuration权限时,作为www-data运行的Nginx不能再正确访问WP文件。 如果我将权限设置回644 & 755 ,一切都按预期工作。 网站安装在以下结构中: /var/www/site1.com/public /var/www/site2.com/public /var/www/site3.com/public 等等。 每个目录由相应的用户和用户组拥有。 即: site1-com:site1-com /var/www/site1.com 我们有一个WP网站被黑客攻击,他们能够得到一个PHP文件pipe理器脚本到服务器上。 我的理解是这个脚本是由用户www-data运行的。 (检查w / ps aux )如果这是真的,我怀疑恶意用户可以访问所有其他WP安装通过他们的PHP文件pipe理器脚本。 如何改善我的权限设置以加强安全性? 我愿意接受所有build议,即使这意味着重新configuration整个堆栈安装。 提前致谢。
我试图在我的机器上升级本地副本中的Prestashop商店。 在Windows 7下运行XAMPP。当我用Firefox浏览一些网站时,我放了一会儿。 当我回来重新装载Prestashop时,我得到了一个非常奇怪的输出 ,类似于这样的: GLorg /的NetBeans / API /video/动作/ InplaceEditorProvider $ EditorController; 7Lorg / netbeans的/ API /视觉/动作/ TextFieldInplaceEditor; &Lorg / netbeans的/ API /视觉/插件/场景; “Lorg / netbeans的/ API /视觉/插件/窗口小部件; CLorg / netbeans的/模块/视觉/动作/ TextFieldInplaceEditorProvider; ^ Ljava / util的/ EnumSet; bLjava /郎/对象; Lorg / netbeans的/ API /视觉/动作/ InplaceEditorProvider; (Ljava / awt / Dimension;)V()Ljava / awt / Font; […]
前言:这是我见过的最奇怪的错误之一,特别是它来了又去。 有一个名为view.php的页面,另一个页面叫做save.php 。 当我请求save.php时,该错误就会显示出来 – 我反而得到了view.php 。 请求标题说save.php ,并且发生在Firefox,IE,Chrome,Opera,Safari。 它会一直发生,除非 – 这里是奇怪的部分 – 我打开文件并保存。 我不做任何改变,只是保存。 保存后,我可以做出同样的确切要求,它提供了save.php像没有错。 我目前正在从一个SVN仓库出口(只是一个简单的svn export http://server/repository target命令)。 如果我没有做任何更改后导出,错误就会重新显现。 如果更改(完全不相关的页面),并将其提交到存储库,然后导出,该错误通常会消失。 但是,同样的事情可能发生在两个不同的页面(也与修改后的页面无关),或者可能不会。 我没有使用任何types的caching(没有PHPcaching,浏览器caching,或Apachecaching)。 SVN版本:Windows机器(开发机器)上的1.6.9 w / AnkhSVN,版本库机器和testing机器(我运行导出命令的地方)都是1.4.2。 除了怀疑svn是哪里出了问题,我不知道。
我正在使用基于VPS的网站托pipe,发现默认的apache2 + prefork + mod_php对于我的VPS来说太耗费资源以达到可接受的并发性。 (吃RAM) 所以我最近切换到apache2 + mpm_worker + mod_fcgid + php5 以下是我对相关模块的configuration。 <IfModule mpm_worker_module> StartServers 4 MinSpareThreads 10 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 25 MaxClients 200 MaxRequestsPerChild 1000 </IfModule> <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php # Where to look for the php.ini file? DefaultInitEnv PHPRC "/etc/php5/apache2" # Maximum requests a process handles before […]
我有一个运行PHP5的Apache 2服务器,prefork MPM,eaccelerator和modevasive。 我的服务器有时会下降,显然是由于某些IP泛滥。 至less这是我从运行netstat的理解。 我得到这样的事情: tcp 0 0 my.ip.is.here:80 88.160.126.117:55864 ESTABLISHED tcp 0 0 my.ip.is.here:80 88.160.126.117:57073 ESTABLISHED tcp 0 0 my.ip.is.here:80 88.160.126.117:56989 ESTABLISHED tcp 639 0 my.ip.is.here:80 88.160.126.117:57813 ESTABLISHED tcp 639 0 my.ip.is.here:80 88.160.126.117:57695 ESTABLISHED tcp 0 0 my.ip.is.here:80 88.160.126.117:57274 ESTABLISHED tcp 602 0 my.ip.is.here:80 80.214.0.41:51131 ESTABLISHED tcp 0 0 my.ip.is.here:80 88.160.126.117:57513 ESTABLISHED tcp […]
我试图运行一个很长的PHP过程,并以500内部服务器错误结束。 它执行罚款约8分钟。 更改php设置后,我重新启动了机器。 PHPconfiguration: max_execution_time:3600 大约10分钟后ps ax | grep php: 19007? S 0:08 / usr / bin / php /home/gypsy/public_html/index.php 我已经将ignore_user_abort设置为true。 该过程卡在00:08(第8分钟),不会进一步执行。 Apache错误日志显示错误: 在返回标题之前脚本超时:index.php 似乎不知何故max_execution_time不起作用。 任何build议将是一个很大的帮助。 更新: 我已经能够检测到这个问题。 防火墙阻止了这个过程。 服务器使用iptables和configserver作为防火墙。 禁用防火墙工作正常。 但是我不确定要更改哪些设置以允许防火墙中的长时间运行的进程
任何想法为什么Apache(httpd)在/ tmp中创build这些文件? 我在Redhat 5.5和Apache 2.2上,mpm-prefork。 -rw——-. 1 apache apache 0 Aug 14 12:46 filec1puD5 -rw——-. 1 apache apache 0 Aug 14 12:46 fileKJqaih -rw——-. 1 apache apache 0 Aug 14 12:46 fileB7j9Ws -rw——-. 1 apache apache 0 Aug 14 12:46 file1o7MCE -rw——-. 1 apache apache 0 Aug 14 12:46 filefqAvjQ -rw——-. 1 apache apache 0 […]
我已经做了所有的search,但没有运气。 我试图找出如何为用户创build一个名称空间,说user.mysite.com,并有redirect到他/她的文件夹(mysite.com/user)。 有没有办法使nginx转发所有子域到他们各自的文件夹? 我这样做的原因是因为我希望能够使这样的子域名,而不必重新启动nginx。 我的nginx.conf文件看起来像这个FYI。 server { # add www. if ($host ~ ^(?!www)) { rewrite ^/(.*)$ http://www.$host/$1 permanent; } server_name www.mydomain.com; access_log /var/log/nginx/mydomain.com.access.log; error_log /var/log/nginx/mydomain.com.error.log; root /usr/share/nginx/mydomain.com/; index index.php index.html index.htm; # use fastcgi for all php files location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny […]
我正在试图使河豚哈希可用于在Debian服务器上的PHP。 取自crypt()函数( http://php.net/manual/en/function.crypt.php )的php手册,下面的代码检查密码函数… <?php echo("DES is " . CRYPT_STD_DES."<br>Extended DES is ".CRYPT_EXT_DES."<br>MD5 is ".CRYPT_MD5."<br>BlowFish is ".CRYPT_BLOWFISH."<br>"); if (CRYPT_STD_DES == 1) { echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "<br>\n"; } if (CRYPT_EXT_DES == 1) { echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "<br>\n"; } if (CRYPT_MD5 == 1) { echo 'MD5: ' […]