亲测!Centos7 部署 PHP + Swoole

本文涉及的产品
云防火墙,500元 1000GB
简介: 由于新的项目需求,需要搭建PHP+swoole的环境,官网上的文档主要是以最新版的环境为主,测试很多次之后没法安装成功,也在一些博客网站上找了很多教程,要不完整,要么版本不对或者版本过老,走过很多弯路才安装好,为了让各位童鞋少走弯路,特此写下自己的安装和配置流程。以供参考!接下来,进入主题:

前言


由于新的项目需求,需要搭建PHP+swoole的环境,官网上的文档主要是以最新版的环境为主,测试很多次之后没法安装成功,也在一些博客网站上找了很多教程,要不完整,要么版本不对或者版本过老,走过很多弯路才安装好,为了让各位童鞋少走弯路,特此写下自己的安装和配置流程。以供参考!

接下来,进入主题:


准备:


Vmware 14

centos 7镜像:阿里云镜像Swoole:https://github.com/swoole/swoole-src/archive/v4.3.5.tar.gz

  • 注意:注意防火墙的开启和入站端口的开放

安装centos7:(需要安装centos的童鞋可参考此篇文章)

https://blog.csdn.net/lqy461929569/article/details/74199707


环境:

  • centos 7.2
  • php 7.2.5


基础命令:


查看phpize和php-config的目录

[root@localhost swoole-src-4.3.5]# whereis phpize

phpize: /usr/bin/phpize /usr/share/man/man1/phpize.1.gz

[root@localhost swoole-src-4.3.5]# whereis php-config

php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz

php安装目录一般在:/usr/local/php

php.ini配置文件路径:/usr/local/php/etc/php.ini

swoole 安装目录放在/usr/local/src


安装php截图:


安装php截图:

下载并配置PHP,版本7.2


网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|


安装Swoole前的准备工作

yum install autoconf   gcc  gcc-c++#安装编译需要的工具firewall-cmd --zone=public --add-port=80/tcp --permanent#让防火墙支持80端口tar -zxvf 需要解压的文件名 #是解压命令


注意:有些安装命令报错可能是没有权限,请加入sudo

mv是修改文件名或者移动文件 如果后面只有文件名那就是修改文件名,如果后面还带参数path就是移动(剪切)

如果你是使用wget下载,如果提示没有wget可以使用yum install wget,反正缺少啥就安装啥


gcc,pcre,autoconf,make #安装前要确保已经安装了,gcc -v 查看版本信息 不存在就是没安装


pcre安装方法  yum install pcre-devel php-pear
#安装Apacheyum install httpd
#官网上还有更高级的自定义安装命令./configure --prefix=/usr/local/swoole  #--prefix就相当于于Windows安装软件指定安装目录,后面的path就是安装到系统到系统的路径


准备工作完成之后,下面进入正式安装Swoole的:

还有最直接简单粗暴一键安装的方法是:pecl install swoole

这也是官方文档推荐的安装方式

如果大家不习惯使用vi的话,可以安装下nano #安装命令:yum install nano

我们这里说的是编译安装的方式:


1.安装php+Apache

#查看 centos 版本(我的是centos72)cat /etc/centos-release
#删除之前的 php 版本yum remove php* php-common
#rpm安装php7.1相应的yum源rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#用下面命令查看yum所拥有版本的各个插件yum list php*
#安装php7.2,也可以日后看需要什么就可以单独安装插件。yum install php72w php72w-opoache php72w-cli  php72w-devel
#安装需要等待一会#到这里php就按装完成了。#查看php版本php -v


用 whereis phpize查看路径,其中 php-config 和 phpize 所在的目录是相同的

#wss需要安装openssl支持而ws不需要yum install -yopenssl#安装ssl#开始$ sudo /usr/bin/phpize
$ sudo ./configure  --enable-openssl--with-php-config=/usr/bin/php-config #这个注意php-config的目录是你php真实安装路径#如果不需要wss 可以删除 --enable-openssl#宝塔面板可以点击php查看安装路径 ,我的是在/www/server/php/72/bin/php-config#如果是集成环境,需要使用名 find / -name "php-config" 查询路径。$ sudomake && sudomake install


