Jak ustawić upload_max_filesize w .htaccess?

90

Spróbowałem umieścić te 2 linie

php_value post_max_size 30M
php_value upload_max_filesize 30M

w moim głównym pliku .htaccess, ale wyświetla mi się komunikat "wewnętrzny błąd serwera" ...
php5 działa na serwerze
Nie mam dostępu do php.ini, więc myślę, że htaccess to moja jedyna szansa.
Czy możesz mi powiedzieć, gdzie jest błąd?
Z góry dziękuję

T1000
źródło

Odpowiedzi:

139

php_value upload_max_filesize 30M jest poprawne.

Będziesz musiał skontaktować się ze swoimi dostawcami usług hostingowych - niektórzy nie pozwalają na zmianę wartości w php.ini

Kerry Jones
źródło
2
Dziękuję, ale ini_set () nie działa dla upload_max_filesize i post_max_size: /
T1000
kiedy mówisz „nie działa”, masz na myśli, że nie przynosi pożądanego rezultatu / powoduje błąd / coś innego?
Kerry Jones
ustaw error_reporting (E_ALL) i zobacz, czy coś się wyświetla. Poza tym skontaktuj się ze swoim dostawcą usług hostingowych, powinni oni być w stanie Ci pomóc. Niektóre zmiany blokują takie zmienne, ponieważ nie chcą, aby użytkownik stał się główną odwiedzaną witryną.
Kerry Jones
14
Te opcje nie mogą być ustawione przez ini_set (). Zobacz php.net/manual/en/ini.list.php i php.net/manual/en/configuration.changes.modes.php
dev-null-dweller
Wiele hostów na to nie pozwala, ale możesz także utworzyć plik php.ini, umieścić go w katalogu głównym witryny i nadpisać tam wartości.
Erik Čerpnjak
37

Jeśli otrzymujesz 500 - wewnętrzny błąd serwera , oznacza to, że nie masz uprawnień do ustawiania tych wartości przez .htaccess . Musisz skontaktować się z dostawcą serwera internetowego i poprosić o ustawienie AllowOverride Optionsdla swojego hosta lub umieszczenie tych linii w ich pliku konfiguracyjnym wirtualnego hosta.

dev-null-dweller
źródło
Dziękuję Ci. Dziennik błędów zawierał bzdury dotyczące nieprawidłowego polecenia, co jest dalekie od „Przejdź do zmiany pliku konfiguracji wirtualnego hosta”.
Altimus Prime,
33
php_value memory_limit 30M
php_value post_max_size 100M
php_value upload_max_filesize 30M

Użyj wszystkich 3 .htaccesscali po wszystkim w ostatniej linii. php_value post_max_sizemusi być więcej niż pozostałe dwa.

Grupa VAPP
źródło
2
czy mogę poznać powód, dla którego php_value post_max_sizemusi być więcej niż dwóch pozostałych?
Anusha
@Anusha, jeśli o tym pomyślisz, możesz pisać post z dwoma plikami 30M + więcej danych tekstowych, a to będzie kosztować dodatkowe bajty, to prawdopodobnie powód
giovannipds
12

Aby to naprawić, należy utworzyć plik o nazwie php.ini i zapisać go w tej samej lokalizacji, co plik .htaccess, a następnie wprowadzić następujący kod:

upload_max_filesize = "250M"
post_max_size = "250M"
Shaishav Shah
źródło
4
Działa to tylko w niektórych środowiskach hostingowych. Pracował dla mnie na moim koncie hostingowym Web Fusion.
Ian Jamieson
3

Jeśli na twoim serwerze WWW działa php5, uważam, że musisz użyć php5_value. To rozwiązało ten sam błąd, który otrzymałem podczas używania php_value.

PCTuneUpGuy
źródło
-2

Obie komendy są poprawne

php_value post_max_size 30M 
php_value upload_max_filesize 30M 

ALE aby użyć .htaccess, musisz włączyć rewrite_modulew pliku konfiguracyjnym Apache. W httpd.confznajdź tę linię:

# LoadModule rewrite_module modules/mod_rewrite.so

i usuń #.

afshin
źródło
6
IMHO, aby umożliwić korzystanie z .htaccess, wszystko, co musisz zrobić, to ustawić AllowOverridewszystko oprócz none. Ładowanie rewrite_modulejest wymagane tylko w przypadku dyrektyw ModRewrite.
RonaldPK,