Mam aplikację internetową na serwerze Linux, która zaczyna się od <?
Musiałem skopiować tę aplikację do środowiska Windows i wszystko działa dobrze, z wyjątkiem tego, że instrukcja SQL jest renderowana inaczej. Nie wiem, czy ma to związek z skrypt począwszy <?php
zamiast <?
ponieważ nie wiem, skąd się włączyć <?
z PHP.ini
więc zmieniłem je<?php
Wiem, że te 2 stwierdzenia mają znaczyć to samo, ale muszę je przetestować <?
, aby upewnić się, że aplikacja jest dokładnie taka sama. W ten sposób mogę wyeliminować inną możliwość.
Dzięki
php
tags
php-shorttags
seedg
źródło
źródło
Odpowiedzi:
Zestaw
w php.ini
I uruchom ponownie serwer Apache.
źródło
/etc/php5/apache2/php.ini
php --ini
do zlokalizowania załadowanego pliku konfiguracyjnego (Załadowany plik konfiguracyjny: /etc/php5/cli/php.ini)Można to zrobić, włączając short_open_tag w php.ini :
Jeśli nie masz dostępu do php.ini, możesz spróbować włączyć je za pomocą pliku .htaccess , ale możliwe jest, że firma hostingowa wyłączyła to, jeśli korzystasz z hostingu współdzielonego:
Dla osób myślących, że short_open_tags są złą praktyką od wersji php 5.4,
<?= ... ?>
shorttag będzie obsługiwany wszędzie , niezależnie od ustawień, więc nie ma powodu, aby ich nie używać, jeśli możesz kontrolować ustawienia na serwerze. Powiedział także w tym linku: short_open_tagźródło
<? echo $var ?>
krótkim otwartym tagu, ale o<?= $var ?>
krótkim otwartym tagu. Afaik XML nie powinien mieć wpływu.<?=
jest szablonowanie i myślę, że jest to dość poprawne. Inne języki szablonów, takie jak wąsy, również używają krótkich prostych tagów{{var}}
. PHP jest często używany jako język szablonów, a jego robienie<?php echo $var ?>
jest o wiele brzydsze niż<?=$var?>
w wbudowanym HTML.Można to zrobić, włączając short_open_tag w php.ini:
1. Aby zlokalizować plik php.ini, w wierszu komentarza wykonaj
dostaniesz coś takiego,
Zobacz drugi wiersz z wyniku komentarza. Plik będzie we wspomnianej ścieżce.
2. Otwórz plik php.ini i znajdź
short_open_tag
. Domyślnieoff
zmienia się naon
.3. Uruchom ponownie serwer, wykonaj ten komentarz
Dzięki
źródło
Aby ustawić krótkie tagi do otwarcia ze skryptu instalacyjnego Vagrant na Ubuntu:
źródło
Widzę, że wszystkie powyższe odpowiedzi są tylko częściowo poprawne. W rzeczywistości wszystkie aplikacje PHP XXI wieku będą miały FastCGI Process Manager (php-fpm), więc po dodaniu php-info () do skryptu test.php i sprawdzeniu poprawnej ścieżki dla php.ini
WAŻNE: musisz ponownie uruchomić proces php-fpm, aby to zadziałało!
a następnie w końcu zrestartuj serwer nginx / http
źródło
musisz włączyć short_open_tags.
źródło
Tak proste, jak to, wykonaj następujące kroki:
php.ini
plikuZnajdź
short_open_tag
i ustaw naon
Uruchom ponownie serwer
źródło
W CentOS 6 (testowanym również na Centos 7) nie można ustawić short_open_tag w /etc/php.ini dla php-fpm. Będziesz miał błąd:
Musisz edytować config dla swojej witryny, który można znaleźć w /etc/php-fpm.d/www.conf I napisać na końcu pliku:
źródło
Jeśli używasz
Ubuntu
zApache+php5
, to w obecnych wersjach są 2 miejsca, w których musisz się zmienićshort_open_tag = On
/etc/php5/apache2/php.ini
- dotyczy stron ładowanych przez twój serwer WWW (Apache)/etc/php5/cli/php.ini
- ta konfiguracja jest używana podczas uruchamiania plików php z wiersza poleceń, takich jak:php yourscript.php
- dotyczy ręcznych lub cronjob wykonywanych plików php bezpośrednio na serwerze.źródło
jeśli edytujesz plik php.ini, pamiętaj o ponownym uruchomieniu usługi (apache2 itp.), aby zmiany wprowadzone w php.ini weszły w życie
źródło
Dla użytkowników Wamp Server jest łatwiejszy sposób: możesz włączyć to ustawienie po prostu (lewy) raz kliknąć ikonę WampServer, wybierz PHP -> Ustawienia PHP -> krótki otwarty tag. Poczekaj chwilę, a następnie WampServer automatycznie zrestartuje twój PHP, a także jego serwis internetowy.
Pierwotnie z: http://osticket.com/forums/showthread.php?t=3149
źródło
źródło
jeśli używasz xampp, zauważysz, że w pliku php.ini dwukrotnie wspomniano short_open_tag. Włącz drugi do short_open_tag = On. Pierwszy jest skomentowany i możesz ulec pokusie, aby anulować komentarz i edytować go, ale jest on przesłonięty przez drugi short_open_tag
źródło
Jeśli używasz xampp w Windows, wykonaj następujące czynności
Znajdź short_open_tag za pomocą narzędzia ctrl + f
Znajdziesz
;short_open_tag
uprzejmie usuń średnik (;) z wiersza.
i zachowaj to jako
short_open_tag = on
Na koniec zrestartuj serwer Apache
źródło
Aby włączyć short_open_tag dla konkretnej domeny z php-fpm, musisz edytować:
Gdzie xxxxx to numer gniazda domeny.
I dodaj: php_value [short_open_tag] = On
źródło
Działa to na php7.2 na Ubuntu 16, ta sama odpowiedź jak powyżej autorstwa Bradleya Flooda, chociaż katalog, w którym przechowywany jest plik konfiguracyjny, zmienił się.
Możesz także zmienić wersję w ciągu php, aby pasowała do aktualnie zainstalowanej wersji.
źródło
w
php.ini
i zrestartować Apache Server.źródło
Zmieniłem short_open_tag Off na On w moim aws centos 7 instance i php7 (PHP 7.0.33 (cli) (build: 6 grudnia 2018 22:30:44) (NTS)), ale nie odzwierciedla strony informacyjnej php i kod. Odsyłam więc może dokumenty i znajduję rozwiązanie w mojej sprawie. Dodaj dodatkową linię po short_open_tag jako asp_tags = On po tym zrestartuj Apache Działa na kodzie i poprawnie przesyłam dane wyjściowe
plik php.ini
źródło
Ustaw
asp_tags = On
ishort_open_tag = On
w obu plików\apache\Apache2.2.21\bin\php.ini
i\bin\php\php5.3.8\php.ini
, a następnie ponownie uruchom serwer apache.źródło