本片文章使用的php版本为7.3.25,libiconv为1.16
如有需要可前往一下链接下载其他版本
php: http://mirrors.sohu.com/php/
libiconv: http://ftp.gnu.org/pub/gnu/libiconv/
1.下载php的各种组件
1.1 下载php源码包
[root@localhost ~]# wget http://mirrors.sohu.com/php/php-7.3.5.tar.gz
1.2 下载必要的php库环境
[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel\
libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y
[root@localhost ~]# yum install libmcrypt-devel -y
[root@localhost ~]# yum install mhash -y
[root@localhost ~]# yum install mcrypt -y
[root@localhost ~]# yum install openssl openssl-devel -y
报错:No package libiconv-devel available.
yum仓库内没有该软件,将会在1.4中安装
1.3 重点:安装gcc编译器
[root@localhost ~]# yum install gcc -y
没有安装gcc的1.4可能报一下错误
[root@localhost nginx]# ./configure --prefix=/application/tools/libiconv-1.16
configure: error: in `/application/tools/libiconv-1.16':
configure: error: no acceptable C compiler found in $PATH
1.4 安装yum源中没有的libiconv
[root@localhost ~]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
[root@localhost ~]# tar xf libiconv-1.16.tar.gz
[root@localhost ~]# cd libiconv-1.16/
[root@localhost ~]# ./configure --prefix=/application/libiconv
- 编译安装libiconv
- make && make install
2.安装php主进程
2.1 查看并解压php的二进制包
[root@zhb ~]# ll
total 670796
-rw-------. 1 root root 966 Feb 4 23:28 anaconda-ks.cfg
-rw-r--r-- 1 root root 5166734 Feb 21 14:14 libiconv-1.16.tar.gz
-rw-r--r-- 1 root root 1039530 Feb 15 21:58 nginx-1.18.0.tar.gz
-rw-r--r-- 1 root root 19439026 Feb 21 14:43 php-7.3.5.tar.gz
[root@localhost ~]# tar xf php-7.3.5.tar.gz
2.2 进入php目录并安装php
[root@localhost ~]# cd php-7.3.5 #这一大长串是编译的部分
[root@localhost php-7.3.5]# ./configure \
--with-fpm-user=www \ #管理用户与管理组
--with-fpm-group=www \
--prefix=/application/php-7.3.5 \ #php程序安装目录
--enable-mysqlnd \ #php指定的数据库
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/application/libiconv \ #额外安装的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-gd \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--enable-ftp \
--enable-opcache=no
[root@localhost php-7.3.5]# make && make instal
2.3 做版本管理
[root@localhost php-7.3.5]# ln -s /application/php-7.3.5/ /application/php
2.4 php管理用户创建并授权管理
#php管理用户与nginx保持一致
[root@localhost ~]# useradd www -s /sbin/nologin -M
[root@localhost ~]# chown www.www /application/php/ -R
3.配置php
3.1 选择配置文件复制到指定位置
#php.ini文件配置
cp -p /root/php-7.3.5/php.ini-development /application/php-7.3.5/lib/php.ini
#php-fpm.conf文件配置
cp /application/php-7.3.5/etc/php-fpm.conf.default /application/php-7.3.5/etc/php-fpm.conf
#www.conf文件配置
cp /application/php-7.3.5/etc/php-fpm.d/www.conf.default /application/php-7.3.5/etc/php-fpm.d/www.conf
3.2 启动与开机自启动php
#启动nginx
[root@localhost php-7.3.5]# /application/nginx/sbin/nginx
#启动php
[root@localhost php-7.3.5]# /application/php/sbin/php-fpm
#检查启动状态
[root@localhost php-7.3.5]# netstat -lntup | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 16946/php-fpm: mast
#设置开机自启
[root@localhost php-7.3.5]# echo '/application/php/sbin/php-fpm' >> /etc/rc.local
[root@localhost php-7.3.5]# chmod +x /etc/rc.local
3.3 为php命令设置环境变量
php作为一个后台服务,不需要环境变量
如果需要使用下面方法添加:
[root@localhost ~]# echo "PATH=/application/php/bin/php:$PATH" > /etc/profile
[root@localhost ~]# . /etc/profile
==== => 到此php已经安装完成,向下都是测试的环节 <======
4.上线网页(nginx与php联动部分)
4.1 开发编写网页
例:<?php phpinfo(); ?>\
==php测试网页==
4.2 测试网页是否正常
[root@localhost ~]# /application/php/bin/php /application/script/wangye.php
4.3 将动态网页交由php处理
一旦nginx检测到php结尾的uri,交由php-fpm处理
[root@localhost ~]# vim /application/nginx/conf/nginx.conf
location ~ .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
4.4 mysql连接测试
脚本:
<?php
//$link_id=mysqli_connect('主机名','用户','密码');
$link_id=mysqli_connect('localhost','root','000000') or mysql_error();
if($link_id){
echo "mysql successful by shuaibi.\n";
}else{
echo mysql_error();
}
?>
测试:
[root@zhb nginx]# /application/php/bin/php /application/script/mysqltest.php
mysql successful by shuaibi.
结尾附上php主要配置文件路径
/application/php/lib/php.ini php解析器配置文件
/application/php/bin/php php二进制命令