编译装php7.2 && nginx-1.14

环境准备

# cat /etc/centos-release

CentOS Linux release 7.6.1810 (Core)

# uname -r

3.10.0-957.el7.x86_64

# getenforce

Disabled

# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: inactive (dead)

Docs: man:firewalld(1)

解决依赖关系

# yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

安装libiconv 字符编码强制转换

# wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv版本号  #地址随时变动

# tar xf libiconv-1.15.tar.gz

# cd libiconv-1.15/

# ./configure --prefix=/usr/local/libiconv

# make && make install

php7.2下载地址

https://www.php.net/downloads.php  #地址可能会变动,找到php-7.2.16.tar.gz

# tar xf php-7.2.16.tar.gz

# cd php-7.2.16

创建用户

groupadd nginx

useradd -r -g nginx -s /bin/false -M nginx

编译安装php

./configure \

--prefix=/application/php-7.2.16 \       #编译安装目录

--with-pdo-mysql=mysqlnd \               #mysql扩展,php已经不支持了,想要继续使用可以用mysqli扩展,后面会提到

--with-iconv-dir=/usr/local/libiconv \   #字符编码强制转换

--with-freetype-dir \             # 打开对freetype字体库的支持

--with-jpeg-dir \                 # 打开对jpeg图片的支持

--with-png-dir \                  # 打开对png图片的支持

--with-zlib \                     # 打开zlib库的支持

--with-libxml-dir=/usr \          # 打开libxml2库的支持

--enable-xml \                    # 开启xml

--disable-rpath \                 # 关闭额外的运行库文件

--enable-bcmath \                 # 打开图片大小调整,用到zabbix监控的时候用到了这个模块

--enable-shmop \                  # 允许PHP读取、写入、创建和删除Unix共享内存段的函数集。

--enable-sysvsem \                # 处理相关的IPC函数

--enable-inline-optimization \     # 优化线程

--with-curl \                     # 打开curl浏览工具的支持

--enable-mbregex \ # 此配置项用于禁用具有多字节字符支持的正则表达式函数

--enable-fpm \ # 打上PHP-fpm 补丁后才有这个参数。CGI方式安装的启动程序

--enable-mbstring \               # 多字节,字符串的支持

--with-mcrypt \                   #  mcrypt算法扩展

--with-gd \                       # 打开gd库的支持

--enable-gd-native-ttf \          # 支持TrueType字符串函数库

--with-openssl \            # openssl的支持,加密传输https时用到的

--with-mhash \                    #  mhash算法扩展

--enable-pcntl \         # freeTDS需要用到的,可能是链接mssql 才用到

--enable-sockets \                # 打开 sockets 支持

--with-xmlrpc \                   # 打开xml-rpc的c语言

--enable-soap \             # SOAP扩展用来编写SOAP服务端和客户端

--enable-short-tags \          # 短标记

--enable-static \                 # 生成静态链接库

--with-xsl \   #打开XSLT文件支持,扩展了libXML2库 ,需要libxslt软件

--with-fpm-user=nginx \               #用户名

--with-fpm-group=nginx \          #用户组

--enable-ftp \                    # 打开ftp的支持

--enable-opcache=no               # 性能加速

编译安装

# make && make install

# 创建软连接

# ln -s /绝对路径/php-7.2.16 /绝对路径/php

配置php

注:目前位置在源码包解压目录

# cp php.ini-production /application/php/php.ini

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

chmod 755 /etc/init.d/phpfpm

注:切换至安装目录

# cd /application/php/etc/

# cp php-fpm.conf.default php-fpm.conf

# vim php-fpm.conf

去掉 pid = run/php-fpm.pid 前面的分号

# cd php-fpm.d/

# cp www.conf.default www.conf

#  vim www.conf

