#常规功能 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 |