ubuntu24.04 编译安装PHP7.4

ubuntu24.04 编译安装PHP7.4

先安装依赖包(原本是centos上安装依赖,让chatgpt转换了下对应的ubutnu下包名,如果编译过程有缺失,按报错提示再安装下)

apt install zlib1g zlib1g-dev libpcre3 libpcre3-dev libfreetype6 \
libfreetype6-dev libssl-dev libcurl4-openssl-dev libxslt1-dev libgd-dev libc6-dev \
libglib2.0-0 libglib2.0-dev libmcrypt-dev libmhash-dev libicu-dev libncurses5-dev \
libjpeg-dev libpng-dev libxml2-dev libbz2-dev libsqlite3-dev libonig-dev \
imagemagick libmagickwand-dev unixodbc unixodbc-dev

安装liviconv 1.17(ubuntu24.04可略过)

wget https://jinchuang.org/novel/php/libiconv-1.17.tar.gz
tar xf libiconv-1.17.tar.gz
cd libiconv-1.17/
./configure --prefix=/usr/lcoal/libiconv && make && make install
echo "/usr/local/libiconv/lib" >>/etc/ld.so.conf
ldconfig

安装openss(系统自带的3.0不行,安装3.3里面包含1.1的库)

wget https://github.com/openssl/openssl/releases/download/openssl-3.3.1/openssl-3.3.1.tar.gz
tar -xvf openssl-3.3.1.tar.gz
cd openssl-3.3.1/
./Configure --prefix=/opt/openssl --openssldir=/opt/openssl -fPIC -shared linux-x86_64
make -j4 && make install

设置pkgconfig,为默认openssl.cnf设置ENV

echo 'export PKG_CONFIG_PATH=/opt/openssl/lib/pkgconfig' >>/etc/profile
echo 'export OPENSSL_CONF=/usr/lib/ssl/openssl.cnf' >>/etc/profile
source /etc/profile

php安装

wget https://www.php.net/distributions/php-7.4.33.tar.bz2

解压进入php-7.4.33目录

./configure --prefix=/usr/local/php --enable-fpm --enable-gd --with-webp --with-jpeg --with-freetype --enable-intl  --enable-pcntl  --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd  --with-curl --enable-soap --with-openssl-dir=/opt/openssl  --with-zip --enable-ftp --enable-xml --with-zlib --enable-sockets  --enable-mbstring --with-fpm-user=www --with-fpm-group=web

配置文件

cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
cp php.ini-production /usr/local/php74/etc/php.ini
cd /usr/local/php74/etc/
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf

增加启动服务

systemctl enable php-fpm

启停命令

systemctl start php-fpm
systemctl stop php-fpm
systemctl status php-fpm

修改启动器设置

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


ProtectSystem=full
改成
ProtectSystem=false

然后重新加载服务

systemctl daemon-reload
systemctl stop php-fpm
systemctl start php-fpm
systemctl status php-fpm

补充

如果安装完成后openssl扩展不能正常启用,说明php编译安装时调用的openssl-3.3.1也没能正常编译成功
请看:ubuntu24.04 php7.4.33编译安装openssl(动态扩展)

### 编译安装 libiio 的教程 #### 准备工作 为了确保可以顺利编译安装 `libiio`,需要先确认已经启用了 Ubuntu 宇宙仓库。这可以通过下面命令完成: ```bash sudo apt install software-properties-common sudo add-apt-repository universe ``` 上述操作能够使宇宙库中的软件包可用,这对于获取必要的构建工具和其他依赖项非常重要[^1]。 #### 更新本地包索引 在继续之前,更新系统的APT缓存以反映最新的更改: ```bash sudo apt update ``` 此步骤保证了后续安装过程中能获得最新版本的依赖关系。 #### 安装所需开发工具链及依赖项 对于编译源码来说,还需要一些额外的工具和支持文件: ```bash sudo apt-get install build-essential cmake git pkg-config libxml2-dev python3-sphinx doxygen graphviz ``` 这些工具涵盖了从基本C/C++编译环境到文档生成器在内的多个方面,有助于顺利完成整个过程。 #### 获取 libiio 源代码 通过Git克隆官方GitHub项目来下载最新版的 `libiio` 源代码: ```bash git clone https://github.com/analogdevicesinc/libiio.git cd libiio/ ``` 这样就得到了完整的源树结构以及所有必需的配置脚本。 #### 配置与编译 进入解压后的目录之后,创建一个新的子目录用于存放编译产物,并切换进去执行 CMake 命令来进行初步设置: ```bash mkdir build && cd build cmake .. make -j$(nproc) ``` 这里 `-j$(nproc)` 参数可以让 Make 使用尽可能多的核心加速编译速度;而 `..` 表示指向父级目录下的根路径以便读取顶层 CMakeLists.txt 文件。 #### 测试(可选) 如果想要验证刚刚编译出来的二进制是否正常运作,则可以在当前环境下运行测试套件: ```bash ctest . ``` 不过请注意,在某些情况下可能缺少特定硬件支持而导致部分功能无法被完全覆盖。 #### 正式安装 当一切准备妥当时就可以正式把新编译好的库文件部署至系统内: ```bash sudo make install ``` 至此便完成了 `libiio` 库的手动编译与全局范围内的安装流程。 #### 后续处理 最后一步是刷新共享对象链接名数据库让动态加载机制识别新增加的目标文件: ```bash sudo ldconfig ``` 现在应该能够在应用程序里成功调用该第三方接口所提供的服务了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值