在 Linux 上运行多个 PHP 实例是一种常见的配置,特别是在需要托管多个应用程序或网站,并且它们可能需要不同的 PHP 版本或配置时。以下是一种常见的方法来实现在 Linux 上运行多个 PHP 实例的介绍:
安装多个 PHP 版本:首先,您需要安装多个 PHP 版本。您可以使用您的发行版提供的软件包管理工具,如apt、yum或者从源代码编译安装多个 PHP 版本。确保每个 PHP 版本安装在不同的目录下,并且它们不会相互干扰。
配置不同的 PHP 实例:对于每个 PHP 版本,您需要创建不同的配置文件。通常情况下,PHP 配置文件位于 /etc/php/
,您可以根据需要编辑这些文件,例如设置不同的扩展、内存限制等。
启动不同的 PHP-FPM 实例:PHP-FPM(FastCGI Process Manager)是一种常见的 PHP 进程管理器,它可以独立于 web 服务器运行,并且可以为每个 PHP 版本启动不同的实例。对于每个 PHP 版本,您需要创建一个独立的 PHP-FPM 配置文件,并使用不同的套接字(socket)或端口号来避免冲突。
配置 Web 服务器:最后,您需要配置您的 Web 服务器(如 Nginx 或 Apache)以使用不同的 PHP-FPM 实例。在您的虚拟主机或网站配置中,指定正确的套接字或端口号以与相应的 PHP 版本通信。
测试和调优:在完成配置后,确保测试每个 PHP 实例是否正常工作,并且您的应用程序或网站在每个 PHP 版本下都能正常运行。您可能需要调整 PHP 配置和 Web 服务器配置以获得最佳性能和稳定性。
总的来说,通过安装多个 PHP 版本并配置不同的 PHP-FPM 实例,您可以在 Linux 上运行多个 PHP 实例,以满足不同应用程序或网站的需求,并且能够更灵活地管理和维护您的服务器环境
cd /usr/local/src/php-5.6.35/ext/ftp/
/usr/local/php56/bin/phpize
./configure --with-php-config=/usr/local/php56/bin/php-config
echo $?
make
echo $?
make install
vim /usr/local/php56/etc/php.ini
extension=/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/ftp.so
然后重启
/usr/local/php56/bin/php -m
1.先把php-fpm停掉
2.进入php-fpm的配置文件
cd /usr/local/php56/etc/
复制php-fpm的配置文件
例:php-fpm.conf进行复制
php-fpm1.conf php-fpm2.conf php-fpm3.conf php-fpm4.conf php-fpm5.conf php-fpm6.conf php-fpm7.conf
进入到php-fpm1.conf中进行修改 vim php-fpm1
[global]
pid = /usr/local/php56/var/run/php-fpm.pid
error_log = /usr/local/php56/var/log/php-fpm.log
[www]
security.limit_extensions =.php .html .js .css .jpg .jpeg .gif .png .htm .ico
listen = /tmp/php1-fcgi.sock # (后续的1、2、3、4、5、6、7都进去把这里修改了)
listen.owner=nginx
listen.group=nginx
listen.mode=0666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
3.进入nginx的配置文件中,本文这是nginx虚拟配置文件
/usr/local/nginx/conf/conf.d/进行修改
vim vhost_as.conf
增加一个代理
upstream php-fpm {
server unix:/tmp/php-fcgi.sock;
server unix:/tmp/php1-fcgi.sock;
server unix:/tmp/php2-fcgi.sock;
server unix:/tmp/php3-fcgi.sock;
server unix:/tmp/php4-fcgi.sock;
server unix:/tmp/php5-fcgi.sock;
server unix:/tmp/php6-fcgi.sock;
server unix:/tmp/php7-fcgi.sock;
}
# 然后在下边的server里的location里边
#fastcgi_pass unix:/tmp/php-fcgi.sock; 注释掉
fastcgi_pass php-fpm; 增加的
4.重新启动nginx
5.启动php-fpm多实例
/usr/local/php56/sbin/php-fpm -y /usr/local/php56/etc/php-fpm.conf
/usr/local/php56/sbin/php-fpm -y /usr/local/php56/etc/php-fpm1.conf
/usr/local/php56/sbin/php-fpm -y /usr/local/php56/etc/php-fpm2.conf
....
# 以此类推