麒麟操作系统服务架构保姆级教程(六)部署PHP环境

devtools/2024/12/28 18:52:15/

 如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

        本来小屁打算直接写LNMP架构的(LB负载均衡+Nginx+mysql+PHP),但是发现之前用过的包是红帽的吗,在麒麟上没法直接部署PHP,所以小屁用两天的时间整理了一篇二进制部署PHP服务的技术文档,那话不多说,咱们直接开干~~~~

目录

一、安装依赖环境

二、安装oniguruma-6.9.4

三、下载安装libmcrypt

四、编译安装php

五、修改配置

六、修改Nginx

七、测试


💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

一、安装依赖环境

[root@web01 ~]# yum -y install libtool sqlite-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel

二、安装oniguruma-6.9.4

[root@web01 ~]#wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
[root@web01 ~]#tar -xvf  oniguruma-6.9.4.tar.gz
[root@web01 ~]#cd oniguruma-6.9.4/
[root@web01 oniguruma-6.9.4]#./autogen.sh && ./configure --prefix=/usr --libdir=/lib64
[root@web01 oniguruma-6.9.4]#make&&make instal

 

三、下载安装libmcrypt

[root@web01 ~]# wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@web01 ~]#tar xf libmcrypt-2.5.8.tar.gz
[root@web01 ~]#
[root@web01 ~]#cd libmcrypt-2.5.8
[root@web01 libmcrypt-2.5.8]#./configure --prefix=/usr/local/libmcrypt
发现报错:
原因是缺少c语言的编译环境
[root@web01 libmcrypt-2.5.8]#yum install gcc-c++ -y
安装即可
​
重新配置
[root@web01 libmcrypt-2.5.8]#./configure --prefix=/usr/local/libmcrypt
[root@web01 libmcrypt-2.5.8]#make && make install

  

四、编译安装php

[root@web01 ~]# tar -xvf php-7.4.33.tar.gz 
[root@web01 ~]#cd php-7.4.33/
#编辑PHP的配置项
[root@web01 php-7.4.33]#./configure --prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \
--enable-inline-optimization --disable-debug --disable-rpath \
--enable-shared --enable-soap  --with-xmlrpc \
--with-openssl --with-mhash  --with-sqlite3 \
--with-zlib --enable-bcmath --with-iconv --with-bz2 \
--enable-calendar --with-curl --with-cdb --enable-dom \
--enable-exif --enable-fileinfo --enable-filter \
--enable-ftp  --with-openssl-dir --with-zlib-dir \
--enable-gd-jis-conv --with-gettext --with-gmp --with-mhash \
--enable-json --enable-mbstring --enable-mbregex  \
--enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
--with-zlib-dir --with-pdo-sqlite --with-readline --enable-session \
--enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg \
--enable-sysvsem --enable-sysvshm --with-xsl  \
--enable-mysqlnd-compression-support --with-pear \
--enable-opcache --disable-fileinfo
#编译安装
[root@web01 php-7.4.33]#make -j 3 && make install

五、修改配置

#添加环境变量
[root@web01 php-7.4.33]#echo "export PATH=$PATH:/usr/local/php/bin" >> /etc/profile
[root@web01 php-7.4.33]#source /etc/profile
​
#准备配置文件
[root@web01 php-7.4.33]#cp php.ini-production /usr/local/php/etc/php.ini
[root@web01 php-7.4.33]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@web01 php-7.4.33]#cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@web01 php-7.4.33]#ln -s /usr/local/php/etc/ /etc/php
​
#修改 /usr/local/php/etc/php-fpm.conf 运行用户和组改为nginx
[root@web01 php-7.4.33]#chown nginx.nginx /usr/local/php/etc/php-fpm.conf
[root@web01 php-7.4.33]#chown -R nginx.nginx /etc/php
​
#禁用PHP功能
[root@web01 php-7.4.33]#sed -i "s#disable_functions =#disable_functions =\"passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,wnam,posix_getpwuid, posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname\"#" /etc/php/php.ini 
​
#支持mysql
[root@web01 php-7.4.33]#sed -i "s#pdo_mysql.default_socket=#pdo_mysql.default_socket=/var/lib/mysql/mysql.sock#" /etc/php/php.ini
[root@web01 php-7.4.33]#sed -i "s#mysqli.default_socket =#mysqli.default_socket =/var/lib/mysql/mysql.sock#" /etc/php/php.ini 
​
#设置开机自启,并启动
[root@web01 php-7.4.33]#cp /root/php-7.4.33/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@web01 php-7.4.33]#chmod 755 /etc/init.d/php-fpm
[root@web01 php-7.4.33]#chkconfig php-fpm on
[root@web01 php-7.4.33]#systemctl start php-fpm
​
#查看PHP端口是否启动成功(默认9000)
root@web01 php-7.4.33]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1258/sshd: /usr/sbi 
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      144397/php-fpm: mas 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7314/nginx: master  
tcp6       0      0 :::22                   :::*                    LISTEN      1258/sshd: /usr/sbi 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           740/chronyd         
udp6       0      0 ::1:323                 :::*                                740/chronyd         
[root@web01 php-7.4.33]#

