Вы также можете использовать функцию ini_set (только для версии PHP ниже 5.3):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
Как и в случае с @acme, в php 5.3 и выше это настройки являются директивами PHP_INI_PERDIR поэтому они не могут быть установлены с помощью ini_set. Вы можете использовать user.ini вместо этого.
Вы должны включить php! Проверьте папку mods-enabled
в каталоге Apache (по умолчанию: / etc / apache2 /), чтобы увидеть, найден ли файл с именем php
. Я не помню расширение, но я думаю, что это .so
.
Также проверьте var/log/apache2/error.log
, чтобы увидеть, есть ли у вас какие-либо ошибки.
ни одно из вышеприведенных применений или не работало для меня ... PHP7, Apache Httpd 2.2 на CentOS 6
факт, что я установлен (все с yum) php ПЕРЕД Апачем ... вы должны сделать reverse: всегда устанавливайте Apache сначала, затем PHP, а затем он работает ... Действительно, вы, вероятно, отсутствуете libphp7.so
и libphp7-zts.so
в /etc/httpd/modules/
Я смог восстановить все равно без UNinstalling PHP , Я добавил магическую линию в /etc/httpd/conf/httpd.conf
: AddType application/x-httpd-php .php
И затем запустил: yum install php php-mysql
откройте файл
/etc/apache2/httpd.conf
и измените
#LoadModule php5_module libexec/apache2/libphp5.so
на
LoadModule php5_module libexec/apache2/libphp5.so
. Так что просто не выполняйте Загрузка модуля PHP в httpd.conf
Вы можете удалить файл .htaceess и дать системе создать новый (пустой или базовый) файл. Возможно, некоторые строки, которые вы добавили, являются неправильными инструкциями или что-то еще внутри, вызывает проблему. Затем вы можете добавить строку за строкой из вашего старого файла .htaccess , чтобы узнать, что вызвало проблему.
Это сработало для меня. Линии, указывающие, что машина не отображает расширения php, были проблемой в моем случае ( RewriteCond и RewriteRule ). Мой старый файл .htaccess отлично работал на общем сервере, но эта проблема возникла, когда я переключился на VPS.
У меня была та же проблема. Когда я запускаю php-файл, веб-браузер показал мне PHP-код вместо его выполнения. Я много раз пробовал: удалять / переустанавливать wampserver64, работать с настройками / модулями PHP / Apache и т. Д. Через 2 дня: я понял, что когда я попытался запустить php-файл в блокноте ++, нажав комбинацию по умолчанию «ctrl + alt + shift + R "для хром. Он пытался выполнить мой php-файл, например: «file /// C: / wamp64 / www / bla / bla ..» в адресной строке chrome. Это была моя проблема. Я внес изменения в соответствии со страницей Настройка Notepad ++ для запуска php на localhost? . Моя проблема решена. Но через 2 дня ..
Хорошо, если вы пробовали то, что вам сказали выше или ранее (это возможные причины), и он по-прежнему отображает код вместо его выполнения, тогда есть одна вещь, которую вы делаете неправильно, которая не была устранена , URL-адрес, который вы использовали для доступа к вашему php-коду; некоторые люди пытаются выполнить свой php-код, просто перетащив файл .php в веб-браузер. это неправильная практика и может привести к этой проблеме. если вы сохранили файл как «test.php» в папке C: // wamp / www, вы должны получить доступ к этому файлу следующим образом: localhost: //test.php. такая ошибка возникает при доступе к ней следующим образом: localhost: //wamp/www/test.php
Надеюсь, я помог кому-то там. o / ~ Daniel
Спасибо другим за эту тему за их предложения. Следуя приведенным выше шагам, я обнаружил, что сервер Apache не смог начать сообщать о синтаксической ошибке в файле load
в /etc/apache2/mods-enabled
. Оказывается, что оба php7.0 и php7.1 были включены.
a2dismod php7.0
systemctl restart apache2
и php снова отображаются правильно.
Публикация того, что сработало для меня, в случае, если кто-то идет по дороге, хотя это необычный случай.
Я установил обработчик, чтобы заставить мой веб-хост использовать более высокую версию php, чем их по умолчанию. Там было 5.1, но я хотел 5.6, поэтому у меня было это:
<FilesMatch \.php$>
SetHandler php56-cgi
</FilesMatch>
в моем файле .htaccess.
При попытке запустить мой сайт локально, наличие в нем вызвало php код для вывода в браузер. Удаление этого решения проблемы.
Если вы являетесь пользователем ubuntu, после установки apache необходимо запустить следующую команду в новой установке
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
В моем случае это нормально.
Ничего себе, здесь много решений! Вот что я сделал на Ubuntu 16.04:
sudo apt-get install php libapache2-mod-php
sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo service apache2 restart
Запустите Xampp (apache) в качестве администратора. В google chrome type:
localhost/<insert folder name here>/<insert file name>
i.e. если созданная папка «LearnPhp», файл «chapter1.php», тогда введите
localhost/LearnPhp/chapter1.php
Я создал эту папку в папке xampp в папке htdocs, которая создается когда вы загружаете xampp.
Решение Debian 9:
touch /etc/apache2/conf-available/php.conf
Добавить в файл следующие строки:
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
Затем запустите:
a2enconf php && service apache2 restart
Что сработало для меня:
В активном httpd.conf найти
<IfModule mime_module>
...
</IfModule>
Отсутствует следующее
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
После перезапуска apache , .php правильно разбираются.
Это происходило со мной и при запуске $ _POST в MAMP. Все мои файлы .ini и httpd были настроены правильно. Если вы выполняете обработку формы, и у вас есть html-документ и размещаете информацию в обработчике php form, работающем под $ POST, убедитесь, что вы запускаете html-файл с localhost через ваш сервер, а не только локально.
Это был ярлык, который я сделал для запуска html-документов, просто нажав html-файл в моем каталоге и запустив в своем веб-браузере, когда на самом деле, чтобы проверить, обрабатывается ли php в вашей форме, вы должны запустите html через свои серверы.
Неверно: file:///Applications/MAMP/htdocs/form/form.html
Вправо: http://localhost:your port number/form/form.html
Теперь php следует обработать, как только вы нажмете кнопку отправки
Для PHP 7 (может также применяться и к предыдущим версиям), но я должен был сделать это:
Добавьте это к нижней части /etc/apache2/apache2.conf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Запустите это с терминала:
sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7
Затем не забудьте перезапустить Apache, чтобы он знал, что вы изменили материал:
sudo service apache2 restart
Это сводка из : https://www.atlantic.net/community/howto/try-php7-lamp-ubuntu-14-04/
Другой ответ, который сработал для меня. Это значит, что для установки [sudo] apt-get install libapache2-mod-php5.X
У меня была та же проблема, вызванная конфигурацией по умолчанию модуля Debian / Ubuntu suphp
. Он содержал suPHP_Engine off
для целых / usr / share, что привело к тому, что источники php отображались в браузере. Дезактивация с a2dismod suphp
была промежуточным решением.
, если модуль userdir включен и ваш сайт находится в userdir (~ / public_html), вы должны проверить /etc/apache2/mods-enabled/php5.conf. Следующая часть делает работу (на Ubuntu 14.10 utopic):
# Running PHP scripts in user directories is disabled by default
#
# 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.
# <IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
# </IfModule>