16.04로 업그레이드하십시오. php7이 브라우저에서 작동하지 않습니다 16.04로 업그레이드했으며 아파치에서 PHP 7을

방금 14.10에서 16.04로 업그레이드했으며 아파치에서 PHP 7을 구성하는 방법을 모르겠습니다. php7.0.conf 파일을 수정하여 마지막 행의 주석을 해제하고 apache2를 다시 시작했으며 변경하지 않았습니다.

PHP를 허용하기 위해 apache2 설정을 변경해야합니까?

PHP는 명령 줄에서 작동하므로 PHP가 올바르게 설치되어 있습니다.

또한 phpadmin에서 mbstring이 누락되었다는 오류가 발생합니다.



답변

이전과 마찬가지로 Apache 용 PHP를 설치해야합니다.

로부터 서버 가이드 :

sudo apt install php libapache2-mod-php

이 명령은 PHP와 Apache 2 PHP 모듈을 설치합니다. 이전과 같이 Apache를 구성하기 만하면됩니다 ( sudo a2enmod php7.0모듈을 켤 것입니다).


귀하의 mbstring문제는 유사하다 – 당신이 확장 기능을 설치해야합니다 :

sudo apt install php7.0-mbstring

누락 된 다른 모듈의 경우 비슷한 항목도 설치해야합니다.


답변

서버에서 php7이 실행되도록 구성하려면 몇 가지 구성을 수행해야합니다.

1. 흔적을 제거하십시오 php/php5

터미널 Ctrl+ Alt+를 열고 T다음을 수행하십시오.

cd /etc/apache2/mods-enabled
ls -la

출력은해야 하지 를 포함 할 php5.conf또는 php5.load, 그러나 않는 경우, 다음을 수행하십시오

# this is the proper way of disabling modules
sudo a2dismod php5

# run this only if the above command didn't remove the php5 sym-links
sudo rm php5.load
sudo rm php5.conf

이제 php7.0.confand php7.0.load를 추가하십시오 .

# this is the proper way of enabling modules
sudo a2enmod php7.0

# run this only if the above command didn't create the php7.0 sym-links
sudo ln -s php7.0.conf ../mods-available/php7.0.conf
sudo ln -s php7.0.load ../mods-available/php7.0.load

출력 ls -la php*은 다음과 같아야합니다.

lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load

모듈을 다루고 나면 이제 /etc/apache2/conf-enabled디렉토리로갑니다. php / php5의 흔적을 제거하십시오.sudo rm <name>

그런 다음 필요한 경우 다음을 수행하십시오.

# the proper way of enabling configs
sudo a2enconf php7.0-cgi
sudo a2enconf php7.0-fpm

# do those commands only if the above didn't work out
sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf

출력 ls -la php*은 다음과 같아야합니다.

lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0-fpm.conf

2. Apache2 재시작

Apache를 다시 시작하기 전에 Apache를 정리 error.log한 다음 다시 시작하십시오.

sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

이제 error.log발행을 cat /var/log/apache2/error.log | less통해 점검하십시오 (낮은 간격으로 파이프를 사용하면 쉽게 위아래로 스크롤 q하고 출력을 종료 할 수 있습니다).

귀하의 error.log많은 (그리고 말 그대로 을 의미하는 )을 포함하는 경우 일부 MIBS not found는 다음을 수행합니다.

sudo apt install libsnmp-dev
sudo net-snmp-config --snmpconfpath
sudo apt-get install snmp snmp-mibs-downloader
sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

다시 확인 error.log하면 이제 3 줄만 포함해야합니다.

[Sat Apr 23 01:39:07.504005 2016] [mpm_prefork:notice] [pid 1647] AH00169: caught SIGTERM, shutting down
[Sat Apr 23 01:39:08.685774 2016] [mpm_prefork:notice] [pid 9590] AH00163: Apache/2.4.18 (Ubuntu) mod_perl/2.0.9 Perl/v5.22.1 configured -- resuming normal operations
[Sat Apr 23 01:39:08.685938 2016] [core:notice] [pid 9590] AH00094: Command line: '/usr/sbin/apache2'

php7.0을 사용하는 Apache가 이제 올바르게 구성되었습니다.


답변

이 문제도 있습니다.

모든 PHP를 삭제하고 php7을 다시 설치하는 데 도움이되었습니다.

필요한 것은 다음과 같습니다.

sudo apt-get purge php*

php7은 나중에 다시 설치하기 위해 삭제됩니다.

sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0 libapache2-mod-php7.0

답변

필자의 경우 PHP는 작동하지 않았지만 phpmyadmin도 단계별로 수행했습니다.

sudo apt install php libapache2-mod-php
sudo apt install php7.0-mbstring
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart

그리고 나서 :

gksu gedit /etc/apache2/apache2.conf

마지막 줄에 내가 추가 Include /etc/phpmyadmin/apache.conf

그것은 모든 문제를 다룬다


답변

이 문제에 대한 해결책은 short_open_tag에 대한 기본 PHP.INI 설정이었습니다. 기본적으로 ‘Off’로 설정되어 있습니다. 내 PHP 코드는

   <?

대신에

   <?php

short_open_tag를 활성화하면 (php.ini에서 ‘Off’를 ‘On’으로 변경하여) 아파치 서버 ( sudo service apache2 restart)를 재설정하면 PHP가 다시 활성화 됩니다.


답변

https://wiki.archlinux.org/index.php/Apache_HTTP_Server

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart

참고 : 때문에 위가, 필요 libphp7.so에 포함 된 php-apache작동하지 않습니다 mod_mpm_event,하지만 에만 작동합니다 mod_mpm_prefork 대신. ( FS # 39218 )

그렇지 않으면 다음과 같은 오류가 발생합니다.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
AH00013: Pre-configuration failed
httpd.service: control process exited, code=exited status=1

대안으로 사용할 수 있습니다 mod_proxy_fcgi(아래의 php-fpm 및 mod_proxy_fcgi 사용 참조 ).


답변

나도 우분투 16.04의 명령 줄에서 PHP 스크립트를 성공적으로 실행할 수는 있지만 어떤 브라우저에서도 실행할 수는 없습니다. 문제를 해결하기 위해 기존의 php7.0 및 apache2 사본을 제거했습니다. 그 후 apache2의 php 라이브러리뿐만 아니라 명령 줄에서 모두 다시 설치했습니다. “a2enmod php7.0″을 실행하려고했을 때 좌절감이 뒤따 랐는데, 명령 행에서 PHP 스크립트를 다시 실행할 수 있다는 사실에도 불구하고 php7.0 모듈이 존재하지 않는다는 사실을 알려주었습니다. 본능이 시작되었습니다. Synaptic을 시작하면서 명령 행에서 apache2 php 라이브러리를 설치할 때 libapache2-mod-php7.0 만 설치하고 “래퍼”libapache2-mod-를 설치하지 않은 것을 발견했습니다. PHP가 없으면 전자가 작동하지 않습니다.