TencentOS3.1安装PHP+Nginx+redis测试系统_tencentos-3.1-程序员宅基地

技术标签: nginx  php  Linux(CentOS  redis  

PHP和Nginx应用统一安装在/application下。

Nginx选用了较新的版本1.25.0

官网下载安装包,解包。执行如下命令编译:

./configure  --prefix=/application/nginx-1.25.0 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --add-module=/application/headers-more-nginx-module-0.34

这里nginx用了一个扩展模块,使用add-module添加。

编译完成后执行如下命令完成安装。

make && make install

完成编译安装需要gcc支持,如果没有,使用如下命令安装。

yum install gcc -y

配置好配置文件然后启动服务。

可以直接使用sbin下的nginx命令启动服务。这里使用了一个启动脚本来启动服务。

如下:

#! /bin/sh
 
### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO
 
#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DAEMON=/application/nginx/sbin/nginx
DAEMON_OPTS='-c /application/nginx/conf/nginx.conf'
NAME=nginx
DESC=nginx
 
test -x $DAEMON || exit 0
 
# Include nginx defaults if available
#if [ -f /etc/default/nginx ] ; then
#  . /etc/default/nginx
#fi
 
set -e
 
case "$1" in
  start)
    echo -n "Starting $DESC: "
    #start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
    $DAEMON
    echo "$NAME."
    ;;
  stop)
    echo -n "Stopping $DESC: "
    #start-stop-daemon --stop --quiet --pidfile /var/run/nginx.pid --exec $DAEMON
    $DAEMON -s stop
    echo "$NAME."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: "
    #start-stop-daemon --stop --quiet --pidfile /var/run/nginx.pid --exec $DAEMON
    $DAEMON -s stop
    sleep 1
    #start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
    $DAEMON
    echo "$NAME."
    ;;
  reload)
    echo -n "Reloading $DESC configuration: "
    #start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/nginx.pid \
    #    --exec $DAEMON
    $DAEMON -s reload
    echo "$NAME."
    ;;
  status)
    echo  "nginx processing total:"
    ps aux |grep  "nginx" |grep -v "grep" |grep -v "status"|wc -l
    echo
   ;;
  configtest)
    $DAEMON -t $DAEMON_OPTS 
    ;;
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|configtest|force-reload}" >&2
    exit 1
    ;;
esac
 
exit 0

下面安装PHP。版本安装了2个7.1.33和8.0.27

安装过程基本一致,下面是安装7.1.33的步骤。

官网下载安装包并解包。

执行如下编译命令:

./configure  --prefix=/application/php-7.1.33 --enable-zip --with-libzip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache=no
此时可能报错。主要原因是缺少依赖包支持。下面是部分报错信息:

错误信息1

 执行如下命令,检查已经安装的包和可安装的包。

rpm -qa | grep libjpeg
yum list  | grep libjpeg

 安装依赖包命令如下:

yum -y install libjpeg-devel

 错误信息2

执行如下命令,检查已经安装的包和可安装的包。

rpm -qa | grep libjpeg
yum list  | grep libjpeg

 安装依赖包命令如下:

yum install libpng-devel

 错误信息3

执行如下命令,检查已经安装的包和可安装的包。

rpm -qa |grep freetype
yum list |grep freetype

  安装依赖包命令如下:

yum install freetype-devel

 错误信息4

 安装依赖包命令如下:
yum install libmcrypt*

 这个依赖包需要epel源,如果没有,清线安装epel源。

可以使用如下命令:

yum install epel-release

我这里简单粗暴复制了一个epel源文件过来,然后清理缓存再生成缓存。

yum clean all && yum makecache

错误信息5

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

安装依赖命令如下:
yum install libxslt libxslt-devel

错误信息6

 

 安装依赖包命令如下:

yum install libzip libzip-devel 

 编译php成功后执行make && make install完成安装

php配置文件有4个。分别是etc/pear.conf,etc/php-fpm.conf, etc/php-fpm.d/www.conf,lib/php.ini

php源文件目录下,复制启动脚本,并给与执行权限:

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm 

启动服务:

/etc/init.d/php-fpm start

php8安装基本一致,因为一个服务期内有2个版本,所以注意修改不同的安装目录和端口号。

etc/php-fpm.d/www.conf文件中listen选项就是定义绑定地址和端口号的

php扩展安装

下载redis扩展包,然后解包。

以php7.1.33安装扩展为例

在redis扩展安装包目录内:

/application/php-7.1.33/bin/phpize

./configure --with-php-config=/application/php-7.1.33/bin/php-config

make && make install

完成后会提示一个路径,该路径就是redis.so文件所在位置。

修改php.ini,增加如下一行:

extension=/application/php-7.1.33/lib/php/extensions/no-debug-non-zts-20160303/redis.so

保存退出。重启php-fpm服务即可。

redis服务安装,使用yum最方便

yum install redis

redis配置文件在/etc下,redis.conf

注意绑定IP,修改端口以及设置认证选项

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bigwood99/article/details/131637943

智能推荐

拓扑序列(拓扑排序)-程序员宅基地

拓扑排序是对有向图中节点进行排序的算法,要求节点之间不存在环。通过统计入度为0的节点并将其指向的节点入度减一,依次进行操作,直到所有节点都被分离出来。如果最后不存在入度为0的节点,则说明存在环。

[计算机毕业设计]MATLAB的人脸识别-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏23次。计算机毕业设计之matlab人脸识别:在过去的十年中已经提出了几种用于图像处理和计算机视觉应用的机器学习算法。LBP,HAAR是一些流行的算法,广泛用于人脸识别并产生出色的结果。但是大多数这些算法不适合在无约束环境中进行实时识别。最近最先进的深度学习技术已经成为传统机器学习算法的新宠。人脸识别应用程序使用的图像只是范围(0-255)中像素值的组合。算法在那些灰度值中找到区别模式并将其视为被认为对于每个图像唯一的特征。然而在3D图像中,不存在像素信息,而是仅每个点的位置(x,y,z)可用。

