VestaCP 多版本PHP共存教程:用于Debian和Ubuntu的PHP选择器(PHP 5.6、7.0、7.1、7.2、7.3)(还可以直接选择nginx-PHP-FPM)

phpBB相关
回复
头像
admin
网站管理员
帖子: 78
注册时间: 2016-12-31, 08:39

VestaCP 多版本PHP共存教程:用于Debian和Ubuntu的PHP选择器(PHP 5.6、7.0、7.1、7.2、7.3)(还可以直接选择nginx-PHP-FPM)

帖子 admin » 2020-01-28, 04:11

本教程将启用PHP 5.6、7.0、7.1、7.2和7.3到特定/所需的域。
教程适用于Debian和Ubuntu(但可能可以为您提供有关CentOS的良好指导)。

PHP将通过PHP-FPM运行,这比仅使用旧phpfcgid解决方案的其他现有PHP切换器要快得多(因为使用PHP-FPM可以使用opcache)。
与PHP-FPM的通信将通过Unix套接字,这也是守护程序之间最快的通信。

第二个教程向前迈进了一步-它将使您能够从nginx到PHP-FPM进行直接通信,避免将Apache用于所需的域(默认情况下,默认情况下,在Vesta安装中安装了Apache)。
因此,是的,即使您已安装Apache,也可以轻松地使nginx <-> PHP-FPM堆栈。
还有更好的消息-您只能在所需的域上使用它-因此所有其他域都将保持不变。

Debian 10所需的第一步:

代码: 全选

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list'

Debian 9所需的第一步:

代码: 全选

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list'

Debian 8所需的第一步:

代码: 全选

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list'

Ubuntu所需的第一步:

代码: 全选

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
然后在浏览器中转到 https://launchpad.net/~ondrej/+archive/ubuntu/php/
Adding this PPA to your system下,单击Technical details about this PPA,选择Ubuntu版本,以及从中获得的两行内容下面的字段框添加到/etc/apt/sources.list.d/php.list


Debian和Ubuntu都需要执行的第二步:

代码: 全选

apt-get update
a2enmod proxy_fcgi setenvif

对于PHP 5.6

代码: 全选

apt-get install php5.6-apcu php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached php5.6-zip
update-rc.d php5.6-fpm defaults
a2enconf php5.6-fpm
systemctl restart apache2
cp -r /etc/php/5.6/ /root/vst_install_backups/php5.6/
rm -f /etc/php/5.6/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh

对于PHP 7.0

代码: 全选

apt-get install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip
update-rc.d php7.0-fpm defaults
a2enconf php7.0-fpm
systemctl restart apache2
cp -r /etc/php/7.0/ /root/vst_install_backups/php7.0/
rm -f /etc/php/7.0/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh

对于PHP 7.1

代码: 全选

apt-get install php7.1-apcu php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached php7.1-zip
update-rc.d php7.1-fpm defaults
a2enconf php7.1-fpm
systemctl restart apache2
cp -r /etc/php/7.1/ /root/vst_install_backups/php7.1/
rm -f /etc/php/7.1/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh

对于PHP 7.2

代码: 全选

apt-get install php7.2-apcu php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached php7.2-zip
update-rc.d php7.2-fpm defaults
a2enconf php7.2-fpm
systemctl restart apache2
cp -r /etc/php/7.2/ /root/vst_install_backups/php7.2/
rm -f /etc/php/7.2/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh

对于PHP 7.3

代码: 全选

apt-get install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip
update-rc.d php7.3-fpm defaults
a2enconf php7.3-fpm
systemctl restart apache2
cp -r /etc/php/7.3/ /root/vst_install_backups/php7.3/
rm -f /etc/php/7.3/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh

现在,只需转到Vesta,为所需域编辑WEB并选择:
fpm.png
fpm.png (4.82 KiB) 查看 5267 次

转自 https://forum.vestacp.com/viewtopic.php?f=41&t=17129


对于PHP 7.4

代码: 全选

apt-get install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mysql php7.4-soap php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip
update-rc.d php7.4-fpm defaults
a2enconf php7.4-fpm
systemctl restart apache2
cp -r /etc/php/7.4/ /root/vst_install_backups/php7.4/
rm -f /etc/php/7.4/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh

头像
admin
网站管理员
帖子: 78
注册时间: 2016-12-31, 08:39

向前迈进:VestaCP 启用nginx和php-fpm之间的直接通信(如果要避免针对特定域使用Apache)

帖子 admin » 2020-01-28, 04:17

向前迈进:启用nginx和php-fpm之间的直接通信(如果要避免针对特定域使用Apache)

