2017-04-22 190 views
0

没有运行,我不得不从旧服务器(Plesk 14; CentOS 5; Apache 2.2; PHP 5.3.5)迁移到一个新的(Plesk Onyx 17; CentOS 7.3; Apache 2.4; PHP 7)PHP在虚拟主机上的Apache

,一切工作正常使用自定义虚拟主机的除外。

在旧服务器,在我etc/httpd/conf/httpd.conf我有以下内容,这是工作:

<VirtualHost XX.XX.XX.XX:80> 
DocumentRoot /var/www/vhosts/mycompany.com/httpdocs/myproject 
ServerName myproject.com 
ServerAlias www.myproject.com 

    <Directory /var/www/vhosts/mycompany.com/httpdocs/myproject> 
     <IfModule sapi_apache2.c> 
      php_admin_flag engine on 
      php_admin_flag safe_mode on 
     </IfModule> 

     <IfModule mod_php5.c> 
      php_admin_flag safe_mode off 
      php_admin_value upload_tmp_dir "/tmp" 
      php_admin_value session.save_path "/tmp" 
     </IfModule> 

     php_admin_flag engine on 
     AddHandler php5-script .php 

    </Directory> 

</VirtualHost> 

如果我没有足够的php_admin_flag engine onAddHandler将刚才下载的PHP文件为文本。

在新的服务器上,我尝试了完全相同的,它只是下载PHP文件。

我也尝试添加以下的<Directory>没有成功:

LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so 
#Error: Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. 

php_admin_flag engine on 
# Invalid command 'php_admin_flag', perhaps misspelled or defined by a module not included in the server configuration 

AddType text/html .php 
#I used this to make sure AddType works. It does - PHP displayed as HTML 

AddType application/x-httpd-php .php 
#Downloads the file as text 

AddHandler application/x-httpd-php .php 
#Downloads the file as text 

AddType php5-script .php 
#Shows php as plain text 

东西值得一提的是,在这个Plesk中有多个PHP版本。当我做php -v时,我得到了PHP 5.3.5 (cli),但是当我在页面中使用phpinfo()时,我得到“PHP版本7.0.18”。

我的猜测是它与此有关。

论的Plesk管理面板,它说run PHP 7 as FPS Application

plesk-php-fpm

这里的phpinfo()https://pste.eu/p/BGpI.html

任何想法,难道是快照?

回答

1

米罗嗨,

你考虑MPM-EVENT要切换到MPM-prefork的,为了能够使用中的libapache2 - PHP - 模块?

LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so 
#Error: Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. 

=>首页>工具&设置>的Apache Web服务器>(选项)MPM模式

+0

改变了MPM为'Prefork'现在的伟大工程具有这样的: '的LoadModule php5_module的/ usr/lib64/httpd/modules/libphp5.so' | 'AddHandler application/x-httpd-php .php' 谢谢! – Miro

+0

这样做的缺点是它现在正在运行php5。任何想法如何为php7加载模块? – Miro

+0

“任何想法如何为php7加载模块” - 当然...只需将您的供应商PHP版本升级到7.0甚至7.1。例子为CentOS 7.3:=> yum --enablerepo = remi,remi-php71安装php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pecl-mongodb php-pecl-memcache php- pecl-memcached php-gd php-mbstring php-mcrypt php-xml – UFHH01