Почему php отображается в браузере как текст
Перейти к содержимому

Почему php отображается в браузере как текст

почему мои файлы php отображаются как обычный текст? [дубликат]

я писал php-приложения с использованием php некоторое время в wamp. Теперь я устанавливаю PHP & apache отдельно на моем рабочем ПК. Я установил PHP 5 и последний apache. Я иду на localhost и вижу это работает! теперь я добавляю файл под названием test.PHP, который отображает:

но в браузере он просто выводит обычный текст. Есть ли где-то, что я явно говорю ему использовать PHP5?

7 ответов:

вам нужно будет добавить это в конфигурацию вашего сервера:

это предполагает, что вы правильно установили php, что может быть не так, поскольку он не работает там, где обычно сразу после установки.

вполне возможно, что вам также придется добавить php so / dll в вашу конфигурацию apache с помощью

вы должны установить php5 lib для apache

для debian и ubuntu: apt-get install libapache2-mod-php5

и перезапустить apache service apache2 restart

вам нужно настроить Apache (веб-сервер) для обработки PHP-скриптов как PHP. Проверьте конфигурацию Apache, вам нужно загрузить модуль (путь может отличаться в вашей системе):

и Вам также нужно сказать Apache, что обрабатывать с PHP:

дополнительную информацию см. В документации.

еще одна причина (не для этого случая, но, возможно, это сэкономит кому-то нервы) заключается в том, что в php 5.5 короткие открытые теги <? phpinfo(); ?> по умолчанию отключены. Таким образом, интерпретатор php будет обрабатывать код в коротких тегах как простой текст. В предыдущих версиях php эта функция была включена по умолчанию. Так что новое поведение может быть немного загадочным.

вы также можете, как и я, установить php-cgi до установки Apache, и при этом он не настроил Apache правильно для запуска PHP, полностью удалив PHP и переустановив, казалось, исправил мою проблему.

вам нужно будет добавить обработчики в Apache для обработки php-кода.

редактировать командой sudo vi/etc/httpd/conf / httpd.conf

добавить эти два обработчика

в положении, указанном ниже

для получения более подробной информации о обработчиках AddType

http://httpd.apache.org/docs/2.2/mod/mod_mime.html

вы используете мод userdir?

в этом случае дело в том, что PHP5, кажется, отключает запуск скриптов из этого места по умолчанию, и вы должны прокомментировать следующие строки:

на /etc/apache2/mods-enabled/php5.conf (в системе ubuntu)

Браузер показывает php-код вместо результата его выполнения

Chrome код html читает. Но как начинается работа с php, браузер просто показывает скрипт, который я написал в редакторе. Я пытался ставить кавычки, " ‘", даже искал готовый вариант авторизации в интернете, но chrome просто показывает код программы. Помогите, пожалуйста!

user avatar