习题6-5 使用函数验证哥德巴赫猜想 (20分)_6-5 使用函数验证哥德巴赫猜想 (20 分) 本题要求实现一个判断素数的简单函数,并利-程序员宅基地

文章浏览阅读185次。本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数..._6-5 使用函数验证哥德巴赫猜想 (20 分) 本题要求实现一个判断素数的简单函数,并利

Ubuntu键盘鼠标失灵_ubuntulinux鼠标雄安是-程序员宅基地

文章浏览阅读3.9k次。近期不知安装了什么package,导致 ubuntu 开机后键盘鼠标一直没法用,刚开始以为是 ubuntu 桌面环境崩溃了,后来发现系统能显示连接到网络、时间也在运行,那应该就是键盘鼠标失灵了。网上查了一下,应该是 xserver-xorg-input-all 包被删除了,重新安装一下就可以了!方法如下:重启系统按 Esc 进入 grup 引导界面,选择 Advanced Option,再选择 recovery mode,按 Enter 进入选择 resume 进入,屏幕左上角会出现一直闪烁的_ubuntulinux鼠标雄安是

设计删除顺序表中【x,y】中的所有元素算法_关任务:设计一个高效的用于删除整数顺序表 l 中所有值在[x,y]范围内的元素的-程序员宅基地

文章浏览阅读8.9k次,点赞2次,收藏15次。线性表L采用顺序存储结构,删除元素在[x,y]之间的所有元素。代码如下:#include #include using namespace std;#define MaxSize 10typedef char ElemType;typedef struct{ ElemType data[MaxSize]; int length;}SqList;void In_关任务:设计一个高效的用于删除整数顺序表 l 中所有值在[x,y]范围内的元素的

pandas 取excel 中的某一列_Pandas进阶修炼120题,给你深度和广度的船新体验-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏23次。Pandas 是基于 NumPy 的一种数据处理工具,该工具为了解决数据分析任务而创建。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的函数和方法。和鲸社区的@刘早起同学创作了这个项目,其中包含Pandas基础、Pandas数据处理、金融数据处理、当Pandas遇上NumPy、补充内容 5个部分。在深度和广度上,都相较之前的Pandas习题系列有了很大的提升。此前的..._在运用pandas进行数据分析时,可以用df.append(df.iloc[7])将第8行数据添加到末尾

随便推点

【Mybatis源码解析第九章】说说Mybatis中的ExecutorType_mybatis executortype-程序员宅基地

文章浏览阅读2.5k次。缘起在使用mybatisplue的过程中,发现如果一个事务中执行了插入又执行了批量插入的话就会报错Cannot change the ExecutorType when there is an existing transaction[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iFLCqrsB-1582688327549)(http://www.bxoon...._mybatis executortype

java开发操作系统:同时运行多窗口多任务_java jni 同时管理多个窗口-程序员宅基地

文章浏览阅读1.8k次。创建操作系统的多窗口多进程功能_java jni 同时管理多个窗口

ElasticSearch 字段数据存在,但用term查询搜索不到指定的数据_elasticsearch中match查询和term不可用-程序员宅基地

文章浏览阅读6.1k次,点赞11次,收藏13次。近日使用ElasticSearch查询数据时遇到了个问题,在es中该字段对应的数据是存在的,但使用term/terms查询时却查不到。同时,我使用match去查询却能查到:match能查到而term查不到,用过es的都应知道这两者的查询是有区别的:match是全文搜索,用于查询字段类型为text的字段,match进行搜索的时候,会先进行分词拆分,拆完后,再来匹配;而term是精确查询,也就是完全匹配,通常用于对keyword和有精确值的字段进行查询,搜索前不会再对搜索词进行分词拆解。由上面的._elasticsearch中match查询和term不可用

人工智能_机器学习059_非线性核函数_poly核函数_rbf核函数_以及linear核函数效果对比---人工智能工作笔记0099_linear、 poly、rbf-程序员宅基地

文章浏览阅读595次。X += np.random.randn(100,2) 我们从正太分布中拿出100行2列的数据来,拼接到X生成的100行2列的数据里面,现在的原来的X,就变成了。- `X[:,0]`:这是第一个维度(通常是x轴)的值,X 是一个二维数组,`X[:,0]` 表示取X数组的第一列。- `X[:,1]`:这是第二个维度(通常是y轴)的值,X 是一个二维数组,`X[:,1]` 表示取X数组的第二列。这个是5,5 表示图形的大小,x轴,y轴的大小,设置好以后生成的就圆了,要不然是椭圆的,可以看到上面显示的._linear、 poly、rbf

excel取整函数_Excel中-年会必备,教你制作简易抽号系统-程序员宅基地

文章浏览阅读173次。【回顾敲黑板】先把上一期留下来的2个问题解决,这个抽号系统你就有思路了~1、如何让随机数变为整数?【答】使用int()函数,用法就是把:Rand()*10直接放到int()里,即:int(Rand()*10)2、如何去某个固定区间的随机数,比如【0-30】?【答】若要生成 a 与 b 之间的随机实数,应使用: RAND()*(b-a)+a,即RAND()*(30-0)+(0)。脑袋里是不是一团数学..._如何制作抽号

爬虫实战——爬取电影天堂的电影详情页信息_2、请使用不同的爬虫库爬取网站电影信息页面-程序员宅基地

文章浏览阅读2.8k次,点赞2次,收藏12次。爬取电影天堂的电影详情页信息_2、请使用不同的爬虫库爬取网站电影信息页面