PHP 作为一种强大的语言,无论是以模块还是 CGI 的方式安装,它的解释器都可以在服务器上访问文件、运行命令以及创建网络连接等。这些功能也许会给服务器添加很多不安全因素,但是只要正确地安装和配置 PHP,以及编写安全的代码,那么 PHP 相对于 Perl 和 C 来说,是能创建出更安全的 CGI 程序的。而且,也可以在可用性和安全性之间找到一个很好的平衡点

在本文(安装php)之前有安装nginx,当然除了nginx还有Apache,个人选用了nginx,本文是接centos7安装nginx-1.15.8后安装php

安装php依赖包

yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel libzip

安装PHP

下载php-7.2.13

cd /root/
wget http://101.96.10.64/cn2.php.net/distributions/php-7.2.13.tar.gz

解压

tar zxvf php-7.2.13.tar.gz

建立目录

mkdir /service/php

进入解压后的php文件夹

cd php-7.2.13

用户及用户组建立

groupadd nginx
useradd -g nginx nginx

编译配置

./configure \
--prefix=/service/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache

要出现 error: Unable to locate gmp.h 错误

yum install gmp-devel

要出现 Please reinstall readline – I cannot find readline.h

yum -y install readline-devel

编译安装

make -j8
make install

安装好之后的工作(如果在./configure选项中enable了pear需要执行下面命令)

/service/php/bin/pear install channel://pear.php.net/PHP_Archive-0.12.0
/service/php/bin/pear channel-update pear.php.net

设置用户变量

ln -s /service/php/bin/php /usr/bin/php

配置环境变量

vi /etc/profile

在末尾追加

PATH=$PATH:/service/php/bin

执行命令使得改动立即生效

source /etc/profile

设置php-fpm配置文件

cp /service/php/etc/php-fpm.conf.default /service/php/etc/php-fpm.conf
cp /service/php/etc/php-fpm.d/www.conf.default /service/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

启动php-fpm

/etc/init.d/php-fpm start

验证是否成功

ps aux|grep php-fpm

成功

加入开机启动

vi /etc/rc.local

增加一行

/etc/init.d/php-fpm start

nginx配置解析php

cd /service/nginx
vi ./conf/nginx.conf

在 server 下找到

location / {
    root html;
    index index.html index.htm index.php; # 加上 index.php
}
# 加入
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /service/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
          }

然后平滑重启nginx

./sbin/nginx -s reload

没有报错,说明重启成功

验证

cd html
vi index.php
<?php
phpinfo();
?>

浏览器打开http://你的ip/index.php

成功

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...