LNMP架构(二):PHP
目录一、php部署1.1php安装1.2php配置二、nginx与php整合2.1部署2.2测试三、php动态扩展模块3.1添加memcahe模块3.2测试1.1php安装下载php-8.3.32.tar.gz压缩包解包解压缩在编译的时候要用一个普通用户的身份来运行php先创建一个新的普通用户-M不自动生成 /home/www 家目录-d /usr/local/php指定该用户的家目录为 /usr/local/php-s /sbin/nologin禁止此用户登录操作系统安全用途php 进程账号只允许运行程序不能 ssh 登录先做必要的环境检测--prefix/usr/local/phpPHP 程序安装根目录二进制、扩展、配置文件全部部署在此。--with-config-file-path/usr/local/php/etc指定 php.ini 的默认搜索目录。--enable-fpm编译启用 PHP-FPMNginx 反向代理解析 PHP 必不可少。--with-fpm-userwww--with-fpm-groupwwwphp-fpm 工作进程运行身份为 www 用户 / 组注意系统需要提前创建www账号运行模式 性能优化--enable-cli启用 PHP 命令行模式shell 脚本、定时任务执行 php 脚本使用--enable-opcachePHP 字节码缓存扩展生产环境核心优化大幅提升 PHP 运行速度MySQL 数据库相关全部使用原生 mysqlnd 驱动--enable-mysqlnd启用 MySQL 原生驱动不依赖系统 libmysql现代 PHP 推荐方案--with-mysqlimysqlndmysqli 数据库扩展绑定 mysqlnd 驱动--with-pdo-mysqlmysqlndPDO MySQL 驱动主流 PHP 框架数据库依赖字符、图像处理--enable-mbstring多字节字符串扩展UTF-8 中文、字符串处理必备--enable-xml基础 XML 解析支持--enable-gdGD 图像库生成验证码、缩略图、图片处理核心扩展--with-jpegGD 库支持 JPEG 图片--with-freetypeGD 库支持 TTF 字体图片写入文字需要网络、压缩、加密库--with-zip/usr/local/libzip启用 zip 压缩扩展指定手动编译安装的 libzip 路径不是系统自带库--with-curlCurl 扩展发起 HTTP/HTTPS 接口请求、爬虫必备--with-openssl/usr/local/openssl指定自定义编译的 openssl 目录使用新版本 SSL 库支持 HTTPS、加密函数--with-zlibzlib 压缩库支持 gzip 压缩业务扩展--enable-bcmath高精度数学运算金融、金额计算场景使用--enable-soap支持 SOAP WebService 接口--enable-sockets底层 Socket TCP/UDP 通信扩展--enable-exif读取图片 EXIF 信息拍照时间、GPS 信息等--with-readlinephp cli 交互式命令行增强逐步解决问题缺少libxml且版本要大于等于2.9在软件包里搜索下载合适的版本再次检测继续解决新问题缺少sqlite且版本大于等于3.7继续搜索合适版本并下载即可继续检测缺少libcurl且版本大于7.29继续检测缺少libpng没有规定版本有什么装什么即可继续检测缺少libjpeg注意安装名称继续检测缺少freetype搜索并安装继续检测遇到这种没有软件包的情况可以直接去扩源去阿里云镜像站搜索对应软件包所对应的版本安装下来即可先搜索对应版本架构下的软件包找到对应版本的官方下载链接将源下载下来之后继续搜索oniguruma软件包下载下来即可解决完之后继续检测问题直到不报错为止这种是libzip版本要大于等于0.11并且不等于1.3.1和1.7.0发现版本不够要进行升级版本不合适的话安装下来会不起作用可以去官网下载合适的版本升级libzip解包解压缩之后进入到libzip目录先创建一个build目录安装cmake3cmake版本太低在编译的时候会出现报错创建一个cmake3的软连接方便后续使用在libzip-1.9.2/build下用cmake命令进行编译这条命令用于 libzip 源码配置指定安装路径/usr/local/libzip开启动态库编译末尾..表示源码在上一级目录执行后生成 Makefile 用于后续编译安装此时会缺少bzip2-devel和zstd搜索并安装然后继续执行cmake完成之后开始make注意make -j编译的时候不能超过你的cpu核心数有两个就直接make -j2开始编译即可然后make install安装注册动态链接库echo /usr/local/libzip/lib64 /etc/ld.so.conf.d/libzip.conf作用向动态链接器配置目录新建配置文件 libzip.conf写入路径 /usr/local/libzip/lib64。告诉系统动态链接加载器去这个目录寻找 .so 动态共享库文件然后运行ldconfigs使其加载设置环境变量export PKG_CONFIG_PATH/usr/local/libzip/lib64/pkgconfig然后验证是否识别成功这个动作必须在编译php之前做好完成之后继续进行php编译注意要在--with-zip后指定路径--with-zip/usr/local/libzip无报错就代表编译完成此时因为openssl版本过低会出现报错要升级openssl版本先卸载原有openssl版本避免出现冲突下载源码wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz然后编译首先执行./config shared zlib --prefix/usr/local/openssl这条命令用于配置 OpenSSL 编译开启动态共享库、启用 zlib 压缩设定安装目录 /usr/local/openssl为后续make make install做准备然后make -j2make install动态链接库注册echo /usr/local/openssl/lib /etc/ld.so.conf.d/openssl.confldconfig扫描系统库目录更新 /etc/ld.so.cache 动态库缓存索引核心环境变量export PKG_CONFIG_PATH/usr/local/openssl/lib/pkgconfig:$PKG_CONFIG_PATH验证pkg-config能否识别回到php在--with-openssl后指定路径--with-openssl/usr/local/openssl如果不加路径就会分散到usr/local底下的各个路径不方便查找最后检错没有报错之后make -j2make install1.2php配置在php里是有它的启动脚本的首先要完善主配置文件它有一个开发环境和一个生产环境把生产环境文件php.ini-production拷贝到/usr/local/php/etc注意拷贝过去的时候需要修改名字把php.ini-production修改为php.ini文件然后在/php-8.3.32/sapi/fpm/里有一个启动文件把它拷贝到/etc/systemd/system里然后在/etc/systemd/system/里编辑 php-fpm.service文件把ProtectSystemfull注释掉不然php无法启动然后进入到/usr/local/php/etc/修改它的主配置文件名删掉后面的default修改完成之后执行systemctl daemon-reload让 systemd 重新扫描所有服务配置文件加载最新的服务单元配置然后启动php服务并设置开机自启这时就会有一个9000端口然后将/usr/local/php/bin/底下的命令放到.bash_profile里执行source .bash_profile启用这样php命令就出来了查看 PHP CLI命令行模式版本信息同时验证 PHP 是否编译安装成功、动态库依赖是否正常查看 CLI 模式下 PHP 已加载的所有扩展模块定义php的时区不然php的时间显示是有问题的在/usr/local/php/etc底下编辑配置文件vim php.ini在/usr/local/php/etc里编辑vim php-fpm.conf文件去掉pid的注释因为它的default默认是空的修改完成之后重载php服务systemctl reload php-fpm.service这样我们的php就部署完成二、nginx与php整合2.1部署编辑nginx.conf文件添加php修改完成之后nginx -tnginx -s reload使其生效2.2测试先设置一个php首页vim index.php在浏览器搜索192.168.11.150/index.php就可以看见php页面三、php动态扩展模块3.1添加memcahe模块php可以通过memcahe模块来直接使用我们的内存编译memcahe模块首先下载memcahe然后解包解压缩安装缺少的autoconfyum install -y autoconfphpize 为 PHP 外部扩展生成 configure 编译脚本用于 PHP 安装完成后动态编译新增扩展然后就可以直接执行./configuremakemake install编译安装完成之后执行php -m |grep memcache发现memcache还不能生效此时需要进入到/usr/local/php/etc/php.ini文件里进行修改在其中找到动态编译模块加入extensionmemcache修改完成之后注意要重载php服务systemctl reload php-fpm.service再次过滤就已经有了接着安装memcache服务yum install -y memcached并设置开机自启systemctl enable --now memcached.service然后将memcache底下的两个文件拷贝到/usr/local/nginx/html/下的默认发布目录里面cp memcache.php example.php /usr/local/nginx/html/然后编辑主配置文件vim memcache.php将多余的服务删掉且将memcache服务指向本机localhost然后自定义用户名和密码3.2测试此时浏览器访问192.168.11.150/example.php就已经生效再访问192.168.11.150/memcache.php输入用户名和密码就可以进入通过memcache就可以提升php的性能使其能够读写我们的内存

相关新闻

最新新闻

日新闻

周新闻

月新闻