PHP头条
热点:

PHP安装及使用,


1、安装依赖包

[root@localhost ~]# yum -y install gcc
[root@localhost ~]# yum -y install gcc++
[root@localhost ~]# yum -y install gcc-c++
[root@localhost ~]# yum -y install wget
[root@localhost ~]# yum -y install make
[root@localhost ~]# yum -y install libxml2 
[root@localhost ~]# yum -y install libxml2-devel 
[root@localhost ~]# yum -y install openssl 
[root@localhost ~]# yum -y install openssl-devel 
[root@localhost ~]# yum -y install curl-devel 
[root@localhost ~]# yum -y install libjpeg-devel 
[root@localhost ~]# yum -y install libpng-devel
[root@localhost ~]# yum -y install freetype-devel
[root@localhost ~]# yum -y install bison
[root@localhost ~]# yum -y install autoconf
[root@localhost ~]# yum -y install libpng
[root@localhost ~]# yum -y install libpng-devel

2、创建用户组

[root@localhost ~]# groupadd -r php

3、创建用户

[root@localhost ~]# useradd -r -g php -s /sbin/nologin -d /usr/local/php -M php

添加新用户
-r: 添加系统用户( 这里指将要被创建的系统用户php )
-g: 指定要创建的用户所属组( 这里指添加到新系统用户php到php系统用户组 )
-s: 新帐户的登录shell( /sbin/nologin 这里设置为将要被创建系统用户php不能用来登录系统 )
-d: 新帐户的主目录( 这里指定将要被创建的系统用户php的家目录为 /usr/local/php )
-M: 不要创建用户的主目录( 也就是说将要被创建的系统用户php不会在 /home 目录下创建 php 家目录 )

4、下载php压缩包

[root@localhost ~]# wget -c https://github.com/php/php-src/archive/php-7.1.6.tar.gz

5、解压php压缩包

[root@localhost ~]# tar -zxvf php-7.1.6.tar.gz

6、PHP语法分析器re2c—下载

[root@localhost ~]# wget -c https://github.com/skvadrik/re2c/releases/download/0.16/re2c-0.16.tar.gz

7、PHP语法分析器re2c—解压

[root@localhost ~]# tar -zxvf re2c-0.16.tar.gz

8、PHP语法分析器re2c—进入解压后的源码目录编译并安装

[root@localhost ~]# cd re2c-0.16
[root@localhost re2c-0.16]# ./configure
[root@localhost re2c-0.16]# make && make install

9、加密支持扩展库libmcrypt—下载

[root@localhost ~]# wget -c https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

10、加密支持扩展库libmcrypt—解压

[root@localhost ~]# tar -zxvf libmcrypt-2.5.8.tar.gz

11、加密支持扩展库libmcrypt—进入解压后的源码目录编译并安装

[root@localhost ~]# cd libmcrypt-2.5.8
[root@localhost libmcrypt-2.5.8]# ./configure
[root@localhost libmcrypt-2.5.8]# # make && make install

12、加密方式扩展库mhash—下载

[root@localhost ~]# wget -c https://downloads.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

13、加密方式扩展库mhash—解压

[root@localhost ~]# tar -zxvf mhash-0.9.9.9.tar.gz

14、加密方式扩展库mhash—进入解压后的源码目录编译并安装

[root@localhost mhash-0.9.9.9]# cd mhash-0.9.9.9
[root@localhost mhash-0.9.9.9]# ./configure
[root@localhost mhash-0.9.9.9]# make && make install

15、加密方式扩展库mcrypt—下载

[root@localhost ~]# wget -c https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

16、加密方式扩展库mcrypt—解压

[root@localhost ~]# tar -zxvf mcrypt-2.6.8.tar.gz

17、加密方式扩展库mcrypt—进入解压后的源码目录编译并安装

由于在编译mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/lib文件夹下。 所以,在编译mcrypt时要加入LD_LIBRARY_PATH=/usr/local/lib导入间接库。

