DokuWiki 升级后搜索速度非常慢

DokuWiki 升级后搜索速度非常慢

我最近将 Ubuntu 14.04 “Detritus” 上的 dokuwiki 版本升级到“Release 2018-04-22a “Greebo””。

在升级过程中,我还必须将 PHP 版本升级到“5.6.36-1+ubuntu14.04.1+deb.sury.org+1”(之前为 5.5)。

升级后我唯一剩下的问题是搜索速度非常慢:需要大约 15-45 秒才能显示搜索结果,升级前,这是即时的。维基也相当小,大约 1000 页。

我尝试重建索引,但似乎没有任何改变。逐个禁用插件也无济于事(我想可能是插件拖慢了速度)

我还注意到,只要搜索运行,Apache 进程的 CPU 占用率就会达到 100%,并在显示结果后立即结束。我怀疑是 PHP 升级导致了 CPU 峰值,但我无法确定问题是什么。

有人能指出我应该调查什么吗?

Apache 2.4 VirtualHost 配置:

ServerAdmin [email protected]
    DocumentRoot /var/www/DokuWiki/public_html/
    ServerName wiki.xyz.com
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

PHP配置文件

engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
disable_classes =
zend.enable_gc = On
expose_php = On
max_execution_time = 300
max_input_time = 60
memory_limit = 512M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 200M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 200M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
mail.add_x_header = On
sql.safe_mode = Off
bcmath.scale = 0

[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

tidy.clean_output = Off

[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]

[ldap]
ldap.max_links = -1

答案1

好的,看到您对我的评论的回答,我列出了一种清单:

(重新)从 Odrej Sury PPA 安装所有必需的 php 包,按照他的建议删除你添加的存储库或软件包(如果有不同)

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

它应该以兼容模式安装正确的 PHP 版本。然后重新安装 apache2 模块,禁用旧模块并启用新模块:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6
sudo service apache2 restart

而且我可能也会升级 Apache 以使用 Ondrej repo,正如他在 PHP repo 中所推荐的那样:

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade

检查可用的 php 版本和默认版本:

update-alternatives --query php

如果 php5.6 未设置为默认值,请进行设置(或删除 php5.5):

sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6
sudo update-alternatives --set phpdbg /usr/bin/phpdbg5.6
sudo update-alternatives --set phpize /usr/bin/phpize5.6

检查更新日志以了解功能和配置更改,你从 2015 到 2018 做了一个很大的版本飞跃,特别是 ldap、gallery 和 ziplib 的变化)

检查Dokuwiki 的推荐 php.ini 设置

如果可以,请重做按照 DokuWiki 页面的步骤进行升级/安装

最后,检查你的虚拟主机,它应该(可能)有允许覆盖设置为全部因此包括.htaccessDokuWiki 中的文件可以正常工作。

附言:我忘了索要 error.log 和 access.log,虽然这样可能很容易识别错误,但无论如何,以正确的方式重做这些步骤都是好主意。

相关内容