首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP8:更改upload_max_filesize

PHP8:更改upload_max_filesize
EN

Stack Overflow用户
提问于 2022-10-05 10:37:36
回答 1查看 216关注 0票数 0

我需要将upload_max_filesizepost_max_size的值从默认的2M增加到10M。

(我需要为特定的vhost做这件事。在php.ini中全局更改值(对于所有vhost)不是一个选项。

在运行PHP7时,我在Apache2配置文件中为VirtualHost设置了以下内容。

代码语言:javascript
复制
php_value upload_max_filesize 10M
php_value post_max_size 10M

升级到PHP 8之后,这些行就不再工作了。

我正在运行Ubuntu20.04,并使用以下PPA安装了PHP 8:

代码语言:javascript
复制
sudo add-apt-repository ppa:ondrej/php

下面是我安装PHP的方式:

代码语言:javascript
复制
sudo apt install php
sudo apt install php-fpm
sudo apt install libapache2-mod-fcgid
sudo a2enmod actions fcgid alias proxy_fcgi

检查状态:

代码语言:javascript
复制
sudo systemctl status php8.1-fpm
 php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled;  
     Active: active (running) since Sun 2022-08-28 15:32:37 UTC; 1min 30s ago
       Docs: man:php-fpm8.1(8)
   Main PID: 739 (php-fpm8.1)
[…]

下面是配置文件的部分内容:

代码语言:javascript
复制
<VirtualHost *:80>
[…]
php_value upload_max_filesize 10M
php_value post_max_size 10M
<FilesMatch \.php$>:
    SetHandler proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
[…]
</VirtualHost>

在检查PHP配置时,我看到:

代码语言:javascript
复制
 Directive               Local value   Master value
 upload_max_filesize     2M            2M

当使用PHP 8时,正确的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-10-05 11:37:04

您可以通过fpm运行php。fpm是apache通过套接字文件与之交互的单独进程。

与我的注释一样,您有两个选项来个性化php设置:

使用ini_set()

  • separate fpm池用于特定虚拟主机

通过ini_set()是最快和最简单的方法,只需将以下内容添加到您管理上载的页面

代码语言:javascript
复制
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');

第二个选项比较复杂,您需要配置一个新的fpm池。通过快速执行,只需复制现有的配置(通常在/etc/php/8.1/info.gov.hk.d中)并修改它。它们的重点是:

代码语言:javascript
复制
listen = /var/run/php/php8.1-fpm.sock

代码语言:javascript
复制
listen = /var/run/php/php8.1-mysite-fpm.sock

以及添加/修改

代码语言:javascript
复制
php_admin_value[upload_max_filesize] = 10M
php_admin_value[post_max_size] = 10M

重新启动php-fpm并验证它是否没有出现错误。

然后让apache虚拟主机指向新的套接字。

代码语言:javascript
复制
<FilesMatch \.php$>:
    SetHandler proxy:unix:/var/run/php/php8.1-mysite-fpm.sock|fcgi://localhost"
</FilesMatch>

重新启动apache,它应该可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73959187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档