[root@localhost ~# cd mcrypt-2.6.8
[root@localhost mcrypt-2.6.8]# ./configure LD_LIBRARY_PATH=/usr/local/lib
[root@localhost mcrypt-2.6.8]# make && make install

18、进入PHP源码安装目录进行编译

./confingure 	

发现没有这个文件,那么进行下一步,生成configure文件

19、php源码目——生成php源码目录下的配置文件 configure

运行 buildconf 文件, 生成 configure 文件

[root@localhost php-src-php-7.1.6]# ./buildconf 
You should not run buildconf in a release package.
use buildconf --force to override this check.

20、很不幸运, 并没有成功, 并且提示:

You should not run buildconf in a release package.  # 你不应该在发布包运行buildconf文件。
use buildconf --force to override this check.   # 使用buildconf文件重写此检查。

21、那就根据它的要求加入 --force 选项重写检查

[root@localhost php-src-php-7.1.6]# ./buildconf --force
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in

这次可算是buildconf文件重写检查成功了, 看一下源码目录有没有 configure 文件

22、正式编译php7

[root@localhost php-src-php-7.1.6]# ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt --with-mhash --with-openssl --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --enable-fast-install --disable-fileinfo

–prefix=/usr/local/php [php安装的根目录]
–exec-prefix=/usr/local/php [php执行文件所在目录]
–bindir=/usr/local/php/bin [php/bin目录]
–sbindir=/usr/local/php/sbin [php/sbin目录]
–includedir=/usr/local/php/include [php包含文件所在目录]
–libdir=/usr/local/php/lib/php [php/lib目录]
–mandir=/usr/local/php/php/man [php/man目录]
–with-config-file-path=/usr/local/php/etc [php的配置目录]
–with-mysql-sock=/var/run/mysql/mysql.sock [php的Unix socket通信文件]
–with-mcrypt [是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启]
–with-mhash [Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启]
–with-openssl [OpenSSL 是一个安全套接字层密码库]
–with-mysqli=shared,mysqlnd [php依赖mysql库]
–with-pdo-mysql=shared,mysqlnd [php依赖mysql库]
–with-gd [gd库]
–with-iconv [关闭iconv函数,种字符集间的转换]
–with-zlib [zlib是提供数据压缩用的函式库]
–enable-zip [打开对zip的支持]
–enable-inline-optimization [优化线程]
–disable-debug [关闭调试模式]
–disable-rpath [关闭额外的运行库文件]
–enable-shared [启用动态库]
–enable-xml [开启xml扩展]
–enable-bcmath [打开图片大小调整,用到zabbix监控的时候用到了这个模块]
–enable-shmop [共享内存]
–enable-sysvsem [内存共享方案]
–enable-mbregex [开启多字节正则表达式的字符编码。]
–enable-mbstring [开启多字节字符串函数]
–enable-ftp [开启ftp]
–enable-gd-native-ttf [开启gd库原有字体]
–enable-pcntl [PHP的进程控制支持实现了Unix方式的多进程创建]
–enable-sockets [开启套节字]
–with-xmlrpc [打开xml-rpc的c语言]
–enable-soap [开启简单对象访问协议简单对象访问协议]
–without-pear [开启php扩展与应用库]
–with-gettext [开户php在当前域中查找消息]
–enable-session [允许php会话session]
–with-curl [允许curl扩展]
–with-jpeg-dir [指定jpeg安装目录yum安装过后不用再次指定会自动找到]
–with-freetype-dir [指定freetype安装目录yum安装过后不用再次指定会自动找到]
–enable-opcache [开启使用opcache缓存]
–enable-fpm [开启fpm]
–with-fpm-user=nginx [php-fpm的用户]
–with-fpm-group=nginx [php-fpm的用户组]
–without-gdbm [数据库函数使用可扩展散列和类似于标准UNIX dbm的工作]
–enable-fast-install [为快速安装优化]

可能会出现要求开启 --enable-opcache=on 的错误提示

23、错误提示

configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

24、解决办法

编辑/etc/ld.so.conf
加入/usr/local/lib
执行ldconfig,使其重新加载一次

25、运行 make test

[root@localhost php-src-php-7.1.6]# make test

这一步不是必须的, 如果要运行可能会让你等很长一段时间

26、出现这个结果 make test 也就完成了!

You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it.  You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: Y

Please enter your email address.
(Your address will be mangled so that it will not go out on any
mailinglist in plain text): warnerwu@126.com

Posting to http://qa.php.net/buildtest-process.php

Thank you for helping to make PHP better.

27、编译安装

[root@localhost php-src-php-7.1.6]# make && make install

28、编译安装后的php目录

[root@localhost php-src-php-7.1.6]# ll /usr/local/php
total 0
drwxr-xr-x. 2 root root 100 Jun 18 05:57 bin
drwxr-xr-x. 3 root root  49 Jun 18 05:57 etc
drwxr-xr-x. 3 root root  16 Jun 18 05:57 include
drwxr-xr-x. 3 root root  16 Jun 18 05:57 lib
drwxr-xr-x. 4 root root  26 Jun 18 05:57 php
drwxr-xr-x. 2 root root  20 Jun 18 05:57 sbin
drwxr-xr-x. 4 root root  26 Jun 18 05:57 var

29、将php源码编译目录下的 php.ini-production 拷贝到php安装目录下的 etc 目录下

[root@localhost php-src-php-7.1.6]# cp php.ini-production /usr/local/php/etc/php.ini

这里是将生产环境的php.ini 使用了,也可以使用开发环境的文件

30、修改 php.ini 配置文件, 设置php扩展安装目录所在位置

[root@localhost php-src-php-7.1.6]# vim /usr/local/php/etc/php.ini

31、找到 extension_dir 修改扩展目录位置如下:

extension_dir = "../lib/php/extensions/no-debug-non-zts-20160303/"

也可以写绝对路径

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/"

32、修改 php.ini 配置文件, 设置php所安装服务器时区

[root@localhost php-src-php-7.1.6]#  vim /usr/local/php/etc/php.ini

找到 timezone 修改时区如下:

date.timezone = PRC

PRC就是英文People’s Republic of China, 这个你应该知道的吧! 中华人民共和国

33、修改 php.ini 配置文件, 开启OPcache

[root@localhost php-src-php-7.1.6]#  vim /usr/local/php/etc/php.ini

跳转到文件的最后一行(shift+G), 输入以下内容:

zend_extension=opcache.so;

34、修改 php.ini 配置文件, 开启 mysqli 扩展

[root@localhost php-src-php-7.1.6]#  vim /usr/local/php/etc/php.ini

找到 extension 位置, 输入以下内容

; For UNIX OS open mysqli extension
extension=mysqli.so
extension=pdo_mysql.so

35、添加 php-fpm 管理相关的配置文件到系统配置目录 /etc/init.d
将php源码编译目录下的 sapi/fpm/init.d.php-fpm 文件拷贝到系统配置 /etc/init.d 目录下并重命名为 php-fpm

[root@localhost php-src-php-7.1.6]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

36、添加 php-fpm 配置文件

将php安装目录下的 /usr/local/php/etc/php-fpm.conf.default 文件拷贝同目录下并重命名为 php-fpm.conf

[root@localhost php-src-php-7.1.6]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

37、添加 www.conf 配置文件

将php安装目录下的 /usr/local/php/etc/php-fpm.d/www.conf.default 文件拷贝同目录下并重命名为 www.conf

[root@localhost php-src-php-7.1.6]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

38、添加php安装目录到系统环境变量

创建并打开文件php.sh

[root@localhost php-src-php-7.1.6]# vim /etc/profile.d/php.sh

添加内容如下:

export PATH=$PATH:/usr/local/php/bin/:/usr/local/php/sbin/

39、使用source立即生效刚刚添加的php环境变量

[root@localhost php-src-php-7.1.6]# source /etc/profile.d/php.sh

40、创建 php-fpm 日志目录

[root@localhost php-src-php-7.1.6]# mkdir -p /var/log/php-fpm/

41、创建 php-fpm 进程的ID(php-fpm.sock)文件运行目录

[root@localhost php-src-php-7.1.6]#  mkdir -p /var/run/php-fpm

42、修改 php-fpm 进程的ID(php-fpm.sock)文件运行目录的所属用户和组

[root@localhost php-src-php-7.1.6]# chown -R nginx:nginx /var/run/php-fpm/

43、创建 session 存放目录

[root@localhost php-src-php-7.1.6]#  mkdir -p /var/lib/php/session

44、修改 session 存放目录的所属用户和组

[root@localhost php-src-php-7.1.6]# chown -R nginx:nginx /var/lib/php

45、再次修改 php.ini 文件

[root@localhost php-src-php-7.1.6]# vim /usr/local/php/etc/php.ini

46、找到 session.save_path 修改为如下内容:

session.save_path = "/var/lib/php/session"

47、设置php开机启动——修改系统配置目录下的 php-fpm 文件可执行权限

[root@localhost php-src-php-7.1.6]# chmod +x /etc/init.d/php-fpm

48、将系统配置目录下的 php-fpm 添加到 系统服务

[root@localhost php-src-php-7.1.6]# chkconfig --add php-fpm

49、设置 php-fpm 系统服务 为开机启动

[root@localhost php-src-php-7.1.6]# chkconfig php-fpm on

50、用 chkconfig 命令检测一下服务是否运行成功

[root@localhost php-src-php-7.1.6]# chkconfig --list | grep php-fpm
Note: This output shows SysV services only and does not include native
  		systemd services. SysV configuration data might be overridden by native
  		systemd configuration.

  		If you want to list systemd services use 'systemctl list-unit-files'.
  		To see services enabled on particular target use
  		'systemctl list-dependencies [target]'.

php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off

可见服务已经在 第2 到 第5 运行等级打开

51、测试PHP的配置文件是否无误

[root@localhost php-src-php-7.1.6]# php-fpm -t
[18-Jun-2017 13:02:33] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

出现上面的提示也就是测试配置文件通过没有问题, 可以正式使用php服务了

52、启动php系统服务——使用 systemctl start + 服务名 启动系统服务

[root@localhost php-src-php-7.1.6]# systemctl start php-fpm.service

53、使用 systemctl status + 服务名 查看系统服务状态

[root@localhost php-src-php-7.1.6]# systemctl status php-fpm.service
● php-fpm.service - LSB: starts php-fpm
   Loaded: loaded (/etc/rc.d/init.d/php-fpm; bad; vendor preset: disabled)
   Active: active (running) since Sun 2017-06-18 13:05:26 EDT; 2min 46s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 105210 ExecStart=/etc/rc.d/init.d/php-fpm start (code=exited, status=0/SUCCESS)
   Memory: 11.0M
   CGroup: /system.slice/php-fpm.service
           ├─105212 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
           ├─105213 php-fpm: pool www
           ├─105214 php-fpm: pool www
           └─105215 php-fpm: pool www

Jun 18 13:05:19 localhost.localdomain systemd[1]: Starting LSB: starts php-fpm...
Jun 18 13:05:24 localhost.localdomain php-fpm[105210]: Starting php-fpm  done
Jun 18 13:05:26 localhost.localdomain systemd[1]: Started LSB: starts php-fpm.

你可以看到一个绿色的 active (running) 说明系统服务 php-fpm 已经在工作服务了

54、CLI查看php版本信息

[root@localhost ~]# php -v
PHP 7.1.6 (cli) (built: Jun 25 2017 13:42:29) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.6, Copyright (c) 1999-2017, by Zend Technologies

55、修改nginx配置文件使之使用nginx反向php解释器

修改nginx配置文件使之使用nginx反向php解释器, 也就是php-fpm它其实就是cgi。说明一下我在安装的nginx是将配置文件放在 /etc/nginx/ 目录下。

56、修改配置文件如下:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
	#    root           html;
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  /data/www/html/$fastcgi_script_name;
		include        fastcgi_params;
}

57、重新加载Nginx配置

[root@localhost php-src-php-7.1.6]# systemctl reload nginx.service

58、编辑文件

[root@localhost php-src-php-7.1.6]# vim  /data/www/html/index.php

输入内容

<?php
	phpinfo();

60、浏览器访问

参考链接:https://www.linuxidc.com/Linux/2017-10/148104.htm

www.phpzy.comtrue/php/23340.htmlTechArticlePHP安装及使用, 1、安装依赖包 [root@localhost ~]# yum -y install gcc[root@localhost ~]# yum -y install gcc++[root@localhost ~]# yum -y install gcc-c++[root@localhost ~]# yum -y install wget[root@localhost ~]# yum -y install make...

相关文章

    暂无相关文章

PHP之友评论

今天推荐