Ubuntu 18.04 手动配置基于nginx的多个PHP版本
服务器上有时会运行多个站点,可能每个站点对PHP版本要求不同,所以需要在一台服务器上配置多个PHP的版本,这里我们讲一下如何配置多套PHP版本。
这里以安装PHP的最新版本7.4为例,安装PHP过程一样,安装时候可以通过apt-cache search php7.4 查看安装源是否有这个版本,我们运行脚本得到如下结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
php-amqp - AMQP extension for PHP php-apcu - APC User Cache for PHP php-apcu-bc - APCu Backwards Compatibility Module php-ds - PHP extension providing efficient data structures for PHP 7 php-gearman - PHP wrapper to libgearman php-geoip - GeoIP module for PHP php-gmagick - Provides a wrapper to the GraphicsMagick library php-gnupg - PHP wrapper around the gpgme library php-http - PECL HTTP module for PHP Extended HTTP Support php-igbinary - igbinary PHP serializer php-imagick - Provides a wrapper to the ImageMagick library php-mailparse - Email message manipulation for PHP php-memcache - memcache extension module for PHP php-memcached - memcached extension module for PHP, uses libmemcached php-mongodb - MongoDB driver for PHP php-msgpack - PHP extension for interfacing with MessagePack php-oauth - OAuth 1.0 consumer and provider extension php-pinba - Pinba module for PHP php-propro - propro module for PHP php-radius - radius client library for PHP php-raphf - raphf module for PHP php-redis - PHP extension for interfacing with Redis php-rrd - PHP bindings to rrd tool system php-sass - PHP bindings to libsass - fast, native Sass parsing in PHP php-smbclient - PHP wrapper for libsmbclient php-solr - PHP extension for communicating with Apache Solr server php-ssh2 - Bindings for the libssh2 library php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP php-tideways - Tideways PHP Profiler Extension php-uploadprogress - file upload progress tracking extension for PHP php-uuid - PHP UUID extension php-yac - YAC (Yet Another Cache) for PHP php-yaml - YAML-1.1 parser and emitter for PHP php-zmq - ZeroMQ messaging bindings for PHP libapache2-mod-php7.4 - server-side, HTML-embedded scripting language (Apache 2 module) libphp7.4-embed - HTML-embedded scripting language (Embedded SAPI library) php-lua - PHP Embedded lua interpreter php-pcov - Code coverage driver php-phalcon4 - full-stack PHP framework delivered as a C-extension php-psr - PSR interfaces for PHP php-xdebug - Xdebug Module for PHP php-xhprof - Hierarchical Profiler for PHP 5.x php7.4 - server-side, HTML-embedded scripting language (metapackage) php7.4-bcmath - Bcmath module for PHP php7.4-bz2 - bzip2 module for PHP php7.4-cgi - server-side, HTML-embedded scripting language (CGI binary) php7.4-cli - command-line interpreter for the PHP scripting language php7.4-common - documentation, examples and common module for PHP php7.4-curl - CURL module for PHP php7.4-dba - DBA module for PHP php7.4-dev - Files for PHP7.4 module development php7.4-enchant - Enchant module for PHP php7.4-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary) php7.4-gd - GD module for PHP php7.4-gmp - GMP module for PHP php7.4-imap - IMAP module for PHP php7.4-interbase - Interbase module for PHP php7.4-intl - Internationalisation module for PHP php7.4-json - JSON module for PHP php7.4-ldap - LDAP module for PHP php7.4-mbstring - MBSTRING module for PHP php7.4-mysql - MySQL module for PHP php7.4-odbc - ODBC module for PHP php7.4-opcache - Zend OpCache module for PHP php7.4-pgsql - PostgreSQL module for PHP php7.4-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary) php7.4-pspell - pspell module for PHP php7.4-readline - readline module for PHP php7.4-snmp - SNMP module for PHP php7.4-soap - SOAP module for PHP php7.4-sqlite3 - SQLite3 module for PHP php7.4-sybase - Sybase module for PHP php7.4-tidy - tidy module for PHP php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP php7.4-xmlrpc - XMLRPC-EPI module for PHP php7.4-xsl - XSL module for PHP (dummy) php7.4-zip - Zip module for PHP |
可以看到返回结果里有php7.4的安装源,接下来运行下面脚本安装PHP7.4
1 |
apt install php7.4 php7.4-fpm php7.4-gd php7.4-mysql php7.4-curl php7.4-json php7.4-xml php7.4-xmlrpc php7.4-intl php7.4-zip php7.4-mbstring -y |
等安装完成后,配置nginx,nginx的配置文件修改如下:
1 2 3 4 5 6 7 8 9 |
location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: fastcgi_pass unix:/run/php/php7.4-fpm.sock; } |
修改完保存后,重新加载nginx配置,命令如下:
1 |
/etc/init.d/nginx reload |
运行脚本,返回结果如下:
1 |
[ ok ] Reloading nginx configuration (via systemctl): nginx.service. |
说明新站点已经使用PHP7.4,可以使用phpinfo()查看当前站点的相关信息。
安装其他版本PHP,操作同上。