如何在apache2上使用pthread?

时间:2019-04-24 21:43:54

标签: docker pthreads apache2 ubuntu-16.04 php-7.0

我需要在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中找不到类'Threaded' > 该脚本与本教程中的脚本相同,该脚本中的CLI是通过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。)

预先感谢您的关注。

1 个答案:

答案 0 :(得分:1)

我的答案与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.so opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=1024 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=16229 opcache.validate_timestamps=0 opcache.revalidate_freq=0 opcache.fast_shutdown=1 opcache.save_comments=0 opcache.enable_file_override=1 opcache.log_verbosity_level=0 opcache.file_cache_consistency_checks=0 opcache.validate_permission=0 opcache.validate_root=0