一、检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过。
# yum remove php* -y
准备php安装前的前置软件,用yum install xxxx即可安装,当然不嫌麻烦也可以自己编译安装,这里就不详细说了。
1)zlib以及zlib-devel zlib提供数据压缩的函数库,也是nginx的前置软件,由于zlib需要编译php的zlib扩展,而编译中会需要使用zlib.h这个头文件,头文件在zlib-devel中,因此也需要下载zlib-devel。
2)libxml2以及libxml-devel libxml2是一个c语言的xml程序库,可以简单的对xml进行各种操作,并且支持xpath查询,以及部分支持xslt转换等功能。
3)libxslt以及libxslt-devel 如果不安装libxslt-devel会提示找不到xslt.config文件,xslt是转换xml到其他格式的扩展。
4)openssl以及openssl-devel 安全套接字层密码库
5)jpeg IJG的jpeg库,php的gd库所需。
6)libpng 是c语言写的比较底层的读写png文件的跨平台的库,可以帮助轻松的读写png文件的每一行像素,php的gd库所需。
7)freetype以及freetype-devel 免费开源的且可移植的字体引擎,提供统一的接口访问多种字体格式,这两个都是gd库的依赖软件,所以如果没有安装,或者版本太低,在安装php时设定的是安装gd库则会报错,另外不安装-devel也是会报错的,因为编译扩展的时候会缺少ft2build.h文件,报错如下图。
8)gd gd是php处理图形的扩展库
9)curl,由于我的yum里的版本太低了,所以直接自己编译安装的,安装方式很简单,也就是wget curl下载地址后tar解压,新建/usr/local/curl文件夹,然后进入curl解压后的文件夹里配置./configure --prefix=/usr/local/curl即可,最后make以及make install就安装好了。
注意:xxx-devel是xxx软件的开发包,包含头文件以及静态库甚至源码。
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel pcre-devel
# yum -y install php-mbstring (自行选择安装)直接转到到nginx的安装目录sbin下,执行’./nginx -v’即可
# cd /usr/local/nginx/sbin/
# ./nginx -v
[root@Anwar01 sbin]# ./nginx -v
nginx version: nginx/1.15.4
1、在profile文件末尾添加环境变量路径,即可对所有系统用户生效
通过echo $PATH命令查看是否添加成功
环境变量配置成功后,便可在任意目录下执行php命令或者nginx命令了(注意下面的分号要在双引号内部,否则会报错)
$ php -r “echo ‘hello’;”
五、它项配置,启动配置
配置php-fpm
cd /usr/local/src/php-7.2.10
cp ./php.ini-production /usr/local/php/etc/php.ini //复制php配置文件到安装目录
rm -rf /etc/php.ini //删除系统自带配置文件
ln -s /usr/local/php/etc/php.ini /etc/php.ini //添加软链接到 /etc目录
# ls -l /etc/php.ini
lrwxrwxrwx. 1 root root 26 10月 6 13:17 /etc/php.ini -> /usr/local/php/etc/php.ini
cd /usr/local/php/etc
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf //复制模板文件为php-fpm配置
cp
/usr/local/php/etc/php-fpm
.d
/www
.conf.default
/usr/local/php/etc/php-fpm
.d
/www
.conf
ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf //添加软件链接到 /etc目录
/usr/local/php/sbin/php-fpm //启动php-fpm
编辑php配置文件
# vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid //如果这个选项在配置文件存在就取消掉注释使用,如果不存在可以忽略,请勿手动添加,否则PHP启动会报错。
user = www
group = www
:wq! #保存并退出
cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf
# cp /usr/local/src/php-7.2.10/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm //添加php-fpm脚本到启动项
# ls -l /etc/init.d/php-fpm
# chmod 755 /etc/init.d/php-fpm chmod
+x
/etc/init
.d
/php-fpm
//赋予php-fpm执行权限
# ls -l /etc/init.d/php-fpm
-rwxr-xr-x. 1 root root 2405 10月 6 13:21 /etc/init.d/php-fpm
设置php-fpm开机启动
# chkconfig php-fpm on
# chkconfig --list php-fpm
php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
/etc/init
.d
/php-fpm
start
service php-fpm start
System | Linux Anwar02 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 |
Build Date | Oct 8 2018 16:46:22 |
Configure Command | './configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-mcrypt=/usr/include' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-gd' '--with-iconv' '--with-zlib' '--enable-xml' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--enable-mbregex' '--enable-fpm' '--enable-mbstring' '--enable-ftp' '--enable-gd-native-ttf' '--with-openssl' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--without-pear' '--with-gettext' '--enable-session' '--with-curl' '--with-jpeg-dir' '--with-freetype-dir' '--enable-opcache' |
Server API | FPM/FastCGI |
Virtual Directory Support | disabled |
Configuration File (php.ini) Path | /usr/local/php/etc |
Loaded Configuration File | /usr/local/php/etc/php.ini |
#/usr/sbin/groupadd -f www
#/usr/sbin/useradd -g www www