• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

AWS - Nie działa nullable return i argument

Object Storage Arubacloud
+1 głos
307 wizyt
pytanie zadane 27 czerwca 2018 w PHP przez User007 Bywalec (2,400 p.)

Witam.

Chciałem postawić apkę laravel z lokalnego serwera na VPS w Amazonie. Ale po uruchomieniu jedynie co widzę to pustą stronę a w logach mam błędy składni jak poniższe.

Moja wersja php na serwerze to: "PHP 7.2.7-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jun 22 2018 08:44:50) ( NTS )"

[Wed Jun 27 11:02:55.003796 2018] [:error] [pid 12521] [client 2.120.207.3:49935] PHP Parse error:  syntax error, unexpected '?' in /var/www/html/test/vendor/symfony/http-foundation/Response.php on line 491
[Wed Jun 27 11:02:55.003822 2018] [:error] [pid 12521] [client 2.120.207.3:49935] PHP Fatal error:  Exception thrown without a stack frame in Unknown on line 0
[Wed Jun 27 10:57:59.602396 2018] [:error] [pid 12521] [client 2.120.207.3:49524] PHP Parse error:  syntax error, unexpected '?', expecting variable (T_VARIABLE) in /var/www/html/test/app/Helpers/customHelper.php on line 138

Czyli wskazuje na wiersze takie jak:

public function getCharset(): ?string
function trimText(?string $text, int $maxCharNum, string $end) : ?string

Więc co jest grane? Należy jakiś moduł zainstalować na serwerze?

2 odpowiedzi

0 głosów
odpowiedź 27 czerwca 2018 przez Chess Szeryf (76,710 p.)
wybrane 27 czerwca 2018 przez User007
 
Najlepsza

Spróbuj zainstalować libapache2.

Może wy'escape'uj znaki zapytania w kodzie, napisz tak: \?string.

Możliwe też, że masz złe kodowanie strony.

http://forum.php.pl/index.php?showtopic=260870&hl=

https://en.wikipedia.org/wiki/List_of_Apache_modules

komentarz 27 czerwca 2018 przez User007 Bywalec (2,400 p.)

libapache2 jest zainstalowany. Co do escapejowania to chyba nie tędy droga. Nie będę przecież w plikach "vendora" grzebał. Po drugie to na localu działa, na współdzielonym serwisie też dział "wersja php 7.2" więc co jest grane?

Kodowanie mam ustawione na UTF-8.

Sam plik startowy "index.php" mi załącza bo sprawdzałem. I dopiero potem sypie w/w błędem.

 

komentarz 27 czerwca 2018 przez Chess Szeryf (76,710 p.)

Ustaw kodowanie na UTF-8 bez BOM (UTF-8 without BOM) oraz na samym początku w linii 0, napisz to:

<?php
header('Content-type: text/html; charset=utf-8');
?>

https://www.w3.org/International/articles/http-charset/index

komentarz 27 czerwca 2018 przez User007 Bywalec (2,400 p.)
Miałem tak ustawione. A dopisanie tego to nic nie dało.
komentarz 27 czerwca 2018 przez Chess Szeryf (76,710 p.)
edycja 27 czerwca 2018 przez Chess

Najprawdopodobniej coś źle skonfigurowałeś i/lub zainstalowałeś. Wpisz polecenie:

[ec2-user ~]$ sudo yum search "find"

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/find-software.html

i doinstaluj brakujący moduł/zestaw. Szukaj najpierw tych podstawowych ustawień, czyli "like apache | nginx or laravel", itd..; a później tych innych, których być może nie masz.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html

GitHub, GitHub.

Cytat z GitHub'a:

I'd probably make sure you truly have PHP 7.0 installed.

Make a dummy file and put <?php phpinfo(); in it. Look for the PHP version and make sure 7.0 is really there.

Utwórz pusty plik i wpisz tam polecenie:

<?php phpinfo(); ?>

i sprawdź wersję PHP, zainstalowane komponenty, itp..

komentarz 27 czerwca 2018 przez User007 Bywalec (2,400 p.)

Miałeś rację. Według php info mam:

PHP Version 7.0.30-1+ubuntu16.04.1+deb.sury.org+1

I nawiązując do wypowiedzi Ehlert (który też miał rację) co mam zrobić aby faktyczna wersja była wersją 7.2?

I druga sprawa. Nie mam "yum" tylko "apt-get" i powyższe polecenie nie działa.

komentarz 27 czerwca 2018 przez Chess Szeryf (76,710 p.)
edycja 27 czerwca 2018 przez Chess

Link1, link2, link3, link4, link5.

https://github.com/aws/aws-sdk-php

Sprawdź, czy rzeczywiście masz zainstalowaną wersję 7.2.x, a nie 7.0.x.

Z'upgrade'uj wersję na nowszą:

https://forums.aws.amazon.com/thread.jspa?messageID=836677&tstart=0

To install php-7.2 with amazon-linux-extras, run:

sudo amazon-linux-extras install php7.2

komentarz 27 czerwca 2018 przez User007 Bywalec (2,400 p.)
Serio, tylko z automatu jest opcja?
komentarz 27 czerwca 2018 przez User007 Bywalec (2,400 p.)

Dobra. Załatwiłem sprawę całkowicie usuwając zainstalowanego php. I instalując od razu wersję 7.2. Według tego przewodnika :https://thishosting.rocks/install-php-on-ubuntu/

Wcześniej robiłem według innego przewodnika i tam pierwsze była instalacja 7.0. Dlatego pewnie finalnie zainstalowały się dwie wersje.

Powinno być teraz ok więc postawię apkę od zera raz jeszcze.

Dziękuję za pomoc.

komentarz 27 czerwca 2018 przez Chess Szeryf (76,710 p.)
https://forums.aws.amazon.com/thread.jspa?threadID=248925

https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

Może zrób jakieś przekierowania, jeśli chcesz mieć dwie wersje PHP, ale widzę że rozwiązałeś sprawę i chcesz mieć jedną wersję.
0 głosów
odpowiedź 27 czerwca 2018 przez Ehlert Ekspert (212,670 p.)

Jeśli korzystasz z serwera http to robi on redirect req na PHP-FPMa. Bardzo prawdopodobne że jego wersja to zupełnie coś innego niż php - v. 

komentarz 27 czerwca 2018 przez User007 Bywalec (2,400 p.)
Mogę trochę jaśniej prosić? Bo to po raz pierwszy jak coś na vps robię i nie bardzo rozumiem co napisałeś.
komentarz 27 czerwca 2018 przez Chess Szeryf (76,710 p.)

@Ehlert'owi chyba chodzi o to, że chyba następuje przekierowanie czy coś takiego na inną wersję PHP, czy coś w tym stylu, więc odwołujesz się nie do tych komponentów/oprogramowania co byś chciał.

Podobne pytania

+1 głos
1 odpowiedź 279 wizyt
pytanie zadane 18 kwietnia 2021 w JavaScript przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
0 odpowiedzi 141 wizyt
0 głosów
1 odpowiedź 176 wizyt

92,575 zapytań

141,424 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...