PHP 8.2是PHP语言的最新版本。新特性包括,只读类,允许布尔值作为独立类型等。从mysqli中删除libmysql的支持等。
时至今天,主流的HTTP服务器已不是Apache,我们推荐使用Nginx作为HTTP服务器,Nginx相对于Apache来说简单且性能更好。
本教程将向您展示如何在Ubuntu 20.04安装PHP 8.2并将其与Nginx集成。在撰写本文时,默认的Ubuntu 20.04存储库包括PHP 7.4版本。
我们将从ondrej/php的PPA存储库中安装PHP。升级或安装PHP 8之前,请确保您的应用程序支持它。
OndřejSurý维护着一个包含多个PHP版本的存储库。请运行下面的命令安装PHP 8.2。
终端将会提示你是否继续的消息,Press [ENTER] to continue or Ctrl-c to cancel adding it.。按Enter键回车即可。
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.2-fpm(php8.2-cli)
查看已安装的php版本
安装PHP扩展
PHP扩展是已编译的动态库,它扩展了PHP的核心功能。PHP扩展程序作为软件包提供,可以通过apt
安装PHP扩展。
按照惯例PHP扩展的通常是以php开头,接着是版本号,然后是-
和扩展名称。这是通用的格式php8.2-[extname]
。
并不是所有php扩展都可以通过apt命令进行安装,Apt仓库仅提供常用PHP扩展,某些扩展可能需要自己手动编译。
例如,要安装MySQL和GD扩展,您可以运行命令sudo apt install php8.2-mysql php8.2-gd
。
需要apt安装的扩展有:php8.2-mysql php8.2-mbstring php8.2-curl php8.2-redis php8.2-bcmath php8.2-soap php8.2-swoole
sudo apt install php8.2-mysql php8.2-mbstring php8.2-curl php8.2-redis php8.2-bcmath php8.2-soap php8.2-swoole
查看已安装的php扩展
oci8 pdo_oci需要手动编译安装 (划重点)
oracle客户端下载链接:Oracle Instant Client Downloads for Linux x86-64 (64-bit)
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
选择最新版本 version:21.13
基础包和sdk包都默认选的第一个
cd /usr/local/src
sudo wget https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-basic-linux.x64-21.13.0.0.0dbru.zip sudo wget https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-sdk-linux.x64-21.13.0.0.0dbru.zip
sudo apt install unzip
unzip instantclient-basic-linux.x64-21.13.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-21.13.0.0.0dbru.zip
PHP源码编译安装扩展
官方github链接:https://github.com/php/php-src/tree/php-8.2.15
下载:wget https://github.com/php/php-src/archive/refs/tags/php-8.2.15.zip
wget https://mirror.ghproxy.com/https://github.com/php/php-src/archive/refs/tags/php-8.2.15.zip(代理加速版本)
unzip php-8.2.15.zip cd php-src-php-8.2.15/ext/oci8/ phpize
phpize命令报错了 需执行以下命令:
apt install php8.2-dev
再次执行phpize成功了
编译 oci8
./configure --with-oci8=instantclient,/usr/local/src/instantclient_21_13 make && make install
编译 pdo_oci
cd ../pdo_oci phpize ./configure --with-pdo_oci=instantclient,/usr/local/src/instantclient_21_13 make && make install
vim /etc/php/8.2/cli/php.ini
开启扩展 执行 php --ini 发现有报错了
问题:libnnz21.so: cannot open shared object file: No such file or directory
原因:libnnz21.so 没加载到
ldd /usr/lib/php/20220829/oci8.so
vim /etc/profile export LD_LIBRARY_PATH=/usr/local/src/instantclient_21_13:$LD_LIBRARY_PATH
libaio.so.1也没有加载到
apt-get install libaio1 libaio-dev
解决~
最后执行php -m 查看已安装的扩展 发现oci8和pdo_oci已成功安装,大功告成~
参考文档:
https://www.mryunwei.com/242425.html
https://stackoverflow.com/questions/72592165/install-and-enable-oci8-extension-for-php8-1-fpm-in-dockerfile
标签:oci,PHP,instantclient,php8.2,apt,PHP8.2,php,安装 From: https://www.cnblogs.com/starfish29/p/18009925