我获得了Amazon EC2 Ubuntu实例。我们的任务是创建一个包含上传客户端视频的Web应用程序。我在localhost中创建了一个文件上传应用程序,它运行正常。当我将代码迁移到虚拟主机服务器时,我无法上传任何视频甚至任何超过2Mb
的文件。我尝试将php.ini
设置upload_max_filesize
修改为50M
,将post_max_size修改为1000M
。
多次重启Apache后,更新未反映在我的phpinfo()
信息中,但更改已保存在我的php.ini
文件中。
我怀疑给我的Amazon EC2实例有文件上传限制,但我不确定我是否正确。如果我错了,我该如何覆盖下面的配置?非常感谢任何帮助。
更新
我甚至确保我正在编辑正确的配置文件。以下是截图:
更新
我试着按照link中的说法,没有运气。我对链接有很多疑问:
S3 bucket
的意义是什么?我在/var/www/html/.ebextensions
上传了配置文件。我做对了吗?我的zzz.ini
包含以下代码,我将其放在/etc/php.d/zzz.ini
:
[php]
post_max_size = 1000M
upload_max_filesize = 50M
我的myconfigfile.config
位于/var/www/html/.ebextensions/myconfigfile.config
,其中包含以下代码:
files:
"/etc/php.ini":
mode: "000644"
owner: root
group: root
source: http://mybucketname.s3.amazonaws.com/php.ini
"/etc/php.d/zzz.ini":
mode: "000644"
owner: root
group: root
source: http://mybucketname.s3.amazonaws.com/zzz.ini
如何知道我的实例的存储桶名称?
我还将php.ini
从/etc/php/7.0/apache2/php.ini
复制到/etc/php.ini
并重新启动了apache。仍然没有变化。我做对了吗?
更新:
我向那个给我EC2实例的人询问了桶名,她的回复是。
是的,您可以访问EC2实例。 S3是不同的 亚马逊提供的服务,并且不会自动提供 EC2实例。我们可以为您在S3中创建一个存储桶,但可能没有 需要更长的时间。
EC2实例拥有大约8GB的存储空间。你应该能够 在EC2文件系统中存储大于2MB的多个视频 直接访问它们。
使用S3进行文件上传是一个好主意,尤其是在您的软件上 去生产。但是,为了简化设置,请使用 文件系统改为存储视频。
更新:
运行以下命令:
php -i | grep -i max_size
产量: post_max_size => 1000M => 1000M
grep -ir "max_size" /etc/php/7.0/apache2/conf.d/
什么都没有。
grep -ir "max_size" /etc/php/7.0/
产量
/etc/php/7.0/fpm/php.ini:post_max_size = 1000M
/etc/php/7.0/apache2/php.ini:post_max_size = 1000M
/etc/php/7.0/cli/php.ini:post_max_size = 1000M
我的phpinfo()
可以通过此link
答案 0 :(得分:2)
更改php.ini文件后,我还必须重新启动FPM:
sudo systemctl restart php-fpm.service
重新启动apache之前:
sudo systemctl restart httpd
答案 1 :(得分:1)
同时检查:
/etc/php.ini
或
/etc/php-[version].ini
并在此文件中修改该值。如果这还不够,请搜索:
/etc/php.d/aws.ini
事实上,AWS可能会覆盖您的价值。如果是这种情况,解决方案是创建一个名为/etc/php.d/99uploadsize.ini的文件,其中仅包含:
[php]
upload_max_filesize = 100M
post_max_size = 100M
名称99uploadsize.ini不是必需的,但请记住,在aws.ini之后,该名称应按字母顺序排列在同一目录中,因为这是读取这些ini文件的顺序。 即使该示例不是关于使用Apache的通用Ubuntu,这种解决方案由亚马逊提供给WP的类似问题:
https://aws.amazon.com/it/premiumsupport/knowledge-center/wordpress-themes-2mb/
答案 2 :(得分:1)
对不起伙计们,打扰你们所有人,我的坏人。我差不多4天就敲打了我的脑袋,结果发现我的php.ini只出现了语法错误。我用我在localhost中新安装的php更新了我的服务器php.ini,并在apache重启后更新了phpinfo()。