阿里云CentOs7.3编译安装PHP7、Git和Swoole

一、下载解压php

wget https://www.php.net/distributions/php-7.2.20.tar.bz2
tar -xjvf php-7.2.20.tar.bz2
cd php-7.2.20

注意:如果解压不成功,可能是因为没有bzip2解压工具

yum install -y bzip2

安装依赖包:

yum install -y gcc autoconf gcc-c++ libxml2 libxml2-devel openssl openssl-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 systemd-devel openjpeg-devel

添加php-fpm用户

# 创建群组
groupadd php-fpm

# 创建一个用户,不允许登陆和不创主目录 
useradd -s /sbin/nologin -g php-fpm -M php-fpm

 

二、编译安装php

# --prefix=php安装路径 --with-config-file-path=配置文件路径
./configure --prefix=/usr/local/php-7.2.20 \
--with-config-file-path=/usr/local/php-7.2.20 \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-xmlreader \
--enable-xmlwriter \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--with-gd \
--with-pdo-sqlite \
--with-pdo-mysql \
--with-mysqli \
--with-mysql-sock \
--enable-mysqlnd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-openssl \
--enable-ftp \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-fpm-systemd \
--disable-fileinfo

出现问题了:

解决问题:

yum install libxml2-devel

重新执行上面命令,编译成功:

执行命令:(时间长,我大概等了10分钟)

make

make 完后执行命令:

make install

 

三、测试PHP

创建一个 php 测试文件,输出“Hello World”;

cd /usr/local/php-7.2.20
vim test.php

按:wq保存

然后执行命令:

./bin/php test.php

测试成功,编译安装php成功。

 

注意:这时你执行 php -v 会提示没有php命令,先去 /etc/profile 添加环境变量

vim /etc/profile

 

最后执行命令,使环境变量生效:

source /etc/profile

这时执行 php -v 就可以看到php的版本了:

同时,我们每次执行php脚本时也不用带上 /usr/local/php-7.2.20/bin/php 这么一长串东西了,直接 php test.php 就行了:

 

四、PHP配置文件

发现php安装目录下没有配置文件,这需要去源码中(刚才那个php解压文件)复制过来:

cp ~/php-7.2.20/php.ini-production /usr/local/php-7.2.20/php.ini

如果我们不知道配置文件的路径,我们可以通过以下方式查看 php.ini 的路径:

php -i | grep php.ini

或者

php --ini

配置错误日志:

cp /usr/local/php-7.2.20/etc/php-fpm.conf.default /usr/local/php-7.2.20/etc/php-fpm.conf 
vim /usr/local/php-7.2.20/etc/php-fpm.conf
#  配置错误日志
error_log = /var/log/php72/php-fpm.log
# 配置pid文件
pid = /var/run/php72/php-fpm.pid

保存退出。

创建错误日志目录和pid目录:

mkdir -p /var/log/php72
mkdir -p /var/run/php72
cd /usr/local/php-7.2.20/etc/php-fpm.d
cp www.conf.default www.conf

管理php-fpm配置:

# cd到刚才php的解压文件
cd ~/php-7.2.20/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/

配置开机启动php-fpm:

systemctl enable php-fpm

启动php-fpm:

service php-fpm start

 

五、编译安装Git

先安装git依赖

# Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# 为了能够添加更多格式的文档(如 doc, html, info),你需要安装以下的依赖包
yum install asciidoc xmlto docbook2x

在github下载最新版本:https://github.com/git/git/releases

wget https://github.com/git/git/releases/tag/v2.22.0
tar zxvf v2.22.0.tar.gz
cd git-2.22.0

编译安装:(我安装在 /usr/local/git 目录里)

make prefix=/usr/local/git all
make prefix=/usr/local/git install

配置环境变量:

vim /etc/profile

# 然后在文件的最后一行,添加下面的内容,然后按 :wq 保存退出。
export PATH=$PATH:/usr/local/git/bin

# 先移除自带的git包
yum remove git

# 使用source命令生效。
source /etc/profile

查看git版本:

配置git:(设置用户名和email)

git config --global user.name “YourName”
git config --global user.email "YourEmail@domain.com"

为github账号添加SSH keys:

ssh-keygen -t rsa -C "YourEmail@domain.com"

系统会提示 key 的保存位置(一般是 ~/.ssh 目录)和指定口令,保持默认,连续三次即可

然后cat获取 id_rsa.pub 文件内容,粘贴到github账号管理的添加SSH KEY界面中:

cat ~/.ssh/id_rsa.pub

然后将id_rsa.pub文件中的内容粘贴到gitub的“SSH and GPG keys” 里 “SSH Keys”中。最后测试一下:

ssh -T git@github.com

 

六、编译安装Swoole

好了,接下来下载Swoole:https://gitee.com/swoole/swoole

git clone https://gitee.com/swoole/swoole.git
cd swoole

发现 swoole 里没有 configure 的文件,所以要通过php中的 phpize 来安装扩展:(phpize是用来安装php扩展

/usr/local/php-7.2.20/bin/phpize

出现错误了,提示没有安装 autoconf ,那就安装一下吧:

yum -y install autoconf

然后再执行 /usr/local/php-7.2.20/bin/phpize 。

发现 swoole 文件夹里多了一些文件,包括 configure :

./configure --with-php-config=/usr/local/php-7.2.20/bin/php-config
make
make install

我们的扩展在 /usr/local/php-7.2.20/lib/php/extensions/no-debug-non-zts-20170718 里,里面多了 swoole.so 的文件:

接着,我们需要去开启我们的扩展,在php配置文件中开启扩展:

# 编辑php配置文件
vim /usr/local/php-7.2.20/php.ini

# 在配置文件中新增一行,按 :wq 保存退出
extension=swoole

我们看一下 swoole扩展 是否开启成功:

php -m

最后,我们测试一下,swoole 文件夹里的 examples 提供了一些案例进行参考。

我们执行 weather_server.php ,这个文件开启了9100端口:

采用之前我们定义的php命令执行 weather_server.php 文件:

cd ~/swoole/examples
php weather_server.php

文件已经在执行了,我们查看一下9100端口是否开启:

netstat -anp | grep 9100

端口确实已经开启,接着退出 weather_server.php (Ctrl+C),再查看一下端口:

发现端口已经关闭了,测试成功。

 

至此,基于阿里云Centos7.3源码编译安装PHP7、Git、Swoole已经完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值