修改user和group的用户为当前用户(也可以不改,默认会添加nobody这个用户和用户组

# sed -i ‘s#user = www#user = nginx#g;s#group = www#group = nginx#g‘ /application/php-5.5.32/etc/php-fpm.conf

# 添加PATH环境

#

启动php-fpm

# /etc/init.d/php-fpm start        #php-fpm启动命令

# /etc/init.d/php-fpm stop         #php-fpm停止命令

# /etc/init.d/php-fpm restart        #php-fpm重启命令

# ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已经成功启动PHP

安装mysqli扩展

注:默认在源码安装包中就有mysqli扩展包

# cd /源码包位置/php-7.2.16/ext/mysqli

# /php安装位置/bin/phpize   # 侦测环境建立configure文件

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

# make &&  make install

# ls /application/php-7.2.16/lib/php/extensions/no-debug-non-zts-20170718/  # 此地址就是安装后的mysqli的扩展了。

mysqli.so    # mysqli扩展文件

# vim php.ini  # 修改php.ini 配置文件

找到extension字段,在下方添加mysqli扩展位置

extension = /application/php/lib/php/extensions/no-debug-non-zts-20170718/mysqli.so

# 重启php-fpm和nginx通过phpinfo();查看安装的安装的扩展,效果如下

# 下边的页面需要等nginx配置好后才能正常访问到

# vim /nginx安装目录/html/test_info.php

<?php

phpinfo();

?>

编译安装nginx

# 将下载好的nginxnginx-1.14.2.tar.gz压缩包解压 #用上面创建的nginx用作为启动用户

注:在后期添加模块的时候只需要重新make即可,不要make install后者会覆盖前者,即指覆盖安装的意思。

# cd /nginxnginx-1.14.2

# ./configure \

--prefix=/application/nginx-1.14.2 \    # 编译安装位置

--user=nginx --group=nginx \        # 启动用户组和用户

--with-http_stub_status_module  \    # 用于查看Nginx的一些状态信息

--with-http_ssl_module              # 添加ssl模块

# make && make install

# ln -s /绝对路径/nginxnginx-1.14.2 /绝对路径/nginx

# cd /nginx安装目录/nginx/conf/

# 精简nginx配置文件

# egrep -v ‘^$|#‘ nginx.conf.default > nginx.conf

# cat nginx.conf

worker_processes  1;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

server {

listen       80;

server_name  localhost;

location / {

root   html;

index  index.html index.htm;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

# 下边是php解析配置部分

location ~ \.php$ {

root           html;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /application/nginx/html$fastcgi_script_name;

include        fastcgi_params;

}

}

}

启动nginx

# /绝对路径/nginx           # 启动nginx

# /绝对路径/nginx/ -c    # 指定配置文件,来取代默认的配置文件

# /绝对路径/nginx -t     # 检查配置文件 每次nginx配置文件变更,都检查一次

# /绝对路径/nginx -s reload   # 平滑重启

# /绝对路径/nginx -s stop     # 停止nginx

配置PATH环境  #注意符号,空格等

# export PATH=/usr/local/nginx/sbin:$PATH

# echo "export PATH=/application/nginx/sbin:$PATH" >>/root/.bash_profile

# source /root/.bash_profile

查看进程

# ps -ef |grep -E ‘nginx|php‘

root       8806      1  0 21:41 ?        00:00:00 nginx: master process nginx

nginx      8807   8806  0 21:41 ?        00:00:00 nginx: worker process

root       9244      1  0 21:59 ?        00:00:00 php-fpm: master process (/application/php-7.2.16/etc/php-fpm.conf)

nginx      9245   9244  0 21:59 ?        00:00:00 php-fpm: pool www

nginx      9246   9244  0 21:59 ?        00:00:00 php-fpm: pool www

# netstat -antup|grep -E ‘nginx|php‘

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      9244/php-fpm: maste

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8806/nginx: master

扩展整理,

nginx反向代理

# vim nginx.conf

worker_processes  1;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

upstream server_pools{

server 192.168.1.11:80;

}

server {

listen       80;

server_name  www.wordpress.com;

location / {

proxy_pass http://server_pools;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

}

通过php查看mysql5.7连接状态

# vim test_mysql.php

<?php

$mysqli = new mysqli("主机地址","用户","密码","访问的库");

if(!$mysqli)  {

echo"database error";

}else{

echo"php env successful";

}

$mysqli->close();

?>

# 效果展示

原文地址:https://www.cnblogs.com/lldsn/p/10611847.html

时间: 2024-10-29 03:07:06

编译装php7.2 && nginx-1.14的相关文章

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法

这篇文章主要介绍了CentOS 7.2 mini版本下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu

编译安装PHP7并安装Redis扩展Swoole扩展

在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么编译参数应该为 1 --with-apxs2=/usr/local/apache/bin/apxs 编译安装php7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4

Centos6.8源码编译安装PHP7

一.下载源码包 打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.php下载想要安装的版本,这里下载最新版的php-7.1.8 的源码包. 下载环境源码包wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz   可以选择版本,这里下载最新版libiconv-1.15.tar.gz 二.解压源码包并安装环境包 1 tar zxvf libi

debian系统安装最新lnmp编译最新php7.1.2及nginx1.10.3及mysql5.7及5.6

aptitude 安装nginx/mysql,编译安装php7.1.2 Created 星期四 23 二月 2017 一.配置镜像源,默认debian没有Nginx最新版本,以及php7.0版本(编译安装),mysql5.7版本!1.1 vim /etc/apt/sources.list   添加如下 deb http://nginx.org/packages/debian/ jessis nginxdeb-src http://nginx.org/packages/debian/  jessi

Linux Centos7.2 编译安装PHP7.0.2

操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/distributions/php-7.0.2.tar.gz $ tar -zxvf php-7.0.2.tar.gz $ cd php-7.0.2 1.1 编译前检查 请检查是否安装了gcc ,没有的话执行yum install gcc 检查是否安装了libxml2 ,没有的话执行yum insta

CentOS 7.2mini版本下编译安装php7.0.10+MySQL5.7.14+Nginx1.10.1

一.安装前的准备工作 1.yum update    #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel    #安装php.MySQL.Nngix所依赖的包 3.下载以下包   #我把所有源文件都下载在root目录,读者可自行修改源文件存放目录 3.1 libmcry

centos7编译安装PHP7.2(与Nginx搭配的安装方式)

一.下载源码包 二.安装php依赖组件 yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-

编译安装PHP7及扩展

一.编译安装PHP 1. 下载源码包并解压 源码包地址:http://php.net/downloads.php 下载源码包 当前PHP最新本门是7.2.9,下载 php-7.2.9 源码包 wget http://be2.php.net/get/php-7.2.9.tar.gz/from/this/mirror -O php-7.2.9.tar.gz 解压源码包 解压缩 tar zxf php-7.2.9.tar.gz 进入解压缩后的目录,查看解压的文件 [root/usr/local/src

CentOS 7.1编译安装PHP7

原文: https://typecodes.com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referral 1 创建php用户和用户组,并在github下载php7源码 首先创建一个名为php且没有登录权限的用户和一个名为php的用户组,然后去GitHub下载php7源码包. #######新建php用户和php组 [[email protected] ~]# groupadd -r php && use