「这是我参与2022首次更文挑战的第28天,活动详情查看:2022首次更文挑战」。

作者:Mintimate

博客:www.mintimate.cn

Mintimate’s Blog,只为与你分享

PHP

PHP是一macos最新版本种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。macosx

最大的特点就是JIT了,不用像Java一样需要JVM虚拟机;很多项目都使用PHP进行快速构建。

不过,我是没怎么用PHP进行Web开发~~所以这次文章就主要macoshighsierrajava模拟器解PHP如何在Linux编译安装。macOS

下载PHP源码

以往都是先说环境。这次改方案来。先下载源码,在选择PHNginxP环境。

主要是…… PHP的可选依赖太多了……

进入PHP的下载页面,我们下载PHP8的源码:www.php.netmacos monterey/downloanginx是干嘛用的ds.p…

详解Debian系统上如何编译安装PHP8

# 下载PHP源码
wget https://www.php.net/distributions/php-8.1.2.tar.gz
# 解压
tar -xf php-8.1.2.tar.gz
# 进入
cd php-8.1.2

详解Debian系统上如何编译安装PHP8

之后,使用configure查看:

./configure -h

详解Debian系统上如何编译安装PHP8

我的PHP需求不高,就是搭建一个h5ai:https:macos是什么意思//github.java怎么读com/lrsjng/h5ai

需要的PHP模块:

--with-curl 
--with-mysqli 
--with-openssl 
--with-pdo-mysql 
--with-jpeg 
--enable-gd 
--enable-fpm 
--enable-bcmath 
--enable-xml 
--with-zip 
--enable-mbstring 
--enable-sockets  
--with-zlib   
--enable-fileinfo 
--enable-exif

为此,环境准备要一些lib库支持。

环境准备

本次安装PHP8,是在Debian发行版本的Linux上安装,如果是CentOS发行版本Linux,需要注意:

  • 编译安装时,需要自行安装nginx启动命令下述依赖。

另外,如果你觉得本文的安装方法过于技术型。其java环境变量配置实,也可以试java培训试宝塔http协议面板安装PHP,或者软件包管理器安装PHP。

本次教程使用一台Debian10 x64虚拟机:

详解Debian系统上如何编译安装PHP8

GCC

编译,肯定需要编译器的支持,后文的Nginx也需要https和http的区别这个。我们安装build-essential即可安装GCC。类似于macOS的Xcode-commnad。终端内输入:

apt install -y build-essential

详解Debian系统上如何编译安装PHP8

pkg-config

需要pkg-config,Debian发行nginx是什么意思版本Linux上可以这样安装:

apt install -y pkg-config

pkg-configmacosx是什么文件夹其实就是依赖包管理器。

详解Debian系统上如何编译安装PHP8

libxml2

需要libxml2,Debian发行版本https和http的区别Linux上可以这样安装:

apt install -y libxml2-dev

详解Debian系统上如何编译安装PHP8
字面意思,xml的依赖库。

opehttps域名nsslmacosx是什么文件夹

需要openssl,Debian发行版本Linux上可以这样安装。openssl是必须的,这个提供了加密支持:

apt install  -y openssl libssl-dev

详解Debian系统上如何编译安装PHP8

sqlite3

需要sqlite3,Debian发行版本Linux上macoshighsierra可以这样java模拟器安装:

apt install -y libsqlite3-dev

zlib

需要zlib,这个很重要用来处理文件压缩

apt install zlib1g-dev

libcurl

需要lijavascriptbcurl,用来调用macOScurlmacos系统

apt install libcurl4-openssl-dev

libpng&libjpeg

因为我有处理图片,所以需要libpng和libjpeg:

apt install -y libpng-dev libjpeg-dev

oniguruma

需要oniguruma:

apt install -y libonig-dev

libzip

需要libzip,用来生成和处理zip文件:

apt install -y libzip-dev

详解Debian系统上如何编译安装PHP8

配置和编译

现在,依赖都安装好了。就可以开始配置和编译了。首先是是配置:

./configure 
--prefix=/usr/local/php8 
--with-curl 
--with-mysqli 
--with-openssl 
--with-pdo-mysql 
--with-jpeg 
--enable-gd 
--enable-fpm 
--with-fpm-user=www 
--with-fpm-group=www 
--enable-bcmath 
--enable-xml 
--with-zip 
--enable-mbstring 
--enable-sockets  
--with-zlib   
--enable-fileinfo 
--enable-exif

其中:

  • --with-fpm-user:PHP的FPM归属用户,这里我选择归属于www用户。
  • --with-fpmacoscatalinam-group:PHP FPM归属的用户组。

详解Debian系统上如何编译安装PHP8

之后就是常规的编译:

make

详解Debian系统上如何编译安装PHP8

接下来,就可以安装了。

安装nginx启动命令和启macos最新版本

安装过于简单:

make install

详解Debian系统上如何编译安装PHP8

我们尝试启动php-fpm

./php8/sbin/php-fpm

会发现启动失败:

详解Debian系统上如何编译安装PHP8

解决方法很简单,我们把默认的php-fpm激活即可:

mv /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
mv /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf  

详解Debian系统上如何编译安装PHP8

之后即可启动:

./php8/sbin/php-fpm

详解Debian系统上如何编译安装PHP8

设置守护进程

每次这样启动PHP是不是太麻烦,其java环境变量配置实可以设置一个systemctl的单元Unit,用于管理php-https安全问题fjava环境变量配置pm

vim /usr/lib/systemd/system/php-fpm.service

详解Debian系统上如何编译安装PHP8
之后重http://www.baidu.com载:

# 重载配置
systemctl daemon-reload
# 启动PHP-FPM
systemctl start php-fpm
# 设置开机自启
systemctl enable php-fpm

详解Debian系统上如何编译安装PHP8

Nginx设置

当然,Nginx上不http代理要文件添加PHP的配置:

# php-fpm配置
        location ~ [^/].php(/|$){
            # try_files $uri =404;
            fastcgi_pass  127.0.0.1:9000;
            include fastcgi.conf;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        }

看看我配置的h5ai效果:

详解Debian系统上如何编译安装PHP8

卸载PHP

我们编译的PHP8,如何卸载呢?很简单:

# 停止PHP-FPM服务
systemctl stop php-fpm
# 删除systemctl的Unit
rm -rf /usr/lib/systemd/system/php-fpm.service
# 重载Systemctl
systemctl daemon-reload
# 删除PHP
rm -rf /usr/local/php8

这样就完成了。以上是我编译的PHP8卸载,大家要工具自己情况适当更改。

END

到此,PHP8的手动编译就java怎么读结束了。可能还是nginx面试题软件包管理器或者Docker编译方便些~~