Polecenie uruchamijące plik symfony zwraca błąd

0

Chcę sobie trochę przetestować symfony więc chciałem utworzyć nowy projekt więc uruchomiłem w katalogu /usr/local/bin plik symfony, ale dostałem błąd o takiej treści.

Fatal error: Uncaught PharException: zlib extension is required for gz compressed .phar file "/usr/local/bin/symfony" in /usr/local/bin/symfony:9
Stack trace:
#0 /usr/local/bin/symfony(9): Phar::mapPhar('default.phar')
#1 {main}
  thrown in /usr/local/bin/symfony on line 9
 
0

Zrestartowałem serwer.

0

To sprawdź w phpinfo() czy dobry php.ini edytujesz, a jeżeli tak to w logach czy nie ma jakichś błędów ładowania rozszerzenia. przy okazji w phpinfo() sprawdzisz też załadowane rozszerzenia.

0

Dobry plik konfiguracyjny edytuje.

gdybyś miał widoczne w php.ini, a by nie działało, sprawdź jeszcze: var_dump(function_exists('gzopen'));

bool(true)

0

I nadal masz błąd? To niemożliwe, bo gzopen jest metodą z rozszerzenia zlib. Robisz tego dump'a w tym samym pliku?

0

Tego dumpa robię po stronie serwera(www), a symfony uruchamiam w konsoli.

0

No czyli odpalasz php-cli i php-fpm(czy co tam masz). 2 różne php.ini. Odpal sobie w konsoli

php --ini

i zobaczysz, który php.ini musisz edytować.

0

To polecenie zwróciło

 Configuration File (php.ini) Path: /usr/local/lib

Nie ma tam pliku php.ini

Dodam, że mam jeszcze drugą wersje php zainstalowaną ze żródeł a mianowicie php 7 więc nie wiem z jakiej wersji php korzysta symfony więć podejrzałem plik symfony tam jest taka ścieżka

#!/usr/bin/env php

Więc korzysta z chyba php 5 chyli tej /usr

I wydałem takie polecenie

./env php --ini

Configuration File (php.ini) Path: /usr/local/lib

I znowu informacje, że korzysta z tego katalogu tylko tam nie ma pliku php.ini

0

Dla potwierdzenia możesz sobie odpalić which -a php, żeby zobaczyć jaki jest odpalany.

Ok czyli coś źle skompilowałeś. Spróbuj czy kopia php.ini, tego który działa do tego folderu pomoże. Jeżeli nie to musisz jeszcze raz skompilować (koniecznie daj make clean) PHP z tą opcją --with-config-file-path=ścieżka . Powinno chyba zadziałać, ale nie jestem pewien. Tak ogólnie nie wiem jakiego systemu używasz, ale jeśli debian'opochodne, to PHP7 masz dostępny w repozytoriach dotdeb (https://www.dotdeb.org/), bez bawienia się w kompilowanie.

0

Dla potwierdzenia możesz sobie odpalić which -a php, żeby zobaczyć jaki jest odpalany.

Z tego polecenia wynika, że są dwa uruchomione

/usr/local/bin/php
/usr/bin/php
 

A teraz takie pytanie co można zrobić, żeby symfony zmusić do odpalenia z php 5 bo z tego php 7 chyba nic nie będzie, bo zauważyłem, że jak skopiowałem plik php.ini do tego katalogu to mi symfony trochę więcej błędów drukuje więc wolę się w php 7 nie bawić.

0

Trochę namotałeś i nie wiem czy to wszystko zadziała jak powinno skoro się dwa procesy php uruchamiają. Ale spróbuj po prostu ustawić alias php na tę wersję którą chcesz mieć. EDIT: Jeśli odpalasz php app/console oczywiście. Jak robisz samo app/console to odpali Ci się to co już wkleiłeś z 1. linijki pliku console, więc wtedy tam edytuj wersję, która ma się odpalić.

0

Po wydaniu polecenia php powinna się uruchamiać wersja php 5, a uruchamia się php 7 jak ręcznie uruchomię plik /usr/bin/php to uruchamia się wersja php 5, natamiast po wydaniu polecenia env php uruchamia się php 7 to jest dziwne bo to nie jest w katalogu local no i teraz nie wiem jak zmienić ten plik env bo może być używany gdzieś głębiej w php.

0

No dobra, czyli edytuj plik console i 1. linijka niech wygląda dokładnie tak:

#!/usr/bin/php

Wtedy jak odpalisz app/console czy tam console jak jesteś już w folderze app, to będziesz miał tak jakbyś ręcznie uruchomił PHP5. Tylko to jest takie załatanie problemu, koniec końców musisz sobie ogarnąć ten serwer.

0

Po tej zmianie dostaje następny błąd.

PHP Fatal error:  Uncaught exception 'PharException' with message 'phar "/usr/local/bin/symfony" SHA1 signature could not be verified: broken signature' in /usr/local/bin/symfony:9
Stack trace:
#0 /usr/local/bin/symfony(9): Phar::mapPhar('default.phar')
#1 {main}
  thrown in /usr/local/bin/symfony on line 9

 
1

Ahh dobra, to jest instalator nie zauważyłem (czemu nie krzyczałeś, że edytujesz plik symfony a nie żaden console), czyli nie możesz zmieniać jego treści, bo się hash nie zgadza wtedy i dostajesz ten błąd. Przywróć poprzedni plik koniecznie. To musisz powalczyć z tym env i tam ustawić odpowiednią wartość, co też jest rozwiązaniem łatającym. Ogarnij serwer, wywal PHP7, albo ustaw 2 wersje PHP, ale tak jak powinno być, nie mogą się odpalać 2 jednocześnie.

0

Teraz działa dzięki, ale pliku mojego projektu utworzył mi w katalogu /usr/loca/bin, a chyba powinien w katalogu apacha.

1 użytkowników online, w tym zalogowanych: 0, gości: 1