2017-04-22 193 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