Last Updated on 2022-03-27 by Clay
問題描述
今天,當我在測試網站上試圖上傳客戶的主題(theme)時,我的網站後台轉了好一陣子的圈圈,接著回報給了我下方報錯訊息:
The Link You Followed Has Expired.
這個報錯訊息實在是太含糊,導致我一時間以為是上傳的主題文件損壞、或是網路速度不佳...... 經過了重新檢查文件、重新測試網速等等的工作之後,我這才在網路上搜尋到這個問題的答案 —— WordPress 網站設定的上傳尺寸限制了主題的上傳。
什麼意思呢?其實很單純。我們可以從 Media > Add New 中查看當前網站限制的文件上傳限制:
從畫面中可以看到,當前網站上傳的限制為 2MB、也是 WordPress 上傳限制的預設尺寸。
如果想要調整上傳限制,可以參考我之前撰寫過的:[WordPress] 調整上傳檔案尺寸上限
不過,我也會把簡化版節錄如下(不然這篇文章也太空泛了...),若是不清楚,就去參考上方文章連結吧!
修改上傳限制
修改方法有以下數種:
- 修改 functions.php
- 修改 .htaccess
- 修改 php.ini
- 添加設定於 docker-compose.yml (適用於使用
docker-compose
架設 WordPress 的使用者)
方法一:修改 functions.php 文件
functions.php 這份檔案應該位於佈景主題資料夾中。
在文件底部添加:
@ini_set( 'upload_max_filesize', '20M' ); // 單一檔案大小上限
@ini_set( 'post_max_size', '20M'); // POST 資料大小上限
@ini_set( 'memory_limit', '64M' ); // 記憶體上限
@ini_set( 'max_execution_time', '300' ); // 執行時間上限(s)
方法二:修改 .htaccess 文件
.htaccess 這份檔案應該位於網站根目錄底下。
同樣在內部添加:
@ini_set( 'upload_max_filesize', '20M' ); // 單一檔案大小上限
@ini_set( 'post_max_size', '20M'); // POST 資料大小上限
@ini_set( 'memory_limit', '64M' ); // 記憶體上限
@ini_set( 'max_execution_time', '300' ); // 執行時間上限(s)
方法三:修改 php.ini 文件
php.ini 這份檔案並不是單純添加設定,而是找到對應的設定修改值。
upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 64M
max_execution_time = 300
方法四:添加設定於 docker-compose.yml
在部署 docker-compose.yml 的同一目錄底下新增了 uploads.ini 檔案,並在裡頭寫入:
file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600
接著在 docker-compose.yml 中增加:
volumes:
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
這個 volumes 的架構是位於:
services:
└ wordpress:
└ volumes:
接著執行以下程式:
sudo docker-compose up -d --build
以上的方法修改成功之後,應該能於 Media > Add New 中看到更新後的數值:
如果還是無法成功修改,可能得嘗試看看其他方法。
References
- https://www.viralpatel.net/local-wordpress-docker/
- https://kinsta.com/blog/increase-max-upload-size-wordpress/
- https://www.cloudways.com/blog/increase-media-file-maximum-upload-size-in-wordpress/