六、修改Nginx

#修改nginx
[root@web01 nginx]#cp /etc/nginx/conf/nginx.conf{,.bak}
[root@web01 nginx]#vim /etc/nginx/conf/nginx.conf
...location / {root   html;index  index.html index.htm index.php; #添加 index.php}
...location ~ \.php$ {root           /php/;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;#将/scripts$fastcgi_script_name修改为$document_root$fastcgi_script_name。fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}
...
#检查配置
[root@web01 nginx]#nginx -t 
[root@web01 nginx]#nginx -s reload  

七、测试

#测试
cat >  /php/index.php <<eof
<?phpphpinfo();?>
eof
curl http://localhost/index.php 
#浏览器访问测试
http://127.0.0.1/index.php

本来小屁在web界面也可访问的,但是应该是哪里配置有问题,只能curl到内容,下次直接搭建LNMP架构~~~~


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 


http://www.ppmy.cn/devtools/146178.html

相关文章

【python实战】-- pyinstaller使用

系列文章目录 文章目录 系列文章目录前言一、pyinstaller封装的exe启动慢&#xff0c;占用内存大1.建立新环境路径2.安装对应库3.更新库版本4.更新pip5.封装指定图标 二、覆盖率计算1.引入库 总结 前言 一、pyinstaller封装的exe启动慢&#xff0c;占用内存大 1.建立新环境路…

开放世界目标检测 Grounding DINO

开放世界目标检测 Grounding DINO flyfish Grounding DINO 是一种开创性的开放集对象检测器&#xff0c;它通过结合基于Transformer的检测器DINO与基于文本描述的预训练技术&#xff0c;实现了可以根据人类输入&#xff08;如类别名称或指代表达&#xff09;检测任意对象的功…

极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【二】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

【JavaEE】Spring Web MVC

目录 一、Spring Web MVC简介 1.1 MVC简介1.2 Spring MVC1.3 RequestMapping注解1.3.1 使用1.3.2 RequestMapping的请求设置 1.3.2.1 方法11.3.2.2 方法2 二、Postman介绍 2.1 创建请求2.2 界面如下&#xff1a;2.3 传参介绍 一、Spring Web MVC简介 官方文档介绍&#xff…

【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库

**前言&#xff1a;**本节内容介绍使用C/C访问数据库&#xff0c; 包括对数据库的增删查改操作。 主要是学习一些接口的调用&#xff0c; 废话不多说&#xff0c; 开始我们的学习吧&#xff01; ps:本节内容比较容易&#xff0c; 友友们放心观看哦&#xff01; 目录 准备mysql…

Python数据可视化小项目

英雄联盟S14世界赛选手数据可视化 由于本学期有一门数据可视化课程&#xff0c;课程结课作业要求完成一个数据可视化的小Demo&#xff0c;于是便有了这个小项目&#xff0c;课程老师要求比较简单&#xff0c;只要求熟练运用可视化工具展示数据&#xff0c;并不要求数据来源&am…

地理数据库Telepg面试内容整理-在Telepg数据库中,如何进行空间数据的存储与管理

在 Telepg 数据库中进行空间数据的存储与管理涉及几个关键的步骤和技术。Telepg 作为一个地理数据库,通常会采用一系列专门的空间数据类型、索引机制和空间查询功能来高效地存储、管理和查询空间数据。以下是如何在 Telepg 数据库中存储和管理空间数据的具体方法: 空间数据类…

HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据文件资产迁移

文件资产迁移&#xff0c;对于图片、文档等文件类数据&#xff0c;需要先将其转换为资产commonType.Asset类型&#xff0c;再封装到分布式数据对象中进行迁移。迁移实现方式与普通的分布式数据对象类似&#xff0c;下面仅针对差异部分进行说明。 在源端&#xff0c;将需要迁移…