Linux 安装 PHP 详细过程


Linux 服务器部署时,需要按照一定的部署顺序,即:

系统环境初始化 -> Apache/Nginx、MySQL、PHP 程序包下载 -> Apache/Nginx、MySQL、PHP 安装

一、系统环境初始化
1、检查系统是否正常
more /var/log/messages(检查有无系统级错误信息)
dmesg (检查硬件设备是否有错误信息)
cat /proc/cpuinfo (检查 CPU 频率是否正常)
top (按 1 检测 CPU 核数是否正常,内存大小是否正常)
ifconfig(检查网卡设置是否正确)
ping www.qq.com(检查网络是否正常)

2、关闭不需要的服务
执行 ntsysv 命令:
ntsysv
在服务设置界面,设置各项服务的开关。以下仅列出需要启动的服务,未列出的服务一律推荐关闭:

iptables
ip6tables
crond
irqbalance
microcode_ctl
network
messagebus
kudzu 
sendmail
sshd
syslog
关闭 SElinux ,关闭方法如下:
修改 /etc/selinux/config 文件中的 SELINUX= 为 disabled。

3、使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)
yum -y install  openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel bzip2 bzip2-devel libXpm libXpm-devel ncurses ncurses-devel mcrypt libmcrypt libmcrypt-devel libxml2 libxml2-devel curl curl-devel libcurl libcurl-devel libjpeg libjpeg-devel gmp gmp-devel zip libzip libzip-devel sqlite sqlite-devel readline readline-devel libxslt libxslt-devel ntp make fontconfig-devel libtiff-devel libevent-devel gcc gcc-c++ flex bison imake autoconf automake screen sysstat php-gd gdbm-devel  glib2 glib2-devel libdb4-devel libicu-devel libmemcached-devel xmlrpc-c xmlrpc-c-devel glibc glibc-devel systemd-devel openjpeg-devel epel* oniguruma*

4、下载软件包
http://www.gnu.org/software/libiconv/
https://www.php.net/downloads.php

二、编译安装环境
1、安装 MySQL
2、安装 Apache
3、编译安装 PHP 所需的支持库

# tar -zxvf libiconv-1.16.tar.gz
# cd libiconv-1.16
#./configure
#make && make install

4、目前发现centos正常安装php,会出现curl是nss而不是openssl,导致wordpress不能后台直接更新升级版本,需要重新编译安装curl
下载地址:https://curl.se/download/curl-8.6.0.tar.gz
# tar xvzf curl-8.6.0.tar.gz
# cd curl-8.6.0
# ./configure --prefix=/usr/local/curl/ --without-nss --with-ssl
# make && make install
备份原先系统上的默认的curl命令:
# mv /usr/bin/curl /usr/bin/curl.bak
# mv /usr/bin/curl-config /usr/bin/curl-config.bak
然后做一个新的curl软链:
# ln -s /usr/local/curl/bin/curl /usr/bin/curl
# cp /usr/local/curl/bin/curl-config /usr/bin/curl-config
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
执行 curl --version 看看是否是openssl的版本

5、编译安装PHP
# tar -zxvf php-7.4.24.tar.gz
# cd php-7.4.24

#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --enable-shared --enable-debug --enable-soap --enable-bcmath --enable-calendar --enable-dom --enable-exif --enable-fileinfo --enable-filter --enable-ftp --enable-gd-jis-conv --enable-mbstring --enable-mbregex --enable-pdo --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-mysqlnd-compression-support --enable-gd --enable-opcache --enable-xml --with-sqlite3 --with-iconv --with-bz2 --with-curl=/usr/local/curl --with-cdb --with-openssl --with-openssl-dir=/usr/local/openssl/bin --with-jpeg --with-freetype --with-xpm --with-gettext --with-mhash --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --with-zlib-dir --with-pdo-sqlite --with-readline --with-xsl --with-pear --with-gmp --with-apxs2=/usr/local/apache2/bin/apxs --with-iconv=/usr/local

出现configure: WARNING: unrecognized options: 应该是编译的这些参数已经自带,不需要再编译了,也有可能是编译写法不对(具体可查./configure --help)

# OpenSSL版本太低,升级OpenSSL,直接把它升级为最新版本
# 重新编译
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/openssl/lib64/pkgconfig
# 重新编译参数configure

#make ZEND_EXTRA_LIBS='-liconv'

# make install

# ./libtool --finish /usr/local/php/lib/

# mkdir /usr/local/php/etc

# cp php.ini-development /usr/local/php/etc/php.ini

6、配置 httpd.conf 让apache支持PHP:

# vi /usr/local/apache2/conf/httpd.conf

  找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容

  AddType application/x-httpd-php .php (.前面有空格)

  AddType application/x-httpd-php-source .phps (.前面有空格)

7、安装pear模块

# /usr/local/php/bin/php go-pear.phar

通过pear来安装PHP_PEAR_DB库

 # /usr/local/php/bin/pear install DB-1.7.14.tgz

8、查看确认 LAMP 环境信息、提升 PHP 安全性

保存以下内容为 info.php ,检查 phpinfo 中的各项信息是否正确。
<?php
phpinfo();
?>

9.安装拓展库 例如GD库
解压包下进入ext/gd目录
#cd /home/soft/php-7.4.6/ext/gd
#/usr/local/php/bin/phpize (需要把相关插件安装好)
#./configure --with-php-config=/usr/local/php/bin/php-config
#make&make install

安装好后在php.ini里开放GD库
#vi /usr/local/php/etc/php.ini
在该文件打开extension=gd.so