正如我在第一篇文章中所说,第二个教程向前迈了一步-它允许您从nginx到PHP-进行直接通信。 FPM,避免将Apache用于所需的域(在默认的Vesta安装中,默认情况下安装Apache)。
因此,是的,即使您已安装Apache,也可以轻松地使nginx <-> PHP-FPM堆栈。
还有更好的消息-您只能在所需的域上使用它-因此所有其他域都将保持不变。

对于自定义PHP CMS:

代码: 全选

wget https://raw.githubusercontent.com/serghey-rodin/vesta/master/install/debian/9/templates/web/nginx/php-fpm/default.tpl -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.tpl
wget https://raw.githubusercontent.com/serghey-rodin/vesta/master/install/debian/9/templates/web/nginx/php-fpm/default.stpl -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.sh
chmod a+x /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.sh
sed -i "s#%web_port%#%proxy_port%#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.tpl
sed -i "s#%web_ssl_port%#%proxy_ssl_port%#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.stpl
sed -i "s#%backend_lsnr%#unix:/run/php/php7.2-fpm-%domain%.sock#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.tpl
sed -i "s#%backend_lsnr%#unix:/run/php/php7.2-fpm-%domain%.sock#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.stpl
sed -i "s#/var/log/nginx/#/var/log/%web_system%/#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.tpl
sed -i "s#/var/log/nginx/#/var/log/%web_system%/#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72.stpl

对于WordPress:

代码: 全选

wget https://raw.githubusercontent.com/serghey-rodin/vesta/master/install/debian/9/templates/web/nginx/php-fpm/wordpress2.tpl -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.tpl
wget https://raw.githubusercontent.com/serghey-rodin/vesta/master/install/debian/9/templates/web/nginx/php-fpm/wordpress2.stpl -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.sh
chmod a+x /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.sh
sed -i "s#%web_port%#%proxy_port%#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.tpl
sed -i "s#%web_ssl_port%#%proxy_ssl_port%#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.stpl
sed -i "s#%backend_lsnr%#unix:/run/php/php7.2-fpm-%domain%.sock#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.tpl
sed -i "s#%backend_lsnr%#unix:/run/php/php7.2-fpm-%domain%.sock#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.stpl
sed -i "s#/var/log/nginx/#/var/log/%web_system%/#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.tpl
sed -i "s#/var/log/nginx/#/var/log/%web_system%/#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-72-Wordpress.stpl

这样,您可以将其他任何现有的Vesta PHP-FPM模板改编为其他CMS。
(CMS模板列表在这里- https://github.com/serghey-rodin/vesta/ ... nx/php-fpm

这是PHP 7.2的示例。
您可以以相同的方式安装其他PHP版本的模板,只需用所需版本替换7.2和72。

现在,只需转到Vesta,为所需域编辑WEB并选择:
fpm2.png
fpm2.png (4.93 KiB) 查看 5266 次

头像
admin
网站管理员
帖子: 78
注册时间: 2016-12-31, 08:39

向前迈进:启用nginx和php-fpm之间的直接通信(如果要避免针对特定域使用Apache)

帖子 admin » 2020-01-28, 04:19

为了使其他使用此方法的用户受益,请注意要编辑一些php.ini功能,例如。upload_max_filesize,您必须编辑模板文件。编辑php.ini文件不会影响更改。

代码: 全选

nano /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh
顺便说一句,本教程中的模板将永远不会覆盖fpm池文件,因此您还需要编辑池文件(/etc/php/7.X/fpm/pool.d/YOUR-DOMAIN.conf),然后重新启动选择的php-fpm:

代码: 全选

service php7.X-fpm restart

头像
admin
网站管理员
帖子: 78
注册时间: 2016-12-31, 08:39

教程:用于Debian和Ubuntu的PHP 5.6、7.0、7.1、7.2、7.3的PHP选择器(还可以直接选择nginx-PHP-FPM)

帖子 admin » 2020-01-28, 12:47

代码: 全选

wget https://raw.githubusercontent.com/serghey-rodin/vesta/master/install/debian/9/templates/web/nginx/php-fpm/wordpress2_rewrite.tpl -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.tpl
wget https://raw.githubusercontent.com/serghey-rodin/vesta/master/install/debian/9/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.sh -O /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress.sh
chmod a+x /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress.sh
sed -i "s#%web_port%#%proxy_port%#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.tpl
sed -i "s#%web_ssl_port%#%proxy_ssl_port%#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.stpl
sed -i "s#%backend_lsnr%#unix:/run/php/php7.4-fpm-%domain%.sock#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.tpl
sed -i "s#%backend_lsnr%#unix:/run/php/php7.4-fpm-%domain%.sock#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.stpl
sed -i "s#/var/log/nginx/#/var/log/%web_system%/#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.tpl
sed -i "s#/var/log/nginx/#/var/log/%web_system%/#g" /usr/local/vesta/data/templates/web/nginx/PHP-FPM-74-Wordpress_rewrite.stpl

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客