CentOS7下源码方式安装Tengine+PHP5.5.38


title: CentOS7下源码方式安装Tengine+PHP5.5.38
categories: Linux
tags:
- Tengine
- PHP
timezone: Asia/Shanghai
date: 2019-02-25

环境

[root@centos181001 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

[root@centos181001 ~]# /opt/tengine/sbin/nginx -v
Tengine version: Tengine/2.2.2 (nginx/1.8.1)

第一步:关闭系统默认防火墙

setenforce 0
sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/config
which systemctl && systemctl stop firewalld
which systemctl && systemctl disable firewalld
which systemctl && systemctl stop iptables || service iptables stop
which systemctl && systemctl disable iptables || chkconfig iptables off

第二步:安装Tengine(在线yum安装和离线源码方式安装)

安装方法1:离线安装

1.配置本地yum并安装开发工具

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

cat <<EOF >/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
EOF

yum clean all       #清理本地缓存
yum clean plugins   #清理插件缓存
yum makecache       #构建缓存

yum group install -y "Development Tools"

2.下载安装PCRE

curl -o /home/pcre-8.42.tar.gz https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
tar vxzf pcre-8.42.tar.gz
cd pcre-8.42
./configure
make
make install

3.下载安装zlib

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar vxzf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

4.下载安装OpenSSL

wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
tar vxzf openssl-1.1.1a.tar.gz
cd openssl-1.1.1a
./config
make
make install

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

openssl version

5.下载并安装Tengine

curl -o /home/tengine-2.2.3.tar.gz http://tengine.taobao.org/download/tengine-2.2.3.tar.gz
tar -vxf tengine-2.2.3.tar.gz
cd tengine-2.2.3
./configure --with-http_ssl_module
make
make install

6.完成安装并启动

默认安装路径:/usr/local/nginx

# 启动Nginx
/usr/local/nginx/sbin/nginx

# 优雅的重启(重载配置文件,如果配置文件有错误的话,会继续使用之前配置运行)
/usr/local/nginx/sbin/nginx -s reload
    -s stop     快速停止
    -s quit     优雅的退出
    -s reopen   重新打开日志文件
    -s reload   重新加载配置文

# 测试配置文件是否正确
/usr/local/nginx/sbin/nginx -t
安装方法2:采用阿里云官方yum源方式安装

1.设置Tengine官方YUM源:CentOS7

curl -o /etc/yum.repos.d/opsx-centos7.repo https://mirrors.aliyun.com/opensource/149994924900000037/opsx/centos7/opsx-centos7.repo
yum clean all       #清理本地缓存
yum clean plugins   #清理插件缓存
yum makecache       #构建缓存

3.安装Tengine并启动

yum install -y tengine
/opt/tengine/sbin/nginx

4.配置文件路径

默认安装路径在:/opt/tengine

# 测试配置文件是否正确
/opt/tengine/sbin/nginx -t

# 优雅的重启(重载配置文件,如果配置文件有错误的话,会继续使用之前配置运行)
/opt/tengine/sbin/nginx -s reload
    -s stop     快速停止
    -s quit     优雅的退出
    -s reopen   重新打开日志文件
    -s reload   重新加载配置文

注意:在CentOS7下只配置Tengine官方yum源可以安装成功,REHL7下提示缺少依赖,所以这里同时配置了163的yum源。
cat <<EOF >/etc/yum.repos.d/163.repo
[163]
name=163
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
gpgcheck=0
enabled=1
EOF

第三步:安装PHP5.5.38

1.安装支持
yum install -y libxml2 \
                libxml2-devel \
                libjpeg-devel \
                libpng-devel \
                freetype-devel \
                openldap \
                openldap-devel

cp -frp /usr/lib64/libldap* /usr/lib/
2.下载安装PHP
wget http://101.96.10.58/cn2.php.net/distributions/php-5.5.38.tar.gz
tar -vxf php-5.5.38.tar.gz
cd php-5.5.38
./configure --enable-mbstring \
            --enable-sockets --with-mysql --with-gettext \
            --with-ldap --with-png-dir --with-jpeg-dir \
            --with-freetype-dir --with-gd \
            && echo $?
make
make test
make install && echo $?

安装过程中可能遇到的错误:
error adding symbols: DSO missing from command line

解决方法:
在PHP源码目录下打开 Makefile 找到 EXTRA_LIBS 行,在行末添加 -llber 保存退出再次make clean && make即可。

https://segmentfault.com/a/1190000002462705
3.获取配置文件并将其移动到正确的位置
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
4.修改配置文件防止脚本注入
# It is important that we prevent Nginx from passing requests to the PHP-FPM backend if the file does not exists, 
# 重要的是,如果文件不存在,我们阻止Nginx将请求传递给PHP-FPM后端
# allowing us to prevent arbitrarily script injection.
# 这样我们就可以防止任意脚本注入。
# We can fix this by setting the cgi.fix_pathinfo directive to 0 within our php.ini file.
# 我们可以通过在php.ini文件中将cgi.fix_pathinfo 指令设置为0来解决这个问题 。

vim /usr/local/php/php.ini
# 修改为:
cgi.fix_pathinfo=0
5.现在可以启动php-fpm服务
/usr/local/bin/php-fpm
6.修改Tengine配置文件
vim /usr/local/nginx/conf/nginx.conf

# 增加以下内容
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        #fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
        include        fastcgi_params;
    }

# 修改以下内容(增加index.php)
location / {
        root   html;
        index  index.html index.htm;
    }
7.重启Nginx服务并测试
vim /usr/local/nginx/html/index.php

<?php
    	phpinfo();
?>

/usr/local/nginx/sbin/nginx -s reload



yum install curl curl-devel


./configure --enable-mbstring
–enable-fpm
–enable-sockets
–with-gettext
–with-ldap
–with-png-dir
–with-jpeg-dir
–with-freetype-dir
–with-gd
–with-pdo-mysql
–with-mysql-sock=/var/lib/mysql/mysql.sock
–with-curl=/usr/local/lib/curl/
–with-mysqli=/usr/bin/mysql_config

extension=curl.so

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值