我在 ubuntu 上有一个带有 apache/php 的专用服务器,为我的 Wordpress 博客提供每天大约 10K+ 的综合浏览量。我在 APC 上安装了 W3TC 插件。
但是服务器时不时地停止响应或变慢,我必须重新启动 apache 才能恢复它。
这是我的配置我做错了什么?
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
TimeOut 40
KeepAlive on
MaxKeepAliveRequests 200
KeepAliveTimeout 2
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 8
ServerLimit 80
MaxClients 80
MaxRequestsPerChild 1000
</IfModule>
<IfModule mpm_worker_module>
StartServers 3
MinSpareServers 3
MaxSpareServers 3
ServerLimit 80
MaxClients 80
MaxRequestsPerChild 1000
</IfModule>
<IfModule mpm_event_module>
StartServers 3
MinSpareServers 3
MaxSpareServers 3
ServerLimit 80
MaxClients 80
MaxRequestsPerChild 1000
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP} …Run Code Online (Sandbox Code Playgroud) 从昨天开始,我的一个网站上发生了奇怪的事情。
我在 IIS 上的 wordpress 站点的 index.php 从 1 kb 更改为 80 KB。map.xml 和 sitemap.xml 也是目录中的新内容。在 wp-content/themes 或 wp-content/includes 文件夹中还可以找到一些其他文件。像 b.php 或 e.asp。
在日志中,我可以找到一个显示我认为的过程的条目。POST /wordpress/wordpress/wp-content/plugins/easyrotator-for-wordpress/b.php - 80 或 POST /wp-content/themes/koppers12/library/e.asp |26|800a0408|Invalid_character 80
这可能与我的安全设置可能不太严格的事实有关,但是我无法弄清楚如何加强安全性,但让 wordpress 本身、主题和插件的更新机制起作用。
目前,整个网站的权限 (iusr) 设置为读写。如果我将其更改为只读,则由于权限较少,整个更新机制失败
有什么方法可以防止在网站上注入不需要的文件,同时还能更新 wordpress、主题和插件?
所使用的注入可能是对某些插件的利用,还是由于该站点的权限而注入了不需要的文件?
(我已经阻止了导致这种情况的 ip 地址,但这并没有多大帮助,因为这种注入方法已经在其他 ip 地址/范围上看到过。)
我的 Wordpress 表似乎需要优化,所以我查看了命令 OPTIMIZE TABLE 。当我运行命令时,我得到以下结果:
表不支持优化,改为重新创建+分析
这些表格是使用 Wordpress 2.91 安装程序构建的,根本没有修改。
(我知道不建议通过默默无闻来保证安全)。
我试图隐藏我正在使用 Wordpress 的事实。这篇文章很有帮助,但它只解决了内容(有点)。我有兴趣发生以下情况:
用户尝试wp*通过浏览器访问任何带有子字符串的url 。
结果:重定向到 404 页面。
博客用户/管理员知道为了登录他们应该去http://example.com/blogin/。
结果: apache 将它们重定向到http://example.com/wp-admin/.
如果用户尝试wp-admin从他们的浏览器直接访问,他们会被发送到 #1。
结果:重定向到 404 页面。
到目前为止我做过的事情
我注意到对于 WordPress 的默认安装,我可以访问wp*WP 安装的(相对)根目录中的任何文件。特别wp-settings.php是有问题,因为它泄露了有关我的设置的信息。如果用户访问它,它会抛出一些 PHP 错误并显示部分目录结构。我编辑了我的 php.ini 文件以display_errors关闭。现在访问http://example.com/wp-settngs.php会出现一个空白页面。
这本身并不理想,因为它表明wp-settings.php存在。事实上,访问所有不同的wp*文件是可能的(具有不同的结果)。然后我将以下内容放入我的 htaccess 文件中:
RewriteEngine On
RewriteBase /
RewriteCond %{PATH_INFO} wp* [NC]
RewriteRule .* - [F]
Run Code Online (Sandbox Code Playgroud)
这很好用!任何带有 a 的内容都wp*被路由到我的自定义 404 页面。但是现在我无法访问我的管理页面。
我想这条线插入到上面的代码:RewriteRule ^blogin wp-admin [NC,R,L]。它应该是在之后,RewriteBase …
我有dockerised一个 wordpress 应用程序,现在我是一个纯粹主义者,不想包含nginx在 docker 容器中,也不想在nginx容器和php-fpm容器之间共享任何状态。
我想php-fpm作为一个独立的网络服务器(如 ruby 中的 unicorn 或 python 中的 gunicorn)运行,为 wordpress 站点提供所有内容(html、css 和图像)。并nginx在它前面运行一个反向代理(缓存静态内容)。这样我就可以保持关注点的分离,并且我没有nginx将流量转发到nginx服务器。
的默认配置php-fpm只允许处理 php 文件。可以php-fpm更改的conf吗?如何?这是个好主意吗?
这是一个开发站点。推送到现场环境在我今天早上的备份中工作。
系统
Ubuntu 18.04
nginx
PHP 7.2
MYSQL
正在努力删除 TLSv1 表单证书路径。删除它并测试工作正常。正在使用一个插件来重新应用 API,因此它会回调正确的 url。现在我只是获得默认的 Nginx 页面。我已从备份恢复到新服务器并且站点正在运行。我正在做分类,似乎无法弄清楚到底发生了什么。
以下是 NGINX 的错误日志:
2018/07/13 19:37:01 [error] 4593#4593: *206 open() "/usr/share/nginx/html/wp-admin/admin-ajax.php" failed (2: No such file or directory), client: 65.152.214.10, server: , request: "POST /wp-admin/admin-ajax.php HTTP/1.1", host: "smokingquartz.com", referrer: "https://smokingquartz.com/wp-admin/plugins.php"
2018/07/13 19:39:01 [error] 4593#4593: *211 open() "/usr/share/nginx/html/wp-admin/admin-ajax.php" failed (2: No such file or directory), client: 65.152.214.10, server: , request: "POST /wp-admin/admin-ajax.php HTTP/1.1", host: "smokingquartz.com", referrer: "https://smokingquartz.com/wp-admin/plugins.php"
2018/07/13 19:41:02 [error] 4593#4593: *213 open() "/usr/share/nginx/html/wp-admin/admin-ajax.php" failed (2: No …Run Code Online (Sandbox Code Playgroud) 我的 PHP-CGI 无缘无故地开始提供空白页面,直到我重新启动该过程。
我想知道为什么。
不幸的是,PHP 的“生产”配置文件默认没有 error_log。我的 Nginx 错误日志也没有显示与 PHP 相关的错误。这可能是一个没有希望的案例,但我只是为了以防万一。
这是我的设置
任何想法可能导致错误?
更新
我想我已经隔离了这个问题。我一直在使用 Monit 在 PHP 开始空白时自动重新启动它。我的 PHP 错误日志是空白的。
但是我发现如果我禁用了一个名为 WP-SuperCache 的 Wordpress 插件,我的 PHP 将停止每大约 10 小时重置一次。到目前为止,我的 PHP 已经连续运行了 3 天。有没有人对此有任何建议?
我正在运行一个 Wordpress 网站,每天点击量约为 8.000,偶尔会飙升至 12.000 次点击。我目前正在考虑 VPS 服务器。我的设置是带有 Apache 和 MySQL 的 WP。谁能推荐在这种情况下多少内存就足够了?
我有一个网络服务器,目前托管着两个 Wordpress 站点和一些基于 Java 的协作软件。服务器有 2G 内存,目前使用了大约 1.8G 的可用内存。现在这里的内容几乎是一个试点项目,流量可以忽略不计,所以我认为很明显我将需要更多内存。
我想知道,如果我要发布它,我如何根据它获得的流量来预测我的内存需求。我在谷歌上四处寻找,我发现的东西有点脆弱。在根据服务器上的基本(无流量)负载计算内存需求时,是否应该使用一种很好的启发式方法?
作为参考,输出free -m可以在下面看到:
total used free shared buffers cached
Mem: 2048 1832 215 0 0 0
-/+ buffers/cache: 1832 215
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
对我来说,这看起来像是实际使用的内存,并不是由于缓存或其他任何原因造成的错觉。
我认为我的协作软件的需求必须经过实验测试,所以这里free -m没有运行该软件:
total used free shared buffers cached
Mem: 2048 1109 938 0 0 0
-/+ buffers/cache: 1109 938
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
我解决这个问题的计划 B 是向服务器添加一堆交换空间,为其提供一些流量并根据交换使用的数量进行调整。我只是想知道是否有人有一个很好的经验法则来估计我应该提前计划多少内存……或者我的想法是否疯狂。
非常感谢(我对此非常陌生)。
我试图让咱们加密内正式泊坞WordPress的容器。
$ cat docker-compose.yml
wordpress:
hostname: some.fqdn.com
image: wordpress
links:
- db:mysql
ports:
- 80:80
- 443:443
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
$ docker-compose -f docker-compose.yml up -d
$ docker exec -ti root_wordpress_1 bash
Run Code Online (Sandbox Code Playgroud)
$ apt-get update && apt-get install -y git-core
[...]
$ cd /usr/local
$ git clone https://github.com/letsencrypt/letsencrypt
[...]
$ cd letsencrypt/
$ ./letsencrypt-auto --apache
Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt --apache
An unexpected error occurred:
PythonDialogBug
Please …Run Code Online (Sandbox Code Playgroud) wordpress ×10
apache-2.2 ×3
nginx ×3
docker ×2
linux ×2
web-server ×2
.htaccess ×1
fastcgi ×1
hacking ×1
iis ×1
lets-encrypt ×1
memory ×1
mysql ×1
permissions ×1
php ×1
php-fpm ×1
php5 ×1
redirection ×1
scalability ×1
ubuntu-18.04 ×1