环境: Linux Centos 7.x。 Nginx 最新版本, PHP 最新版本。
环境安装
安装 libxml2
yum -y install libxml2 libxml2-devel
安装 sqlite
yum install sqlite-devel
安装 libcurl
sudo yum install -y libcurl-devel.x86_64
安装 oniguruma
yum install oniguruma oniguruma-devel
安装 libxslt
yum install libxslt-devel
gd环境
yum install libpng-devel
php安装
查看可以开启的扩展
进入源文件目录中
cd php-7.4.10
./configure -h
安装
./configure --prefix=/usr/local/php --with-curl=/usr/local/curl --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-gd --enable-intl
make
make install
配置
安装完成后,PHP的文件都在目录 /usr/local/php 里面
cd php-7.4.10
cp php.ini-development /usr/local/php/lib/php.ini
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d
cp www.conf.default test.conf
其中 www.conf.default 默认的服务端口为 9000。
Nginx 配置
假设 php 文件放置于 nginx/html/php 里面 (nginx/html/php/index.php)
新建 php 配置,配置内容为:
server {
listen 12000;
server_name 127.0.0.0 example.com;
location / {
root html/php/;
index index.php index.html index.htm;
}
location ~* \.php$ {
root html/php/;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9200;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
cd /usr/local/nginx/html/php
chown -R user.user ./*
chmod -R 777 ./*
启动服务
1 启动 php-fpm
cd /usr/local/php
./sbin/php-fpm
2 启动nginx
cd /usr/local/nginx
./sbin/nginx
或者重载
cd /usr/local/nginx
./sbin/nginx -s reload
参考文章:
如何编译安装oniguruma
https://www.cmdschool.org/archives/9902
linux安装php详细过程
https://blog.csdn.net/belen_xue/article/details/79418744
CentOS 编译错误+配置错误解决方法集合
https://blog.csdn.net/qq_32828933/article/details/103756240