数据小站
数据科学成长之路

LNMP配置

阿里云的服务器到期,需要把服务器迁移到腾讯云,需要在腾讯云上重新部署一套LNMP,秉承着用新不用旧的原则,就采用目前比较新的LNMP版本搭建系统

旧版阿里云环境:centos7,nginx1.4,php7.13,mysql5.7

新版腾讯云环境:centos7,nginx1.7 php7.4 mysql8

在部署环境时,版本的升级造成了一系列的问题,记录一下。

nginx安装配置

nginx安装没有什么变化,依然是解决第三方依赖的问题,然后编译安装三步走就行。

nginx1.7 配置中需要安解决openssl , pcre  , zlib  库等,pcre目前是手动安装,下载包编译安装三步走,其他的库包可以通过yum install命令安装, 遇到提示缺少的按照就好,没有出现安装的库包版本不兼容情况,需要手动升级的情况。

nginx的依赖问题:

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
先解决部分依赖问题

安装 PCRE

去pcre官网http://www.pcre.org/下载合适版本

cd /usr/local/src/
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
tar zxvf pcre-8.44.tar.gz 
cd pcre-8.44 
./configure
make && make install
pcre-config --version 
至此,pcre安装成功

安装nginx

cd /usr/local/src/
wget http://nginx.org/download/nginx-1.17.10.tar.gz
tar -zxvf nginx-1.17.10.tar.gz 
./configure  --sbin-path=/usr/local/nginx  --conf-path=/usr/local/nginx/nginx.conf  --pid-path=/usr/local/nginx/nginx.pid  --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.44
make 
make install
nginx安装成功,进入nginx安装目录启动后
./nginx -v  查看nginx安装版本
./nginx 启动服务,通过ip查看基本的欢迎界面
./nginx -s reload 重载配置文件
./nginx -s reopen  重启
./nginx -s stop   关闭         
nginx安装基本配置信息
./configure
    --sbin-path=/usr/local/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-8.44
    --with-zlib=../zlib-1.2.1
配置文件不能换行,需要空格隔开,pcre需要指定安装的位置
按照的pcre zlib 需要设置为安装的实际路径和版本

nginx下转发php设置

安装好nginx后,进入nginx的路径,启动nginx,能够通过浏览器访问服务器即为按照成功。

安装好nginx后,需要修改nginx.conf文件,来处理php。nginx的php模块默认没有开启,在.conf中开启功能。

php安装

在安装php7.4时出现的问题比较大,主要是由于php7.3版本以后,对编译的参数调整很,造成编译时很多库包不存在、版本不兼容的情况。秉承遇到问题解决问题的原则,没有采用安装php旧版本

./configure –prefix=/usr/local/php –enable-fpm –with-pdo-mysql –with-mysqli –enable-mbstring –disable-pdo –with-curl –disable-debug –disable-rpath –enable-inline-optimization –with-bz2 –with-zlib –enable-sockets –enable-sysvsem –enable-sysvshm –enable-pcntl –enable-mbregex –with-mhash –enable-zip –with-pcre-regex –with-gd –with-jpeg-dir –with-openssl –enable-opcache=no –enable-pdo

注:以上编译配置设置在php7.4中,有些项目已经调整,需要查看最./configure –help 查看升级后的设置,如 –with-gd 在新版本中,升级为–enable-gd

php在./configure时出现问题,编译不通过,提示缺少库文件支持,libxml2-devel

configure: error: Please reinstall the BZip2 distribution

解决办法 yum -y install bzip2-devel

No package ‘libcurl’ found

yum -y install libcurl

yum -y install sqlite-devel

No package ‘libpng’ found

yum -y install libpng-devel

./configure不通过的问题比较多,用yum安装好第三方依赖后,还会遇到yum安装的版本低于php4要求的版本,yum直接安装的依赖不能使用,需要去相应官网下载对应的指定以上版本,具体都升级了哪些库当时安装没有一一记录,以libzip为例吧:

不同版本的php,在./configure编译时,支持的参数不一样,需要根据版本信息指定如,php7.4版本时,之前版本的参数 –enable-zip已经不再支持,改为–with-zip,同时,需要安装 libzip库 ,

yum -y install libzip-devel 后,编译安装提示equested ‘libzip >= 0.11’ but version of libzip is 0.10.1,当前yum系统安装的版本低于要求版本,自动安装版本过低,需要手动安装

yum -y remove libzip 先卸载系统安装的低版本

依赖库libzip安装

20年3月libzip官方版本发布了1.6版本,看网上博客,libzip1.5以上版本,在编译安装时和旧版本已经不一样,新版需求mkdir build,使用cmake编译安装,由于直接使用的是1.6版本,没有使用15之前的版本,就不做说明,了解就好

去libzip官网,找到最新的安装包,下载解压,mkdir cmake等待

wget https://libzip.org/download/libzip-1.6.1.tar.gz

tar zxvf libzip-1.6.1.tar.gz

cd libzip-1.6.1/

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/libzip .. 或者 直接 cmake ..

cmake版本过低

在运行cmake时,提示没有cmake命令,yum install -y cmake, 用cmake ..时,提示cmake版本过低 ,用yum 安装的是cmake2.8, 而要求cmake版本是3.0网上,因此yum 安装的cmake不能使用,又去官网下载cmake最新的版本,下载cmake3.17是二进制版本,不用编译,解压缩后可以直接运行,需要将bin路径配置在环境变量中,插曲就不在描述,cmake解决后,继续执行

make && make install

完成安装libzip模块

no 模块 oniguruma 问题

php7.4版本、coetos7.5版本时,编译php,开启 –enable-mbstring 模块时 提示没有oniguruma报错,当前环境下yum源还不能使用yum install自动安装,需要手动安装

wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz 
tar -zxvf oniguruma-6.9.4.tar.gz 
cd oniguruma-6.9.4/ 
./autogen.sh  #注,按官方说明需要执行后才有configure文件
./configure --prefix=/usr --libdir=/lib64  # 需要有--libdir=/lib64参数,不添加编译php时依然不通过
make 
make install

LNMP配置文件配置

php.配置文件,需要在php/etc文件夹下,复制php-fpm.conf.default 成php-fpm.conf,在php-fpm.d文件夹中,www.conf.default复制一个www.conf文件,才能启动php-fpm

启动php.fpm后,需要配置nginx文件,将php请求转发到php-fpm处理,需要开启nginx.conf中的php模块

后记,这博客采用WordPress源码,在设置站点图标时,php7.4版本一直提示编辑报错,网上说是gd模块,依然没有解决,本身对php不熟悉,又不想花时间去研究,就认输了。索性将php的版本降到7.1.3,解决了问题,有时候一味追求新版不一定最好,还是旧版本熟悉些。

php8的编译参数

yum install libxml2-devel.x86_64
yum install sqlite-devel.x86_64
yum install libpng-devel
yum install oniguruma-devel

./configure –prefix=/usr/local/php8
–with-config-file-path=/usr/local/php8
–enable-mbstring
–enable-ftp
–enable-gd
–enable-gd-jis-conv
–enable-mysqlnd
–enable-pdo
–enable-sockets
–enable-fpm
–enable-xml
–enable-soap
–enable-pcntl
–enable-cli
–with-mysqli=mysqlnd
–with-pdo-mysql=mysqlnd
–with-pear
–with-zlib
–with-iconv
–enable-opcache

赞(0) 打赏
未经允许不得转载:技术文档分享 » LNMP配置

评论 抢沙发