PHP недостатньо працює на Ubuntu 13.10, а у phpmyadmin відсутній mcrypt


15

Я оновив з UBUNTU 13.04 до 13.10, але я не можу працювати зі сторінками PHP або phpmyadmin. Я спробував цей спосіб встановити лампу на Ubuntu , sudo apt-get install lamp-server^ phpmyadmin і я зробив все настройки правильно після установки я додав цей рядок , Include /etc/phpmyadmin/apache.confщоб /etc/apache2/apache2.confя перезапущений apache2

Зараз у мене є дві проблеми:

  1. У phpmyadmin внизу сторінки є ця помилка: The mcrypt extension is missing. Please check your PHP configuration я перевірив і mcryptбув у ній, але у phpmyadmin він дає мені помилку відсутності.

  2. Інша проблема полягає на сторінках PHP, здається, що PHP немає, і це все html, оскільки багато рядків PHP надруковано у текстовому полі, як: <? echo $row['details']; ?> Чи може хто-небудь сказати мені, що мені робити?

Відповіді:


48

Спробуйте це для вашої проблеми з mcrypt:

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

Це помилка з розташуванням файлу mcrypt.ini, я отримав інформацію звідси .

У мене була така ж помилка, я робив cpзамість цього, mvщоб бути впевненим, але це вирішило проблему.

Якщо PHP не працює, якщо phpmyadmin працює (навіть з помилкою mcrypt), це означає, що PHP працює (оскільки phpmyadmin використовує PHP). Але у вашому прикладі <? echo $row['details']; ?>перейти <?на <?phpта спробувати ще раз?


1
дякую, ваша відповідь вирішила всі мої питання. <? ?> вже не працює? у новій версії php? це має бути <? php?> для роботи?
Mohammad_Hosseini

Я просто гуглив це, і здається, короткі теги вже не активні за замовчуванням. Ви можете знову ввімкнути його, але найкраще використовувати завжди <? Php
Whatts

заздалегідь дякую, але все ж є проблема, на деяких моїх сторінках php я не знаю, в чому проблема, коли я намагаюся завантажити ці сторінки, показує лише білу ковдру, я спробував включити повідомлення про помилки для php вгорі сторінки, але все ще нічого не відображається на сторінці. це може бути не гарним місцем для того, щоб задати це питання, але оскільки я поставив це питання, я запитав ще раз. якщо вам потрібно, щоб я ставлю деякі коди тут, скажіть, дякую.
Mohammad_Hosseini

Повністю біла сторінка зазвичай означає відсутність дужки або крапку з комою. Або викликати функцію, яка не існує. Якщо у вас немає середовища розробки програмного забезпечення, яке може вам допомогти, спробуйте коментувати частини свого коду один блок за один раз (почніть коментарі з / * та закінчіть з * /, все між ними прокоментується). Я зазвичай починаю приблизно з половини коментованого коменту, а потім намагаюся відобразити, потім завжди звужуючись до місця помилки).
Whatts

3

Для другої проблеми з приводу того, що багато рядків PHP надруковано у текстовому полі: echo $row['details'];

Відредагуйте свій конфігураційний файл php.ini (для apache):

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

і змінити:

short_open_tag = Off

до:

short_open_tag = On

дивовижний посібник, дякую також вирішену проблему з білою сторінкою
Mohammad_Hosseini

1

Перевірте всі свої сценарії в /etc/php5/conf.d/, оскільки вони припинять роботу. У моєму випадку імап теж перестав працювати.

Вирішено проблему із символічним трюком посилання (як корінь):

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

ваш спосіб не працює, він дає мені помилку відсутності ні imap, ні mcrypt, але те, що сказав @whatts, працювало на мене.
Mohammad_Hosseini

1

(Я б опублікував це як коментар вище, але не маю привілеїв.)

Інтуїція Whatts використовувати cpзамість того, що mvбула корисною. Наприклад, якщо ви використовуєте рамки Laravel 4, то CLI ремісник виявить mcrypt.iniв /etc/php5/mods-available/, але сама структура , здається, шукати його в /etc/php5/conf.d/. Вам потрібна його копія в обох місцях, щоб усе працювало:

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

0

У терміналі ( Ctrl+ Alt+ T)

1.закрийте файл php.ini:

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

2.замініть на Вкл.:

short_open_tag = On

3.restart apache:

sudo service apache2 restart

0

Насправді правильне місце для файлу mcrypt.ini знаходиться в mods-availableкаталозі, не в conf.d. Отже, заміна та включення файлу конфігурації mcrypt вирішує цю проблему.


-1

У мене також виникли проблеми mcryptпісля встановлення Ubuntu 14.04. Перехід за цим посиланням повинен допомогти. www.php.net

  1. Відкрийте файл php.ini sudo gedit /etc/php5/apache2/php.ini
  2. Перезавантажте апаш2 sudo service apache2 restart

Сподіваюсь, це допомагає.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.