PHP 코드가 실행되지 않고 대신 코드가 페이지에 표시됩니다.
Dreamweaver에서 프로젝트를 통해 PHP 코드를 실행하려고하는데 코드가 실행되고 있지 않습니다.
소스 코드를 확인하면 PHP 코드가 HTML 태그로 나타납니다 (소스 코드에서 볼 수 있음). Apache가 제대로 실행 중입니다 (XAMPP로 작업 중) .PHP 페이지가 제대로 열리고 있지만 PHP 코드가 실행되고 있지 않습니다.
누군가 무슨 일이 일어나고 있는지에 대한 제안이 있습니까?
참고 : 파일 이름은 이미filename.php
편집 : 코드 .. :
<?
include_once("/code/configs.php");
?>
구성에 문제가있는 것 같습니다. 확인할 수있는 몇 가지 사항은 다음과 같습니다.
PHP가 제대로 설치되어 실행되고 있는지 확인하십시오. 어리석게 들릴지 모르지만 결코 알 수 없습니다. 확인하는 쉬운 방법
php -v
은 명령 줄에서 실행 하여 버전 정보 또는 오류를 반환하는지 확인하는 것입니다.PHP 모듈이 아파치 httpd.conf 안에 나열 되고 주석 해제 되어 있는지 확인하십시오. 이것은
LoadModule php5_module "c:/php/php5apache2_2.dll"
파일 과 유사해야 합니다. 을 검색 하고 앞에LoadModule php
주석 (;
) 이 없는지 확인하십시오 .Apache의 httpd.conf 파일에 PHP MIME 유형이 있는지 확인하십시오. 이것은 다음과 같아야
AddType application/x-httpd-php .php
합니다. 이것은 아파치에게.php
파일을 PHP 로 실행하도록 지시 합니다. AddType을 검색 한 다음 PHP에 대한 항목이 있고 주석 처리가 제거 되었는지 확인 하십시오 .파일의
.php
확장자가 3 번 지점의 MIME 정의에 지정된 확장자 인지 확인하십시오 . 그렇지 않으면 PHP로 실행되지 않습니다.PHP 파일 ( ) 에서 짧은 태그 를 사용하지 않는지 확인하십시오. 기본적 으로 모든 서버에서 활성화되지
<?
는 않으며 사용을 권장하지 않습니다. 사용<?php
하는 대신 (또는 php.ini 파일에서 짧은 태그를 사용 하여short_open_tag=On
당신이 그들에 의존하는 코드가있는 경우).http://localhost/file.php
로컬 파일 액세스가 아닌 URL을 사용하여 웹 서버를 통해 파일에 액세스하고 있는지 확인하십시오.file://localhost/www/file.php
마지막으로 추가 설정 정보 는 PHP 매뉴얼을 확인하십시오 .
php7 :
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
우분투에서 Apache를 실행 중이며 내 문제는 /etc/apache2/mods-available/php5.conf
파일에 다음이 누락되었다는 것입니다.
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
나는 그것을 다시 추가했고 PHP는 PHP 파일을 올바르게 구문 분석했습니다.
PHP 7 사용자의 경우 httpd.conf 파일에 다음을 추가하십시오.
# PHP 7 specific configuration
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
이 문제를 일으키는 다른 문제를 발견하고 이미 해결했습니다. 실수로 스크립트를 UTF-16
인코딩으로 저장했습니다 . PHP5는 <?php
기본적으로 16 비트 인코딩의 태그를 인식하지 못하는 것 같습니다 .
내 Virtualmin / Webmin 관리 인터페이스가 PHP 엔진을 비활성화하는 것이 좋은 생각이라고 결정했기 때문에이 답변을 게시하고 있습니다. 솔루션을 찾는 데 시간이 걸렸으므로 여러분과 공유 할 것이라고 생각했습니다.
또한이 특정 호스트 또는 가상 호스트와 관련된 웹 사이트 구성 파일에 다음과 같이 PHP를 끄는 php_admin_value가 없는지 확인하십시오.
php_admin_value engine Off
의심스러운 경우 의견을 말하십시오.
# php_admin_value engine Off
그리고 웹 서버를 다시 시작하십시오.
브라우저에서 PHP 파일을 여는 중입니다. localhost url을 사용하여 열어야합니다. 디렉토리에서 직접 파일을 열면 어떤 경우에도 PHP 코드가 실행되지 않습니다.
사용 : http://locahost/index.php
또는http:127.0.0.1/index.php
PHP 짧은 코드를 활성화하십시오. 귀하의 경우에는을 <?
위한 PHP 짧은 코드를 사용하고 <?php
있습니다. 기본적으로 PHP 단축 코드는 비활성화되어 있습니다.
또한 sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
우분투 사용자 인 경우 사용하십시오 .
어리석은 소리로 들리지만 ... 거의 발생하지 않습니다.
에서 PHP를 실행하려고하는지 확인하십시오.
**http://localhost/info.php**
에서하지
file:///var/www/info.php
ps> 셸에서 쓰면 알 수 있습니다.
php info.php
그것은 코드로 응답합니다 (php 함수를 의미합니다.)
이것은 처리하는 대신 html 파일을 다운로드하는 서버와 함께 다시 나에게 일어났습니다. 나는 컴퓨터에서 한동안 웹 서버 아파치를 사용하지 않았으며 우분투는 원래 설치된 LTS에서 두 가지 버전보다 더 업데이트되었습니다. 지금이야
$ cat /etc/issue
Ubuntu 16.04 LTS
그래서 PHP는 다음과 같이 작동했습니다.
$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart
웹 서버는 이제 PHP를 파싱했습니다. php7.0을 실행하기 전에 php5를 실행하기 전의 위치에서 php7.0 이후 일부 웹을 업데이트해야 할 수도 있습니다. 오 잘
XAMPP를 제거하고 WAMP를 설치하여이 문제를 해결했습니다. 도와 주셔서 감사합니다.
내 우분투 14.04, 아파치 2.4, PHP 5.5.9 설치에서 / var / www / html (기본 문서 루트)의 sample.php로 시도했지만 정상적으로 작동했습니다. 그래서 문제는 내 가상 서버 구성에있었습니다. 해결책은 .php를 포함하는 Directory def에 다음 행을 포함시키는 것입니다.
php_admin_flag engine on
High Sierra (OS X 10.13.5)와 함께 제공되는 PHP 7.1 에서이 문제에 직면 /etc/apache2/httpd.conf
하여 다음 변경 사항으로 편집 하면 도움이되었습니다.
이 줄의 주석을 해제하십시오
LoadModule php7_module libexec/apache2/libphp7.so
끝에 따라 붙여 넣기
<IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule>
나는 비슷한 문제가 있었지만 내 경우에는 해결책이 달랐다. 개최 PHP 코드가 호출되었음을 나타 내 파일 "somename.html는" 로 변경 "somename.php" 일을 잘
다음을 사용하여 PHP 용으로 설치 한 모든 패키지를 확인하십시오 .
yum list installed | grep remi
모든 관련 PHP 패키지, 특히 php-devel 을 컴퓨터에 설치하십시오.
이것은 내 .htaccess에있었습니다.
DirectoryIndex index.html index.htm
index.html에는 PHP 코드가 포함되어 있습니다. 기본적으로 PHP는 htm *와 같은 확장자를 가진 파일을 PHP 코드로 처리하지 않습니다.
.htaccess에 다음을 추가하여이를 무시할 수 있습니다.
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
PHP 7을 실행하는 LAMP를 새로 설정하려면 /etc/httpd/conf/httpd.conf 파일을 편집하십시오. 참고 : 변경하기 전에 백업해야합니다.
파일 맨 아래에 이것을 붙여 넣으십시오.
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
그런 다음 LoadModule을 검색하고 다음 줄을 붙여 넣습니다.
LoadModule php7_module modules/libphp7.so
이 줄은 단순히 httpd에게 PHP 7 모듈을로드하도록 요청합니다.
그런 다음 httpd를 다시 시작하십시오.
스크립트에 포함되어 있는지 확인하십시오
<?php
실행되어야 할 코드 앞에. 사이에는 공백이 없어야합니다 <?
및 php
이있다.
결과 대신 코드를 표시하는 문제는 로컬 호스트로 이동하지 않는다는 것입니다. 어떤 주소로 들어오는 지 다시 확인하십시오. 로컬 파일 디렉토리 또는 로컬 호스트로 이동합니다.
전송 된 스크린 샷에서 로컬 호스트가 아닌 컴퓨터로 보내집니다.
"file : ///" "localhost /"여야합니다.
mcrypt
모듈을 다시 설치하면 나에게 도움이되었습니다.
$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
실수로 루트에서 내 파일 디렉토리를 untar하기 시작한 경우가있었습니다. 내 파일 폴더에서 모든 PHP를 차단하는 .htaccess 파일을 추가했습니다.
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
결론은 루트에서 .htaccess 파일을 확인하십시오.
이와 같은 구성이있는 경우 :
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
httpd.conf에서 다음 줄 주석 해제
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
그것은 나를 위해 작동
AddType application/x-httpd-php .php
Apache 2.4를 사용중인 경우 httpd.conf 파일에 추가
Windows 10에서 PHP 5를 Apache 2.4와 함께 실행 하는 데 몇 시간을 보냈습니다 . 마지막으로 httpd.conf 의 오타였습니다 LoadModule
. denny2018의이 스레드에서 마지막 답변 을 통해 작성 및 정확한 모듈 경로에주의를 기울 이 십시오 . 감사합니다!
이틀 밤 후에 나는 발견했다 ... 나의 디렉토리는 쓰여졌다
c:
(소문자)
내가 가지고 LoadModule php5_module "c:/php/php5apache2.dll"
있지만 아파치 2.4에 대한 올바른이 있습니다 :
LoadModule php5_module "C:/php/php5apache2_4.dll"
그래서 나는 또한 _4
이전 ( 아파치 2.4 ) 을 놓쳤다 . 나를 위해 일한 전체 스 니펫 :
# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
방금 PHP 7을 시도했습니다 . 이 LoadModule
라인 을 httpd.conf 아파치 2.4 읽기
LoadModule php7_module "C:/php/php7apache2_4.dll"
현재 PHP 매뉴얼은 c:/php/php5apache2.dll
조정해야 할 과정을 보여줍니다 .
제 경우에는 (Apache / 2.4.34)
특정 모듈의 주석을 해제 한 후
"LoadModule php7_module libexec / apache2 / libphp7.so"
...에서
"/etc/apache2/httpd.conf"
내 문제는 사라졌다.
/ var / www / html /에 넣은 파일은 예제가 아닌 경우 .php for example example.php가 있어야하지만 작동하지 않지만 example.php로 변경하면 작동합니다.
우리가 같은 페이지에 있다면
sudo apt-get install php -y
sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y
Apache2에서 PHP 7.2 FPM을 활성화하려면 다음을 수행하십시오.
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
업데이트 2 : Apache가 렌더링 대신 .php 파일을 다운로드 함
그 후, 나는 위의 문제에 직면했다. 이와 비슷한 질문 이 있습니다.
왜 그런지 모르겠지만 /var/www/html/
루트 폴더의 .php 파일에서만 발생했습니다 . 하위 디렉토리에는 모든 것이 정상이었습니다. (예를 들어 워드 프레스와 phpmyadmin이 잘 작동했습니다)
그래서 여기 내 해결책이 있습니다. PHP 모듈을 사용하기로 결정했습니다. 그래서 나는이 명령을 실행했다 :
a2enmod php7.2
하지만이 오류가 발생했습니다 :
php7.2의 mpm_prefork 종속성 고려 : 충돌 고려 mpm_prefork의 mpm_event : 오류 : mpm_event 모듈이 사용 가능합니다. 충돌로 인해 진행할 수 없습니다. 먼저 비활성화해야합니다! mpm_prefork에 대한 mpm_worker 충돌 고려 : 오류 : php7.2에 대한 mpm_prefork 종속성을 사용할 수 없습니다.
그래서 다음 명령을 실행하여 mpm을 비활성화하기로 결정했습니다.
sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event
그런 다음 아파치를 다시 시작하십시오.
systemctl restart apache2
그런 다음 php7.2 (설치된 버전)를 활성화하십시오.
sudo a2enmod php7.2
지금은 모든 것이 잘 작동합니다.
'development' 카테고리의 다른 글
Ruby에서 조건부 연산자 (? :)를 어떻게 사용합니까? (0) | 2020.03.18 |
---|---|
소스를 보지 않고 GitHub에서 HTML 파일을 직접 실행할 수 있습니까? (0) | 2020.03.18 |
Vimeo에서 img 썸네일을 받으시겠습니까? (0) | 2020.03.18 |
Visual Studio에서 자동 줄 바꿈을 전환하는 방법은 무엇입니까? (0) | 2020.03.18 |
Groovy의 파일을 문자열로 읽는 방법은 무엇입니까? (0) | 2020.03.18 |