2.接着开始安装swoole:

#我们使用这种方法安装,就不用下载源码了,直接下载压缩包$ sudowget https://github.com/swoole/swoole-src/archive/v4.3.5.tar.gz
$ ls#下载的到的压缩包$ sudo tar zxvf v4.3.5.tar.gz
tar 四个参数
x : 从 tar 包中把文件提取出来
z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
v : 显示详细信息
f xxx.tar.gz指定被处理的文件是 xxx.tar.gz
$ cd swoole-src-4.3.5
#用 whereis phpize查看路径,其中 php-config 和 phpize 所在的目录是相同的#编译准备phpize
./configure #检查安装环境是否正确#安装make && make install #编译和编译安装(自动执行)注释:如果有报错的可能需要
yum install php-pear
#修改php.inivim /etc/php.ini
#添加extension=swoole.so
#安装完毕。#查看是否成功#php -m或者$ php-m |grep swoole
swoole


使用命令php -m可查看swoole是否安装成功,如果在PHP的安装扩展列表中出现swoole就说明已安装成功


SWOOLE安装图片:


网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|


Mysql安装图片:


网络异常,图片无法展示
|


设置防火墙开放相关端口


#查看已经开放的端口号和协议
firewall-cmd --list-ports
#开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone是作用域,设置为public。
--add-port是添加开放的端口与协议,设置为80/tcp。
--permanent是设置为永久生效,否则重启后就无效了。
#设置后需要重启防火墙
firewall-cmd --reload
#如果要关闭防火墙,并且开机不在自动启动防火墙,需要输入下面的两个命令
systemctl stop firewalld.service #停止
systemctl enable firewalld.service #开机时启动


本文到这就结束了。

我的系统是centos7.4,有可能环境不同会导致你的失败,不过一般报错都是因为安装所需要的工具缺少,如果你安装不成功时,可以百度下相关原因或者在评论区留言讨论交流


#附录1

一、service方式

查看防火墙状态:
[root@localhost ~]# service iptables statusiptables:未运行防火墙。
开启防火墙:
[root@localhost ~]# service iptables start关闭防火墙:
[root@localhost ~]# service iptables stop

二、iptables方式

先进入init.d目录,命令如下:
[root@localhost ~]# cd /etc/init.d/[root@localhost init.d]#然后
查看防火墙状态:
[root@localhost init.d]# /etc/init.d/iptables status暂时关闭防火墙:
[root@localhost init.d]# /etc/init.d/iptables stop重启iptables:
[root@localhost init.d]# /etc/init.d/iptables restart


#附录2

一、Apache的操作

Linux httpd命令是Apache HTTP服务器程序。
httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。
apahce启动命令:
推荐/usr/local/apache2/bin/apachectl start apaceh启动
apache停止命令
/usr/local/apache2/bin/apachectl
stop   停止
apache重新启动命令:
/usr/local/apache2/bin/apachectl restart 重启
要在重启 Apache 服务器时不中断当前的连接,则应运行:
/usr/local/sbin/apachectl graceful
如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
目录
相关文章
|
3月前
|
编译器 Linux PHP
【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
|
2月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
137 0
|
2月前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
267 80
|
1月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
175 0
虚拟机centos7.9一键部署docker
|
2月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
410 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
2月前
|
Linux pouch 容器
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
120 2
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
|
2月前
|
缓存 程序员 PHP
为什么说 Swoole 是 PHP 程序员技术水平的分水岭?
【9月更文挑战第8天】Swoole 被视为 PHP 程序员技术水平的分水岭,因为它要求程序员深入理解底层原理(如网络编程、异步和并发模型),具备性能优化能力(如高效服务器开发、数据库连接池管理),拥有架构设计能力(如微服务架构、项目复杂度管理),并具备持续学习和自我提升意识。熟练掌握 Swoole 的程序员在技术能力和综合素质方面更具优势。
|
2月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
118 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
3月前
|
Linux 数据安全/隐私保护 网络虚拟化
centos7部署Pritunl
centos7部署Pritunl
|
3月前
|
Linux 数据安全/隐私保护 虚拟化
centos7部署openVPN
centos7部署openVPN