Чтобы работал PHP, нужно запустить локальный PHP-сервер, загрузить на него сайт, и заходить по ip этого сервера (http://localhost в случае локального сервера).

Это необходимо из за того, что вот HTML выполняется на стороне клиента (в браузере), а вот PHP команды обрабатываются на сервере, а в браузер отправляется уже готовый результат.

PHP скрипт открывается как текст и не выполняется. В чем причина?

Делаю для личного пользования небольшую программку, работающую в браузере, через HTML. Я немного знаком с HTML, но для нужных мне функций в программе хватает всяческих обучающих статей.
В одной папке лежат файлы: share.html, do_upload.php и папка image.

Делал по обучающей статье. Представляет собой форму для загрузки изображения, после нажатия «Отправить» — должен, по идее, выполняться PHP-скрипт. Вот его содержимое:

Читал на разных сайтах, что причина может быть в том, что нет PHP поддержки у сервера, но я пишу для личного пользования на одном компьютере, и никакой сервер мне не нужен. Еще где-то читал, что формат php файла должен быть назван верхним регистром — *.PHP
Менял это, но не сыграло никакой роли.

В чем причина того, что PHP скрипт не выполняется, а просто открывается, как в текстовом редакторе?

1c8e43012ba244fab1cf79ba5f76b061.png

  • Вопрос задан более трёх лет назад
  • 18842 просмотра

Оценить 2 комментария

  • Facebook
  • Вконтакте
  • Twitter

Проверил . Ничего не поменялось .

IvanCher

Вам нужно понимать, что происходит, когда запрос доходит до веб-сервера.

Сперва веб-сервер (обычно Apache или Nginx) получают запрос и принимают решение, что делать с ним дальше. Если нет правила для такого запроса, то они просто попытаются найти файл и отдать его, как статический. В вашем случае так и происходит. Часто веб-серверу пишут правило типа «если запрос заканчивается на .php, то передай его на исполнение php (mod-php, php-fpm, php-fastcgi и т.п.), а полученный от php ответ верни клиенту (браузеру, как правило)».

Я использую во время разработки встроенный php-веб-сервер, но не вздумайте его использовать на живом проекте. На реальном сервере с проектом лучше использовать nginx+php-fpm.
В unix-подобных системах встроенный пхп-веб-сервер запускается очень просто:
— Через консоль(терминал) заходите в папку с проектом и пишете «php -S localhost:8000».
— После этого в браузере заходите на урл localhost:8000 и Ваш проект работает.
Если Вы работаете на windows, то быстрее осваивайте линукс\mac и разрабатывайте сразу на нормальных системах. Или, как я раньше делал, на виртуалке поднимайте сервер и на нем разрабатывайте.

[nginx] Отображает php как текст

Стоят php, apache2 и nginx. html-странички отображаются, а php не обрабатывается — выдает plain text. Грешил на <?, но после замены на <?php ничего не изменилось. Потом сделал форвардинг на apache (proxy 127.0.0.1:9191), но он стал отображать www директорию (default hostname), а не site.com. А nginx отображал index из site.com.

Что с этим всем делать?

Это всё надо правильно настроить.

Больше ничего не сказать, так как ты не только не сказал что именно требуется, но даже свои конфиги не показал.

Плюсую. Мне кажется что он про FPHP и FCGI даже не слышал.
«Поставил» и надеится что всё сразу заработает. «Поставил» компилятор и ему сразу проект напишется.

Требуется работа php с nginx

user www-data;
worker_processes 1;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;

gzip on;
gzip_proxied any;
gzip_types text/plain text/html text/xml application/xml application/x-javascript text/javascript text/css text/json;
gzip_comp_level 3;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

# You may add here your
# server {
# .
# }
# statements for each of your virtual hosts

server {
listen 80;
server_name site.com;

location / {
# root /var/www/nginx-default;
root /home/nigga9432/www/site.com;
index index.html index.htm index.php;
}

* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /home/nigga9432/www/site.com;
index index.html index.htm index.php;
#access_log off;
#expires 30d;
}

# location /doc {
# root /usr/share;
# autoindex on;
# allow 127.0.0.1;
# deny all;
# }

# location /images {
# root /usr/share;
# autoindex on;
# }

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
# location

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location

\.php$ {
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#includefastcgi_params;
#}

# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
#location

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#listen 8000;
#listen somename:8080;
#server_name somename alias another.alias;

# HTTPS server
#
#server {
#listen 443;
#server_name localhost;

#ssl on;
#ssl_certificate cert.pem;
#ssl_certificate_key cert.key;

#ssl_protocols SSLv2 SSLv3 TLSv1;
#ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#ssl_prefer_server_ciphers on;

Про FastCGI слышал. Слышал, что с ним медленнее работает, чем с mod_php

ну создай отдельный локейшн для

.php и помести в него директиву proxy_pass http://localhost:9191/; , причем не забудь что documentroot апача должен смотреть в ту же директорию что и у нджинкса.

Про FastCGI слышал. Слышал, что с ним медленнее работает, чем с mod_php

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *