PHP nie działa dobrze na Ubuntu 13.10, aw phpmyadmin brakuje mcrypt


15

Uaktualniłem z UBUNTU 13.04 do 13.10, ale nie mogę pracować ze stronami PHP lub phpmyadmin. Próbowałem w ten sposób, aby zainstalować lampę na Ubuntu sudo apt-get install lamp-server^ phpmyadmin i robiłem wszystko od konfiguracji poprawnie po instalacji Dodałem tę linię Include /etc/phpmyadmin/apache.conf, aby /etc/apache2/apache2.confpotem wznowiona apache2

Teraz mam dwa problemy:

  1. W phpmyadmin na dole strony jest ten błąd: The mcrypt extension is missing. Please check your PHP configuration sprawdziłem i mcryptbyłem w nim, ale w phpmyadmin daje mi błąd braku.

  2. Drugi problem polega na tym, że na stronach PHP wydaje się, że nie ma PHP i wszystko jest w formacie HTML, ponieważ wiele linii PHP jest drukowanych w polach tekstowych, takich jak: <? echo $row['details']; ?> Czy ktoś może mi powiedzieć, co mam zrobić?

Odpowiedzi:


48

Wypróbuj to dla swojego problemu z mcrypt:

mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart

To jest błąd z lokalizacją pliku mcrypt.ini, mam informacje stąd .

Miałem ten sam błąd, cpzamiast tego zrobiłem zamiast mv, ale to rozwiązało problem.

Jeśli PHP nie działa, jeśli uruchomisz phpmyadmin (nawet z błędem mcrypt), oznacza to, że PHP działa (ponieważ phpmyadmin używa PHP). Ale w swojej przykład <? echo $row['details']; ?>zmian <?do <?phpi spróbować jeszcze raz?


1
dziękuję, twoja odpowiedź rozwiązała wszystkie moje problemy. <? ?> już nie działa? w nowszej wersji php? to musi być <? php?> do pracy?
Mohammad_Hosseini

Właśnie go przejrzałem i wydaje się, że krótkie tagi nie są już domyślnie aktywne. Możesz go ponownie włączyć, ale najlepszą praktyką jest zawsze używanie <? Php
Whatts

z góry dziękuję, ale wciąż jest trochę problemu, na niektórych moich stronach php nie wiem na czym polega problem, kiedy próbuję załadować te strony, wyświetla się tylko biała strona kocowa, próbowałem włączyć raportowanie błędów dla php na górze strony, ale nadal nic nie pokazuje na stronie. to może nie być dobre miejsce do zadawania tego pytania, ale skoro przyniosłem ten problem, zadałem to pytanie ponownie. jeśli potrzebujesz, żebym tu umieścił niektóre kody, powiedz mi, dzięki.
Mohammad_Hosseini

Całkowicie biała strona zwykle oznacza brak nawiasu lub średnika. Lub wywoływanie funkcji, która nie istnieje. Jeśli nie masz środowiska programistycznego, które mogłoby ci pomóc, spróbuj komentować fragmenty kodu po jednym bloku na raz (zacznij komentarze od / * i zakończ * *, wszystko pomiędzy jest komentowane). Zwykle zaczynam od skomentowania około połowy kodu, a następnie próbuję wyświetlić, a następnie zawsze zawężam do miejsca, w którym występuje błąd).
Whatts,

3

W przypadku drugiego problemu, wiele linii PHP jest drukowanych w polach tekstowych, takich jak: echo $row['details'];

Edytuj plik konfiguracyjny php.ini (dla apache):

sudo nano -w /etc/php5/apache2/php.ini

i zmień:

short_open_tag = Off

do:

short_open_tag = On

świetny przewodnik, dzięki rozwiązał również problem z białą stroną
Mohammad_Hosseini

1

Sprawdź wszystkie skrypty w /etc/php5/conf.d/, ponieważ przestały działać. W moim przypadku imap również przestał działać.

Rozwiązany problem z trikiem dowiązania symbolicznego (jako root):

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
php5enmod mcrypt
ln -s /etc/php5/conf.d/imap.ini /etc/php5/mods-available/imap.ini
php5enmod imap
service apache2 restart

twój sposób nie działa, to daje mi błąd nieistnienia ani imap, ani mcrypt, ale to, co powiedział @whatts, działało dla mnie.
Mohammad_Hosseini

1

(Chciałbym zamieścić to jako komentarz powyżej, ale nie mam uprawnień.)

Intuicja Whattsa do użycia cpzamiast mvbyła dobra. Na przykład, jeśli używasz ramy laravel 4, CLI rzemieślnik wykryje mcrypt.inisię /etc/php5/mods-available/, ale sama struktura wydaje się szukać w /etc/php5/conf.d/. Potrzebujesz kopii w obu lokalizacjach, aby wszystko działało:

cp -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart

0

W terminalu ( Ctrl+ Alt+ T)

1. otwórz plik php.ini:

/etc/php5/apache2$sudo nano php.ini

2. zamienić Wyłącz na Włączone:

short_open_tag = On

3. uruchom ponownie apache:

sudo service apache2 restart

0

Właściwie właściwym miejscem dla pliku mcrypt.ini jest mods-availablekatalog, którego nie ma conf.d. Zastąpienie i włączenie pliku konfiguracyjnego mcrypt rozwiązuje ten problem.


-1

Miałem również problem z mcryptzainstalowaniem Ubuntu 14.04. Podążanie za tym linkiem powinno pomóc. www.php.net

  1. Otwórz plik php.ini sudo gedit /etc/php5/apache2/php.ini
  2. Uruchom ponownie apache2 sudo service apache2 restart

Mam nadzieję że to pomoże.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.