我正在尝试提供大约500Mb的mp4视频,但我的连接速度太慢,在家里做不到这一点。
为了实现这一点,我从学校通过ssh上传了视频,然后我使用wordpress媒体管理器上传了一个1字节的mp4文件。
上传完这个文件后,我通过ssh访问了它的目录,然后移动了500Mb的文件来替换它。
问题是在那之后,我得到了一个HTTP 500错误,即使:-原始文件(1B)和替换文件(500Mb)都被赋予了644个perms和相同的所有者/组-我检查了文件名是否相同,它不可能是这样的错误。
这是我的htaccess:
AddType video/mp4 .mp4 .m4v
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/xml application/xhtml+xml text/plain application/javascript text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\\.0[678] no-gzip
BrowserMatch \\bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\\.php)$ $1 [L]
RewriteRule . index.php [L]
我想不出这个问题。有人知道吗?
我忘了指定它是多站点wordpress。
非常感谢!
最合适的回答,由SO网友:birgire 整理而成
多站点正在使用
ms-files.php?file=$2
打开上载的文件,并在ms文件末尾打开。您拥有的php
// If we made it this far, just serve the file
readfile( $file );
因此,打开一个500mb的文件可能对您的php进程来说太多了。
您可以尝试增加php进程的可用内存占用。
或者在外部托管该文件,或者尝试将其上载到Vimeo/Youtube。
ps: 另一种方法是使用map Nginx绕过php的特性,但这对您没有帮助,因为您使用的是Apache。Apache可能有类似的方法,但我不确定。
Edit: 看起来现在有一种方法可以关闭ms文件。php根据此票据:
http://core.trac.wordpress.org/ticket/19235
我发现这篇文章描述了以下步骤:
Turn off ms-files.php after network setup