из руководства PHP:
str_replace - заменить все вхождения строки поиска на заменяющую строку
blockquote>. Я бы спустил этот маршрут, а затем конвертировать из строки в float - floatval
Правильный AddType для php - application / x-httpd-php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Также убедитесь, что ваш php-модуль загружен
LoadModule php5_module modules/mod_php55.so
Когда вы настраиваете apache затем попытайтесь просмотреть страницу с помощью другого браузера. - у меня были дни, когда хром упорно кэширует результат и сохраняет загрузку исходного кода в то время как в другом браузере, это просто прекрасно
Если ни одно из вышеприведенных действий не работает,
попробуйте прокомментировать строку
SetHandler ....
и перезапустить apache с помощью
/etc/init.d/httpd restart
Это должно сработать!
У меня ранее была аналогичная проблема после обновления с 5.3 до 5.4. Но моя настройка выглядит немного по-другому, так как я запускаю Debian и использую fcgid для сервера PHP-страниц, а не модуль PHP5 apache / cgi. Поэтому после того, как я обновил его, он также установил php5_cgi, который столкнулся с моей установкой fcgid и больше не будет выполнять файлы PHP.
Мне пришлось отключить модуль Apache и перезапустить Apache
a2dismod php5_cgi
/etc/init.d/apache2 restart
После того, как модуль php5_cgi был в стороне, fcgid снова смог обслуживать страницы PHP.
У меня была эта проблема. Оказалось, что у меня установлены как nginx, так и apache и автоматически запускаются при загрузке. Проблема заключалась в том, что nginx связывался с первым портом http, из-за которого apache не запускался.
Также возможно, что у вас запущен nginx, но ваш php настроен для работы с apache. Чтобы проверить, запустите service nginx status
и service apache2 status
, чтобы увидеть, что работает. В случае, когда nginx запущен, а apache - нет, просто запустите sudo service nginx stop; sudo service apache2 start
, и ваш сервер теперь будет обслуживать php-файлы, как ожидалось.
У меня такая проблема. Вот как я его решаю. После установки Apache я установил PHP с помощью этой команды.
sudo apt-get install php libapache2-mod-php
он выполняется правильно, но я запрашиваю файл .php из Apache, он дает без выполнения PHP-скрипта.
Тогда я check PHP включен.
$ cd /etc/apache2
$ ls -l mods-*/*php*
, но он не показал никаких результатов. Я проверяю установленные пакеты PHP.
$ dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
Различные версии PHP-версий, установленные на моем компьютере. Затем я удаляю некоторые пакеты PHP из моего предыдущего списка, используя apt-get purge.
sudo apt-get purge libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-common php7.0-json
Я переустанавливаю PHP
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
Убедитесь, что модуль PHP загружен
$ a2query -m php7.0
, если не включено:
$ sudo a2enmod php7.0
Перезапустить сервер Apache
$ sudo systemctl restart apache2
Наконец, я проверяю процесс PHP на Apache
создать пустой файл
sudo vim /var/www/html/info.php
Добавить этот контент в info.php & amp; save
<?php
phpinfo();
?>
Проверить браузер:
он показывает правильно. Я думаю, что это поможет кому угодно.
Я провел два дня, отслеживая это, и выяснил, что я помещал свои PHP-скрипты в неправильный каталог.
В моей стандартной установке Ubuntu я помещал скрипты в /var/www
. Они должны были быть в /var/www/html
.
Я только что начал работу с PHP, поэтому не знаю, связано ли мое решение с изменением версии.
Сегодня я столкнулся с этой проблемой, и ни одно из описанных решений не сработало для меня. Итак, вот еще одна возможная причина:
Если у вас есть что-то вроде
AddHandler x-mapp-php6 .php3 .php4 .php .phtml
в файле .htaccess
папки вашего веб-содержимого, это может привести к тому, что ваши скрипты PHP перестанут работать , В моем случае сервер не знал тип x-mapp-php6
, так как этот файл .htaccess
был чем-то импортированным с другого веб-хоста, когда я передал содержимое веб-сайта.
Просто удалив строку AddHandler
из файла .htaccess
решил это для меня.
AddHandler application/x-httpd-php54 .php54 .php
, которое нужно было удалить.
– Old McStopher
23 June 2014 в 04:50
У меня такая же проблема. Apache не загружает php-файлы с определенного веб-сайта, просто скачал его. Я прочитал этот пост и ответы, и я видел, что у меня есть эта строка в последнем месте файла .htaccess:
AddHandler x-mapp-php5.5 .php
Я прокомментировал это, и все работает нормально.
Спасибо всем !!!
это решило проблему для меня (у меня установлен php7):
sudo apt-get install libapache2-mod-php7.0
sudo service apache2 restart
Если кто-то использует php7 в среде Linux
Убедитесь, что вы включили php7
sudo a2enmod php7
Перезапустите службу mysql и Apache
sudo systemctl restart mysql
sudo systemctl restart apache2
Это может происходить из-за недостающих модулей, необходимых для вашего php. Предполагая, что у вас установлен php7, найдите доступные модули php7, используя
sudo apt-cache search php7-*
. Команда Above отобразит все доступные модули PHP7 для установки. Вы можете начать установку модулей, таких как
sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json
У меня были похожие симптомы, но еще одно решение: в файле /etc/apache2/mods-enabled/php5.conf в комментарии был полезный совет, который я использовал:
BLOCKQUOTE># To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it.
PHP56
vim /etc/httpd/conf/httpd.conf
LoadModule php5_module libexec/apache/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Пожалуйста, взгляните на свои директивы addtype.
Мне кажется, что Apache сообщает браузеру, что он отправляет тип документа application / php для скриптов с расширениями, например .php5. На самом деле Apache должен сообщить браузеру, что сценарий выводит текст / html.
Пожалуйста, попробуйте следующее:
AddType text/html .php
Что касается вышеприведенного предложения, вы должны сообщить браузеру, что вы выводите скрипт PHP: для меня это показалось необычной идеей. Я искал ее и обнаружил, что в Интернете довольно много обсуждений. По-видимому, есть случаи, когда вы можете сказать, что вы отправляете скрипт PHP (хотя Apache должен выполнять скрипт и испускать текст / html), а также есть случаи, когда браузер просто не распознает эту конкретную Mime Тип.
Удаление кеша браузера всегда является хорошей идеей.
В случае, если это полезно, это копия моего файла /etc/httpd/conf.d/php.conf с сервера, на котором выполняется CentOS 5.9:
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
У меня была аналогичная проблема с OP при обновлении php5 из старой версии, до версии 5.5.9, которая является версией, установленной с Mint 17.
Я запускаю настройку LAMP на машине в моей локальной сети, которую я использую для предварительного просмотра изменений на веб-сайтах, прежде чем я загружу эти изменения на реальный сервер. Таким образом, я поддерживаю идеальное локальное зеркало фактического сайта.
После обновления файлы, которые запускаются и отображаются отлично на фактическом сайте, не будут отображаться или будут отображаться только на html на локальном компьютере. PHP не анализировался. Команда phpinfo () работала, поэтому я знал, что php работает иначе. В журнале не было ошибок. Просмотр источника страницы показал мне фактический код php.
Я построил страницу test.php, содержащую следующий код:
<?php
phpinfo();
?>
работал. Затем я обнаружил, что когда я изменил <?php
на <?
, команда больше не работала. Все мои php-сайты используют <?
вместо <?php
, которые могут быть не идеальными, но это реальность. Я исправил проблему, перейдя в / etc / php5 / apache2, выполнив поиск «short_open_tag» и изменив значение с «Выкл.» На «Вкл.».
Если ваш .htaccess имеет что-то подобное
AddType application/x-httpd-ea-php56 .php .php5 .phtm .html .htm
Если у вашего .htaccess есть что-то вроде этого ... AddHandler application / x-httpd-php53 .php .php5 .php4 .php3, то прокомментируйте его и повторите попытку обновления, это сработало для меня ...
Хорошо ... Я знаю, что на эти вопросы уже есть 1.000.000 ответов, но я потратил не менее 6 эффективных часов, выяснив это; и я искал его сотни раз и не нашел ни одной записи об этом. Поэтому я подумал, что добавлю решение своей проблемы здесь.
Если я прокомментировал эти две строки в моих .conf-файлах в файле /etc/apache2/[[SERVER-NAME].conf
:
php_admin_value engine Off
IPCComTimeout 31
, у меня нет идеи, что они делают или как они туда попали, - но он находится в каждом из моих .conf
-файлов. И если я удалю эти строки и , убедитесь, что в /etc/apache2/sites-enabled/
-палочке есть символическая ссылка , тогда она не загружает index.php - и все работает так, как должно.
У меня VirtualMin установлен на Ubuntu 16.04 VPS. Я обновился до версии PHP 7.2. Вскоре после этого я обновил версию Ubuntu и ударил ошибку «Смещение ядра: отключено». Поэтому мне пришлось удалить последнюю версию Ubuntu, и когда моя ОС снова загрузится: BOOM! Я получил ошибку, о которой говорит его пост: для каждого сайта на моем VPS он просто загружал index.php, а не показывал его.
Я пробовал всевозможные вещи:
a2enmod [MODULE_NAME]
. И я нашел имя модуля Googling. Мне пришлось активировать около 6-8 модулей, прежде чем я прошел этот этап проверки - и потребовалось несколько минут до того, как закончился кеш, - так что это был утомительный шаг.