PHP7.4相关编译参数以及配置参考

#常规功能
yum install -y  libevent libevent-devel curl-devel libxml2-devel libsqlite3-devel
#GD2
yum install -y libjpeg-devel freetype-devel libpng-devel

#ubuntu
apt install pkg-config libxml2 libxml2-dev openssl libssl-dev sqlite3 libsqlite3-dev libpng-dev libjpeg-dev libfreetype-dev

#oniguruma
#centos7直接yum install oniguruma oniguruma-devel
#
wget -c https://github.com/kkos/oniguruma/releases/download/v6.9.7.1/onig-6.9.7.1.tar.gz -O oniguruma-6.9.7.1.tar.gz
tar -zxf oniguruma-6.9.7.1.tar.gz
cd onig-6.9.7
./configure --prefix=/usr
make && make install
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ \
--with-pear \
--enable-fpm \
--enable-exif \
--enable-bcmath \
--enable-mbregex \
--enable-mbstring \
--enable-libgcc \
--with-openssl \
--enable-gd \
--with-jpeg \
--with-freetype \
--without-pdo-sqlite \
--with-pdo-mysql=shared,mysqlnd \
--enable-pcntl \
--enable-bcmath \
--with-zlib-dir \
--enable-sockets 

make && make install

#编译安装完成后,初始化一些配置文件
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf 

#service启动脚本 
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
service php-fpm start
chkconfig php-fpm

#systemd 启动脚本 注意ProtectSystem配置可能需要修改
#部分系统的sytemctl可能因为版本问题无法使用 直接使用下面php-fpm.service配置进行修改或使用service代替
cp sapi/fpm/php-fpm.service /lib/systemd/system/ 
systemctl daemon-reload
systemctl start php-fpm
systemctl status php-fpm #查看状态
systemctl enable php-fpm #开机启动

#环境变量
vim /etc/profile
export PATH=/usr/local/php/bin:$PATH
:wq
source /etc/profile


#编译安装扩展(常规)
phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
pecl install redis
pecl install event #扩展依赖 apt install libevent-dev

readline扩展依赖 apt install libedit-dev
curl扩展依赖 apt install libcurl4-openssl-dev

#其他编译参数
--with-zlib-dir //pdo_mysql依赖它
--with-gettext  //文案国际化扩展
--with-mhash //加密扩展,新版都使用openssl,这个用不上了 https://baike.baidu.com/item/php%20Mhash/6372547?fr=aladdin
--with-iconv //iconv函数,字符集转换用
--with-bz2 //bz2压缩工具 
--enable-soap //启用soap协议
--enable-sockets //官方sockets扩展 event扩展依赖于它
--enable-sysvsem //进程通信信号管理,共享内存插件和shmop配合使用
--enable-xml
--enable-libxml
--enable-shmop	//启用shmop支持,此模块是一个易于使用的功能集,允许php读,写,创建和删除UNIX共享内存段
--enable-wddx
--enable-intl
#/usr/local/php/etc/php-fpm.d/www.conf
[global]
;请勿随意修改pid配置,该配置systemctl启动项有关联
pid = run/php-fpm.pid 
error_log = /var/log/php/php-fpm.log
log_level = notice
daemonize = yes
rlimit_files = 65535
events.mechanism = epoll
[www]
user = www
group = www
listen = 127.0.0.1:9000
listen.backlog = 65535
listen.owner = www
listen.group = www
listen.mode = 0666
pm = dynamic
pm.max_children = 400
pm.start_servers = 70
pm.min_spare_servers = 20
pm.max_spare_servers = 120
pm.process_idle_timeout = 10s;
pm.max_requests = 100000
request_terminate_timeout = 60
rlimit_files = 65535
#opcache配置
zend_extension=opcache.so
;opcache可用内存 Mb
opcache.memory_consumption=128
opcache.enable=1
opcache.enable_cli=1
;Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
opcache.interned_strings_buffer=8
;对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值 最大缓存文件 
opcache.max_accelerated_files=4000
;内存“浪费”达到此值对应的百分比,就会发起一个重启调度.
opcache.max_wasted_percentage=5
; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒
opcache.revalidate_freq=60
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1
 
; 开启这条指令, Zend Optimizer + 会自动将当前工作目录的名字追加到脚本键上,
; 以此消除同名文件间的键值命名冲突.关闭这条指令会提升性能,
; 但是会对已存在的应用造成破坏.
opcache.use_cwd=0
 
; 开启文件时间戳验证 关闭后不再自动刷新文件
opcache.validate_timestamps=1
 
; 允许或禁止在 include_path 中进行文件搜索的优化
;opcache.revalidate_path=0
 
http://www.cnblogs.com/HD/p/4554455.html
#加入systemctl 目录一般在 /lib/systemd/system/ 下
#systemctl daemon-reload
#systemctl start php-fpm
#systemctl enable php-fpm
#PID FILE ExecStart需要根据实际情况修改
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[Xdebug]
zend_extension=D:/phpstudy_pro/Extensions/php/php7.4.3nts/ext/php_xdebug.dll
xdebug.default_enable=On
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1

xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=Off
xdebug.profiler_enable=Off
xdebug.remote_enable=Off
;xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace
;xdebug.profiler_output_dir ="D:\phpstudy_pro\Extensions\tmp\xdebug"
;xdebug.remote_host=localhost
;xdebug.remote_port=9000
;xdebug.remote_handler=dbgp
`configure` 配置PHP 7.4.9以适应多种系统。

用法:./ configure [OPTION] ... [VAR = VALUE] ...

要分配环境变量(例如CC,CFLAGS ...),请将其指定为
VAR = VALUE。有关某些有用变量的说明,请参见下文。

选项的默认值在方括号中指定。

configure:
  -h,--help                  显示此帮助并退出
      --help=short            简短显示此软件包的选项
      --help=recursive        显示所有包含的软件包的简短帮助
  -V,--version                显示版本信息并退出
  -q,-quiet,-silent          不打印“检查中...”消息
      --cache-file=FILE        缓存测试结果在FILE中[已禁用]
  -C,“-cache-file=config.cache”的--config-cache别名
  -n,--no-create不创建输出文件
      --srcdir = DIR在DIR中找到源[configure dir或`..`]

安装目录:
  --prefix=PREFIX  在PREFIX中安装与体系结构无关的文件
                          [/usr/local]
  --exec-prefix=EPREFIX  在EPREFIX中安装与体系结构相关的文件
                          [PREFIX]

默认情况下,“make install”将安装所有文件
/usr/local/ bin,/usr/local/lib 等。您可以指定
使用`--prefix`的`/usr/local`以外的安装前缀,
例如`--prefix=$HOME`。

为了更好地控制,请使用以下选项。

微调安装目录:
  --bindir=DIR            用户可执行文件[EPREFIX/bin]
  --sbindir=DIR           系统管理员可执行文件[EPREFIX/sbin]
  --libexecdir=DIR        程序可执行文件[EPREFIX/libexec]
  --sysconfdir=DIR        只读单机数据[PREFIX/etc]
  --sharedstatedir=DIR    可修改的体系结构独立数据[PREFIX/com]
  --localstatedir=DIR     可修改的单机数据[PREFIX/var]
  --libdir=DIR            目标代码库[EPREFIX/lib]
  --includedir=DIR        C头文件[PREFIX/include]
  --oldincludedir=DIR     非gcc的DIR C头文件[/usr/include]
  --datarootdir=DIR       只读的独立于拱的数据根[PREFIX/share]
  --datadir=DIR           与架构无关的只读数据[DATAROOTDIR]
  --infodir=DIR           信息文档[DATAROOTDIR/info]
  --localedir=DIR         依赖于语言环境的数据[DATAROOTDIR / locale]
  --mandir=DIR            手册文件[DATAROOTDIR/man]
  --docdir=DIR            文档根[DATAROOTDIR/doc/ php]
  --htmldir=DIR           html文档 [DOCDIR]
  --dvidir=DIR            dvi文档 [DOCDIR]
  --pdfdir=DIR            pdf文档 [DOCDIR]
  --psdir=DIR             ps文档 [DOCDIR]

程序名称:
  --program-prefix=PREFIX           在已安装的程序名称前加上PREFIX
  --program-suffix=SUFFIX           将SUFFIX附加到已安装的程序名称
  --program-transform-name=PROGRAM  在已安装的程序名称上运行sed PROGRAM

系统类型:
  --build=BUILD             配置在 BUILD [guessed] 上构建
  --host=HOST               交叉编译以构建要在 HOST [BUILD] 上运行的程序
  --target=TARGET           配置为 TARGET [HOST] 构建编译器

可选功能和包:
  --disable-option-checking 忽略无法识别的 --enable/-with options
  --disable-FEATURE         不包含FEATURE(与 --enable-FEATURE=no 相同)
  --enable-FEATURE[=ARG]    包括功能 [ARG=yes]
  --with-PACKAGE[=ARG]      使用包 [ARG=yes]
  --without-PACKAGE         不要使用PACKAGE(与 --with-PACKAGE=no 相同)
  --with-libdir=NAME        在 .../NAME 中查找库,而不是在 .../lib 中查找
  --disable-rpath           禁用传递附加的运行时库搜索
                            路径
  --enable-re2c-cgoto       启用-g标志以re2c使用计算的goto gcc延期
  --disable-gcc-global-regs
                            是否启用GCC全局寄存器变量

SAPI模块:

  --with-apxs2[=FILE]       构建共享的Apache 2处理程序模块。FILE是
                            Apache apxs工具[apxs]的可选路径名
  --disable-cli             禁用构建PHP的CLI版本(这将强制
                            --without-pear)
  --enable-embed[=TYPE]     实验:启用构建嵌入式SAPI
                            库TYPE是“共享的”或“静态的”。
                            [TYPE=shared]
  --enable-fpm              启用fpm SAPI可执行文件的构建
  --with-fpm-user[=USER]    设置php-fpm的用户身份。 (默认:nobody)
  --with-fpm-group[=GRP]    设置php-fpm的运行组。对于系统
                            用户,通常应将其设置为与fpm匹配
                            用户名(默认:nobody)
  --with-fpm-systemd        激活系统集成
  --with-fpm-acl            使用POSIX访问控制列表
  --enable-litespeed        将PHP构建为litespeed模块
  --enable-phpdbg           构建phpdbg
  --enable-phpdbg-webhelper
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值