我需要在apache2中将PHP-FPM与pthread一起使用,以提高在Ubuntu 16.04中运行的Prestashop 1.6存储中的性能。

我做了很多事情。这是最后两个测试:

1)我能够在XAMP v3.2.1中使用pthread运行并行PHP代码,但是它将重新启动apache服务器。我认为这与XAMP中apache已经使用工作线程有关。 (我对此有一个疑问:https://askubuntu.com/questions/1129449/is-apache2-using-threads-or-process-in-ubuntu-18-04)

2)在本教程之后,我编译了PHP 7.0.33:https://blog.programster.org/install-php-7-0-with-pthreads-on-ubuntu-16.04为了避免依赖关系问题和版本错误,我使用了一个基于Ubuntu 16.04的docker容器。但是,当我使用pthread代码访问PHP脚本时,在浏览器中出现以下错误:致命错误:在第5行的/var/www/html/test.php中找不到类“线程化”
该脚本与本教程中的脚本相同,在本教程中,该脚本是通过CLI测试的。

毕竟,我注意到pthread仅适用于CLI。以下链接对此进行了解释:
https://serverfault.com/questions/748001/the-apache2handler-sapi-is-not-supported-by-pthreads
https://github.com/krakjoe/pthreads

所以我的问题是:

1)有什么办法可以在Apache的PHP-FPM中使用Pthread?

2)有没有其他选择可以提高PHP的速度? (我已经尝试过:APC和APCU。)

预先感谢您的关注。

最佳答案

我的答案与pthread没有直接关系,但是,从2019年4月开始,而不是使用Apache 2来为您的PrestaShop商店获得最佳性能,

我建议以下内容:

  • Nginx 1.16
  • PHP FPM 7.3(与7.0相比,性能大幅提升),使用专用池
  • 配置
  • MariaDB 10.3(可选:使用两个服务器构建主/从设置)

  • 然后:
  • 启用Gzip
  • 为静态内容启用缓存和/或使用CDN来提供这些文件
  • 在PrestaShop管理面板中启用CCC(最小化/压缩/缓存)

  • 最后:
  • 启用PHP Zend Opcache并使用以下设置(仅在生产中):
    [opcache]zend_extension=php_opcache.soopcache.enable=1opcache.enable_cli=1opcache.memory_consumption=1024opcache.interned_strings_buffer=16opcache.max_accelerated_files=16229opcache.validate_timestamps=0opcache.revalidate_freq=0opcache.fast_shutdown=1opcache.save_comments=0opcache.enable_file_override=1opcache.log_verbosity_level=0opcache.file_cache_consistency_checks=0opcache.validate_permission=0opcache.validate_root=0
  • 关于docker - 如何在apache2上使用pthread?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55838990/

    10-16 12:33