操作系统:Ubuntu18.04
编译需要安装的系统软件:pkg-config、libxml2、libxml2-dev、libsqlite3-dev
gd库扩展需要软件:libpng-dev
freestyle扩展需求(gd库要用)(FreeType 是一个免费提供的用于渲染字体的软件库):libfreestyle6-dev
curl扩展:curl、libcurl4-openssl-dev或libcurl4-nss-dev(openssl和nss都能提供密码库,在SSL Version处查看)
PHP-Apache
首先你要已安装Apache:Ubuntu 源码编译安装apache
- 编译PHP作为Apache的模块运行
cd 源码根目录
./configure --with-apxs2=/usr/local/apache2/bin/apxs \ # apxs是一个专门用来加载第三方应用模块的实用程序,apxs2对应apache2的apxs
--with-gd --with-freetype-dir \ # 开启gd库及相关扩展
--enable-mbstring \ # 启用mbstring
--enable-mysqlnd \ # 启用MySQL官方驱动
--with-pdo-mysql=mysqlnd \ # PHP Data Objects PHP数据对象,是PHP应用中的一个数据库抽象层规范(在php规范中添加mysqlnd对象)
--with-mysqli=mysqlnd \ # 启用mysqli
--with-curl # 启用curl,源码安装curl则一般需要写路径
make
make install
–enable-:多为php自己的扩展。
–with-:多为外部扩展或程序
- 放置php.ini文件(默认路径:/usr/local/lib)
cp php.ini-development /usr/local/lib/php.ini
- 检查 httpd.conf 文件是否调用 PHP 模块(编译PHP就是生成apache的php的module的过程,官方建议检查一下是否调用)
PHP 8 版本:LoadModule php_module modules/libphp.so
PHP 7 版本:LoadModule php7_module modules/libphp7.so
- 告知 Apache 将特定的扩展名文件使用 PHP解析(我添加在了httpd.conf最后面)
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
PHP-Nginx
首先你要已安装Nginx:Ubuntu 源码编译安装Nginx
- 编译安装php和php-fpm扩展
cd 源码根目录
./configure --with-apxs2=/usr/local/apache2/bin/apxs \ # apxs是一个专门用来加载第三方应用模块的实用程序,apxs2对应apache2的apxs
--with-gd --with-freetype-dir \ # 开启gd库及相关扩展
--enable-mbstring \ # 启用mbstring
--enable-mysqlnd \ # 启用MySQL官方驱动
--with-pdo-mysql=mysqlnd \ # PHP Data Objects PHP数据对象,是PHP应用中的一个数据库抽象层规范(在php规范中添加mysqlnd对象)
--with-mysqli=mysqlnd \ # 启用mysqli
--with-curl \ # 启用curl,源码安装curl则一般需要写路径
--enable-fpm # 开启php-fpm扩展
make
make install
–enable-:多为php自己的扩展。
–with-:多为外部扩展或程序
- php-fpm启用
/usr/local/sbin/php-fpm # 开启php-fpm
pkill php-fpm # 杀死进程
- 配置文件默认路径
vi /usr/local/etc/php-fpm.conf
提示:php-fpm.conf最后一行可能错误,include=NONE/etc/php-fpm.d/*.conf
需要自行修改到正确路径(手动移除NONE/
)
参考链接:
PHP官网:Unix 系统下的安装
PHP官网:FPM安装