介紹
由於伺服器上執行著一些老專案php
版本使用的是 5.4 的,而我的新專案用的php7.0
以上的。由於不敢隨意更新php
版本,只能安裝一個php7.4
的版本
php7.4.0 安裝
系統:
centos7
下載並解壓
$ wget http://php.net/distributions/php-7.4.0.tar.gz
$ tar -zxvf php-7.4.0.tar.gz
$ cd php-7.4.0
編譯並安裝
編譯前,新增使用者組,使用者,用於編譯使用
$ groupadd www
$ useradd -g www www
開始編譯(根據自己需要增減)
$ ./configure \
--prefix=/usr/local/php7.4.0 \
--with-config-file-path=/etc \
--with-fpm-user=www \
--with-fpm-group=www \
--with-curl \
--with-freetype-dir \
--enable-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-jpeg-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-bz2 \
--with-mhash \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-zip \
--enable-fpm
這裡需要注意的是在php7.4 編譯引數 –with-gd 要改成了 –enable-gd
安裝
$ make && make install
設定配置檔案
$ cp -R ./sapi/fpm/php-fpm.conf /usr/local/php7.4.0/etc/php-fpm.conf
$ cp php.ini-development /usr/local/php7.4.0/lib/php.ini
$ cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm7.4.0
安裝完成!
修改監聽埠
修改php-fpm.conf的偵聽埠為9074,因為主版本5.4是偵聽9000。
; Note: This value is mandatory.
listen = 127.0.0.1:9074
啟動php-fpm
$ /etc/init.d/php-fpm7.4.0 -c /usr/local/php7.4.0/lib/php.ini -y /usr/local/php7.4.0/etc/php-fpm.conf
透過 netstat -anp | grep 9074
可以看到 php7.4
已啟動
配置專案
從git
伺服器下載專案後。
這時需要 composer install
。出錯了,composer
預設使用 系統預設的php5.4
版本
解決方式
$ which php
/usr/bin/php
將 php7.4.0
複製一份到環境目錄裡
$ cp /usr/local/php7.4.0/bin/php /usr/bin/php74
$ php74 -v
PHP 7.4.0 (cli) (built: Jun 30 2020 10:49:08) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
進入專案目錄並下載 composer.phar
$ cd /var/www/tempweb
$ wget https://getcomposer.org/download/1.6.5/composer.phar
執行php74
安裝命令
$ php74 composer.phar install
出錯了,說是沒有fileinfo
檔案
解決方法
刪除掉原來的 composer.lock
檔案並重新執行命令php74 composer.phar install
即可成功!
配置nginx
web
站點
server {
listen 9090;
# server_name 不設定 server_name 預設 透過ip訪問
root /var/www/TempWeb/public;
client_max_body_size 20m;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location / {
index index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# 指定 php7.4 的 9074 埠
fastcgi_pass 127.0.0.1:9074;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
儲存後過載配置檔案
$ ./usr/sbin/nginx -s reload
搞定!
本作品採用《CC 協議》,轉載必須註明作者和本文連結