开发学院

您的位置:首页>技术文章>正文

技术文章

lnmp一键安装包多php环境安装

开发学院2024-10-16 11:00:40
对于开发者来说,能够根据不同的项目要求灵活地选择和使用不同版本的PHP是至关重要的,因为它直接影响到项目的开发和运行效率。接下来将说明如何通过一个简单的命令来安装和管理多版本的PHP,并确保您的环境能够无缝地支持这些版本。

  对于开发者来说,能够根据不同的项目要求灵活地选择和使用不同版本的PHP是至关重要的,因为它直接影响到项目的开发和运行效率。接下来将说明如何通过一个简单的命令来安装和管理多版本的PHP,并确保您的环境能够无缝地支持这些版本。

  安装包官网地址:https://lnmp.org/,

输入下面的命令即可进行多版本php的安装

./install.sh mphp

  请注意,这一多版本PHP的支持仅限于LNMP环境,并不适用于LNMPA或LAMP环境。

若要启用多PHP版本,您需要在lnmp1.8的源代码目录下执行./install.sh mphp命令,并在提示时选择一个额外的PHP版本进行安装。每次只能选择一个版本,若需安装多个版本,需在完成当前安装后再次运行此命令。


  对于已经升级LNMP管理脚本并安装了多版本PHP的用户,在添加lnmp虚拟主机时,系统会在设置日志名称后提示您选择一个已存在的PHP版本,只需根据提示选择相应的数字即可。


  若您需要更改现有虚拟主机的PHP版本,您需要编辑虚拟主机的配置文件,路径通常为/usr/local/nginx/conf/vhost/域名.conf。在此文件中,将include enable-php.conf;替换为include enable-php7.4.conf;,其中7.4代表您希望使用的PHP版本。请根据您的需求进行修改,但请确保您已经安装了对应的多版本PHP,否则可能会出现502错误。

  经测试上述方法虽然支持了php,但是无法支持pathinfo,同时支持特定版本php并且支持pathinfo的方法如下:

  修改配置文件的如下位置

 location ~ \.php(.*)$ {
		fastcgi_pass unix:/tmp/php-cgi.sock;#

  根据php版本修改对应文件名即可,我使用的是7.4,所以修改为

  fastcgi_pass   unix:/tmp/php-cgi7.4.sock; # 根据PHP-FPM版本和路径调整

  完成修改后,需要输入下面的命令重启nginx服务才可以生效。

lnmp nginx restart

  如果您希望使用新版中的PHP模块组件安装工具,您需要升级您的PHP版本以使用新版的PHP组件安装工具。这样,您就可以充分利用新版工具带来的便利和功能了。

  最后附上完整的配置文件内容

server {
    #listen        443;
    listen        80;
    #ssl on;
    server_name 你的域名;

    root  /data/wwwroot/网站目录;
    #ssl_certificate /data/ssl/SSL证书目录/cert.pem;
    #ssl_certificate_key /data/ssl/SSL证书目录/private.key;
    #include enable-php7.4.conf;
    location / {
        index index.html index.htm index.php;
        if (!-e $request_filename) {
                rewrite  ^/(.*)$  /index.php/$1  last;
                break;
         }
#       autoindex off;
    }
   
   location ~ \.php(.*)$ {
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/tmp/php-cgi7.4.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        include pathinfo.conf;
        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        #fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        include fastcgi_params;
        #fastcgi_param ENVIROMENT 'production';
    }

}