温馨提示×

ubuntu php-fpm如何配置缓存

小樊
54
2025-08-01 11:36:10
栏目: 编程语言

在Ubuntu系统中,配置PHP-FPM(FastCGI Process Manager)的缓存可以通过多种方式实现,包括使用PHP的内存缓存扩展(如OPcache)和配置PHP-FPM的pool设置。以下是一些常见的配置步骤:

1. 安装和启用OPcache

OPcache是一个PHP扩展,可以缓存预编译的脚本字节码,从而提高PHP脚本的执行速度。

安装OPcache

sudo apt update
sudo apt install php-opcache

启用OPcache

编辑PHP配置文件(通常是/etc/php/7.x/fpm/php.ini/etc/php/8.0/fpm/php.ini),添加或修改以下行:

[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

2. 配置PHP-FPM Pool

PHP-FPM的pool配置文件通常位于/etc/php/7.x/fpm/pool.d//etc/php/8.0/fpm/pool.d/目录下。你可以编辑默认的pool配置文件(如www.conf)来调整缓存设置。

编辑Pool配置文件

sudo nano /etc/php/7.x/fpm/pool.d/www.conf

配置缓存

www.conf文件中,你可以找到一些与缓存相关的设置,例如:

  • pm = dynamic:使用动态进程管理。
  • pm.max_children = 5:最大子进程数。
  • pm.start_servers = 2:启动时的服务器进程数。
  • pm.min_spare_servers = 1:最小空闲服务器进程数。
  • pm.max_spare_servers = 3:最大空闲服务器进程数。

这些设置可以根据你的服务器负载进行调整。

3. 配置Nginx或Apache作为反向代理

如果你使用Nginx或Apache作为反向代理,可以进一步配置缓存来提高性能。

Nginx配置示例

server {
    listen 80;
    server_name example.com;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

        # 启用Nginx缓存
        fastcgi_cache my_cache;
        fastcgi_cache_valid 200 301 302 10m;
        fastcgi_cache_valid 404 1m;
        add_header X-Cache-Status $upstream_cache_status;
    }
}

Apache配置示例

<VirtualHost *:80>
    ServerName example.com

    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost:9000

    # 启用Apache缓存
    <IfModule mod_cache.c>
        <IfModule mod_cache_disk.c>
            CacheEnable disk /my_cache
            CacheRoot "/var/cache/apache2/mod_cache_disk"
            CacheDirLevels 2
            CacheDirLength 1
            CacheIgnoreHeaders Set-Cookie
            CacheIgnoreNoLastMod On
            CacheMaxExpire 3600
            CacheLastModifiedFactor 0.5
            CacheDefaultExpire 300
        </IfModule>
    </IfModule>
</VirtualHost>

4. 重启服务

完成配置后,重启PHP-FPM和Nginx或Apache服务以应用更改。

sudo systemctl restart php7.x-fpm
sudo systemctl restart nginx
# 或者
sudo systemctl restart apache2

通过以上步骤,你可以有效地配置Ubuntu系统中的PHP-FPM缓存,从而提高PHP应用程序的性能。

0