PHP не работает на Ubuntu 13.10, а mcrypt отсутствует в phpmyadmin


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?> чтобы работать?
Мухаммед

Я только что погуглил, и, кажется, короткие теги больше не активны по умолчанию. Вы можете включить его снова, но лучше всегда использовать <? Php
Whatts

заранее спасибо, но все же есть небольшая проблема, на некоторых из моих php-страниц я не знаю, в чем проблема, когда я пытаюсь загрузить эти страницы, просто отображается белая страница, я пытался включить сообщение об ошибке для php вверху страницы, но на странице ничего не отображается. Возможно, это не самое подходящее место, чтобы задать этот вопрос, но, поскольку я поднял этот вопрос, я спросил его снова. скажи мне, если ты мне понадобишь несколько кодов, спасибо.
Мухаммед

Полностью белая страница обычно означает отсутствие скобки или точки с запятой. Или вызов функции, которая не существует. Если у вас нет среды разработки программного обеспечения, которая могла бы вам помочь, попробуйте комментировать части вашего кода по одному блоку за раз (начинайте комментарии с / * и заканчивайте * /, все промежуточное закомментировано). Я обычно начинаю с примерно половины закомментированного кода, а затем пытаюсь отобразить, а затем всегда сужать, где находится ошибка).
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/, потому что они перестанут работать. В моем случае имап тоже перестал работать.

Решил проблему с помощью трюка с символьными ссылками (как 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

ваш путь не работает, это дает мне ошибку не существует ни imap, ни mcrypt, но то, что сказал @whatts, сработало для меня.
Мухаммед

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. перезагрузить 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. Перезагрузите ваш apache2 sudo service apache2 restart

Надеюсь это поможет.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.