Mam witrynę hostowaną na komputerze, do którego nie mam dostępu. Mam formularz umożliwiający przesyłanie plików mp3 o wielkości do 30 MB. Mój skrypt po stronie serwera jest wykonywany w języku PHP.
Za każdym razem, gdy próbuję załadować plik, pojawia się komunikat o błędzie stwierdzający, że plik przekracza maksymalny dozwolony rozmiar, więc muszę go zwiększyć. Moje badania w Internecie sugerowały zmianę .htaccess
pliku, do którego nie mam dostępu, aby to nie zadziałało. Inni sugerowali, że powinienem dodać niestandardowy php.ini
plik do mojego katalogu głównego, który nie działał. Jakieś inne sugestie?
post_max_size
. Ogólny rozmiar wysłanych pól może być większy niż rozmiar pliku, więc jeśli masz przypadek, że ktoś przesyła plik 40 MB, nie powiedzie się z powodu przekroczeniapost_max_size
.Możesz to zmienić za pomocą
.htaccess
pliku..htaccess
pliki są przechowywane w tym samym katalogu co.php
pliki. Zmieniają konfigurację tego folderu i wszystkich podfolderów. Po prostu ich używasz, tworząc.htaccess
plik w wybranym katalogu (lub zmodyfikuj go, jeśli jest obecny).Poniższe czynności powinny umożliwić zwiększenie limitu przesyłania (jeśli dostawca serwera zezwala na zmiany konfiguracji PHP przez
.htaccess
).źródło
;user_ini.filename = ".user.ini"
; Aby wyłączyć tę funkcję, ustaw tę opcję na pustą wartość;user_ini.filename =
Miałem ten sam problem i utworzyłem plik .user.ini i umieściłem go w katalogu, w którym znajduje się skrypt wysyłania. Następnie w tym pliku ustawiłem te dwie wartości:
i działało to dla mnie świetnie!
źródło
Możesz także użyć funkcji ini_set (tylko dla wersji PHP poniżej 5.3):
Jak powiedział @acme, w php 5.3 i nowszych ustawieniach są dyrektywy PHP_INI_PERDIR, więc nie można ich ustawić za pomocą ini_set. Zamiast tego możesz użyć user.ini.
źródło
Aby zlokalizować plik ini, najpierw uruchom
Następnie otwórz plik i zmień
zamieniając 2M na żądany rozmiar, na przykład 100M.
Mam też wpis na blogu z trochę więcej informacji http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-s-the-php-ini- file-for-wordpress
źródło
/etc/php5/cli/php.ini
ale mój plik konfiguracyjny to/etc/php5/apache2/php.ini
. Jakieś wprowadzające w błąd.W przeszłości miałem ten sam problem i naprawiłem go przez
.htaccess
plikKiedy wprowadzasz zmiany w konfiguracji php przez
.htaccess
powinieneś umieścić konfiguracje wIfModule
znaczniku, inaczej wystąpi błąd serwera wewnętrznego .To jest przykład, działa dla mnie dobrze:
A to jest odniesienie php, jeśli chcesz dowiedzieć się więcej. http://php.net/manual/en/configuration.changes.php
źródło
Rozwiązałem ten problem, tworząc plik o nazwie
.user.ini
w katalogu, w którym znajdują się skrypty plików PHP (oznacza to, że każdy skrypt PHP w tym katalogu otrzymuje nowy limit rozmiaru pliku)Treści
.user.ini
były:źródło
Miałem ten sam problem. Wypróbowałem trzy sposoby, które zwykle były sugerowane:
żaden, co rozwiązało mój problem. Korzystam z chrzestnego i natknąłem się na sugerowane rozwiązanie:
Voila! Teraz masz inny maksymalny rozmiar pliku do przesłania :)
źródło
wiele razy zauważyłem, że witryna z hostowaniem współdzielonym nie pozwala na zmianę ustawień w plikach php.ini. nie można nawet w ogóle utworzyć pliku .htaaccess. w takiej sytuacji można spróbować następujących rzeczy
źródło
odpowiedzi są nieco niekompletne, 3 rzeczy, które musisz zrobić
w php.ini twojej instalacji php (uwaga: w zależności od tego, czy chcesz dla CLI, apache lub nginx, znajdź odpowiedni plik php.ini do manipulowania. Dla nginx zwykle znajduje się
/etc/php/7.1/fpm
tam, gdzie 7.1 zależy od twojej wersji. Dla apache zwykle/etc/php/7.1/apache2
)lub ustaw inne wartości. Zrestartuj / przeładuj apache, jeśli masz zainstalowany apache lub php-fpm dla nginx, jeśli używasz nginx.
źródło
Chciałbym tu dodać moje 2 centy.
Korzystam z dzielonego hostingu i wiele razy poradziłem sobie z tym problemem, próbowałem rozwiązać go samodzielnie, ale bezskutecznie. Wreszcie udało mi się to rozwiązać, sprawdzając różne źródła internetowe i kontaktując się z moim dostawcą usług hostingowych. Moje pytania brzmiały: „Jak mogę zmienić wartość php
memory_limit
we współdzielonym webhostingu?”, „Jak mogę zmienić wartość phpupload_max_filesize
we współdzielonym webhostingu?”, „Jak mogę zmienić wartość phpmax_input_vars
we współdzielonym webhostingu?”, „Jak mogę zmienić wartość phpmax_execution_time
w Shared Webhosting? ”,„ Jak mogę zmienić wartość phpmax_input_time
w Shared Webhosting? ” i wiele innych poprzez konfigurację lub zmianę.htaccess
pliku php.ini lub pliku. Próbowałem je zmienić, ale pojawiły się problemy. W końcu skontaktowałem się z moim dostawcą hostingu i okazało się, że ustawiłem php na natywny, zmienili go na php 5.6,Po tym połączyłem moją stronę internetową za pomocą ftp Filezilla, nie zapomnij również zrobić usługi ftp, aby wyświetlać ukryte pliki, i komputera lokalnego, aby to zrobić, ponieważ
.htaccess
plik został ukryty w moim lokalnym laptopie i na mojej stronie internetowej. Był dostępny w folderze public_html, właśnie go pobrałem i dodałem następujące kody na końcu pliku, a następnie przesłałem z powrotem na serwer:Na razie wszystko działa poprawnie, jeśli ktoś z was poradzi sobie z pewnymi problemami, proszę napisać tutaj i ostrzec mnie, bym mógł zmienić powyższe kody. Nawiasem mówiąc, przesyłam również zdjęcia, które pokazują zmianę.
Jeszcze jedną rzecz, o której prawie zapomniałem wspomnieć o instalacji ZipArchive we współdzielonej usłudze hostingowej. Udało mi się to zaznaczyć, przechodząc do ustawień php przez mój panel, klikając rozszerzenia selektora php, a następnie zaznaczając sekcję zip, to wszystko.
Dzięki.
PS: Jestem otwarty na dobre praktyki, a jeśli zauważysz tutaj jakąś złą praktykę, daj mi znać, postaram się je zmienić. Dzięki.
źródło
Być może powinien to być komentarz do @ seanb123 i @Fredrick Gauss komentujący jego komentarz, ale dla mnie w Drupal 8.1 z PHP 7 plik, który musiałem zmodyfikować, znajdował się tutaj:
Zmodyfikowałem prawdopodobnie cztery inne pliki php.ini, w tym jeden mój system o nazwie „Załadowany plik konfiguracyjny” (
php -i | grep -i "loaded configuration file"
) i ten znaleziony na stronie info.php, ale żaden z nich nie pomógł. Klucz do odkrycia prawidłowej ścieżki został znaleziony na stronie od 2012 roku. Powiedzieli, że ścieżka"/etc/php5/apache2/php.ini"
jest przestarzała, WSTĘP WTEDY, ale dał mi wskazówkę, gdzie ją znaleźć. W PHP7 jest trochę inaczej niż w PHP5, ale koncepcja jest taka sama.Może pomoże to takiemu bezradnemu schmuckowi jak ja.
Biorąc to pod uwagę, odpowiedź na OP w moim przypadku byłaby taka, że ktoś z uprawnieniami administratora na pudełku musiałby to zrobić.
Strona, która mi pomogła: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/
Jest to również omówione tutaj: Limit wielkości importu pliku w PHPMyAdmin
EDYCJA: pełny tekst mojej notatki dla siebie:
EDYTUJ PONOWNIE: ponieważ importujesz duże pliki, może być konieczna zmiana limitu czasu ich przetwarzania. W moim przypadku plik o nazwie „config.default.php” został znaleziony przy
/usr/share/phpmyadmin/libraries/config.default.php
zmiennej$cfg['ExecTimeLimit'] = 300;
, na przykład, zmieniłem mój na 900, aby uzyskać ogromny import. Następnie musisz zrestartować apacheźródło
Żadne z tych rozwiązań nie działa dla mnie !! (już domyślnie ustawiony jest na 32M). Problem występuje w większości przypadków
max_allowed_packet
Pracuję na localhost i używam
MAMP
.Oto rozwiązania;
1. Jeśli nie masz
my.ini
Dodaj
Do
2. Jeśli masz my.ini
Pod
Dodaj
GOTOWY!
źródło
Trzy rzeczy, które musisz sprawdzić.
upload_max_filesize
,memory_limit
Apost_max_size
w pliku konfiguracyjnym php.ini dokładnie.Wszystkie te trzy ustawienia ograniczają maksymalny rozmiar danych, które mogą być przesyłane i obsługiwane przez PHP.
Zwykle
post_max_size
imemory_limit
muszą być większe niżupload_max_filesize
.Zatem łącznie trzy zmienne musisz sprawdzić, aby być absolutnie pewnym.
źródło
Ze
WAMP
to wszystko całkiem prosteUsługi ponownie ładują się automatycznie.
Ale jeśli naprawdę nie masz dostępu do serwera, możesz spróbować napisać
chunking
interfejs API.źródło
Miałem również ten problem i naprawiłem go, ustawiając to ustawienie w
/etc/nginx/nginx.conf
0, jak w nieograniczonym.
A także, jeśli masz odwrotne proxy działające z nginx, ten serwer powinien również mieć to ustawienie (to mnie tutaj wyrzuciło)
źródło
Jeśli edytowałeś właściwy plik php.ini, zrestartowałeś Apache lub Nginx i nadal nie działa, musisz zrestartować również php-fpm :
źródło
Ponieważ globalna zmiana jest nieco ryzykowna, starałem się zwiększyć maksymalną wartość wysyłania dla pojedynczego skryptu
big_file_upload.php
. Z jakiegoś powoduini_set
nie pomogło. Po pewnym badaniu, wymyśliłem to. Wstaw to.htaccess
(chyba że nazwa zostanie zmieniona przezAccessFileName
)Pracował dla mnie.
źródło