Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法

1|0 

1|0编译安装

2|0Centos8 下 PHP 源码编译和通过 yum 安装的区别和以后的选择

其实这两种方法各有千秋:

yum 安装:

从 yum 安装来说吧,yum 相当于是自动化帮你安装,你不用管软件的依赖关系,在 yum 安装过程是帮你把软件的全部依赖关系帮你傻瓜式的解决了。而且现在 Centos7 的服务启动已经换成 systemctl 命令来控制了。通过 yum 安装会帮你自动注册服务,你可以通过 systemctl start xxx.service 启动服务,方便快捷。但是缺点是 yum 安装你没办法干预,安装的目录也是分散的。你可能要执行 whereis 或者 find 命令去找 yum 安装的路径。有时候 yum 安装的软件版本比较低,你不得不去找其他的 yum 源,或者 rpm 包。

 

源码安装:

源码编译在安装过程中可能要解决很多的依赖问题,才能装好一个软件。装好的软件你还不能通过 systemctl 来启动服务,因为在 /usr/lib/systemd/system/ 路径下并没有你的服务的配置文件,你要自己手写一个。但是好处在于你能选择软件的版本,自定义安装目录,安装的模块。更加灵活方便。

 

LNMP 一键安装:

LNMP 一键安装包是一个用 Linux Shell 编写的可以为 CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS 或独立主机安装 LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP) 生产环境的 Shell 程序。无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。支持自定义 Nginx、PHP 编译参数及网站和数据库目录、支持生成 LetseEcrypt 证书、LNMP 模式支持多 PHP 版本、支持单独安装 Nginx/MySQL/MariaDB/Pureftpd 服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP 用户管理、Nginx、MySQL/MariaDB、PHP 的升级、常用缓存组件 Redis/Xcache 等的安装、重置 MySQL root 密码、502 自动重启、日志切割、SSH 防护 DenyHosts/Fail2Ban、备份等许多实用脚本。

 

以上三种都是有各自的优点,建议是初学者一定要掌握源码编译的过程,手动解决安装过成中遇到的问题,熟悉如何编译一个软件,对于以后的发展是很有利的,而且有些软件没办法通过 yum 安装,这时候源码编译就显得很重要了。而像 PHP 这类软件来说,如果是编译安装的,如果缺少一个扩展,你就得做 phpize, ./configure, make && make install 等方式编译 PHP 扩展,这是很繁琐的。通过 yum 安装的话,当你要增加一个扩展,例如 pdo,你就能够 yum search php | grep pdo 来寻找合适的 pdo 包,然后下载安装,系统会自动帮你添加到 PHP 扩展列表。省去我们很多工作。LNMP 一键安装是为开发者快速搭建开发环境时使用,可以让开发者有更多时间在开发的业务逻辑上。

 

1. 使用 yum 命令(学习 yum 的基本知识

参考网站:

# https://www.jb51.net/article/175918.htm # https://www.itgeeker.net/php7-3-yum-install-on-centos-7/

 

这个方法是比较简单的方法,可以很简单快速地安装 php。(rpm 命令的基本用法和实例

#添加几个源,不然会报错 #php 高版本的 yum 源地址,有两部分,其中一部分是 epel-release,另外一部分来自 webtatic。如果跳过 epel-release 的话,安装 webtatic 的时候 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-8.rpm

 

添加相关的库后,启用 PHP 7.4 的 Remi 模块并进行安装。

dnf -y install dnf-utils

 

#使用这个命令查看 php7.4 yum search php74*

 

 然后安装你想要的模块:

php74:安装 PHP 7.4 的包 php74-php:用于创建动态 web 的 PHP 脚本语言网站 php74-build:基本的构建配置 php74-php-gd:用于 PHP 应用程序使用 gd 的模块图形库 php74-xhprof:一个用于 PHP - Web 接口的层次分析器 php74-zephir:用于创建扩展的 Zephir 语言 PHP: php74-php-ast:抽象语法树 php74-php-cli:用于 PHP 的命令行接口 php74-php-dba:一个用于 PHP 的数据库抽象层模块应用程序 php74-php-dbg:交互式 PHP 调试器 php74-php-ffi:外部函数接口 php74-php-fpm:PHP FastCGI 进程管理器 php74-php-gmp:一个用于使用 GNU 的 PHP 应用程序模块议员库 php74-php-lz4:x86_64: PHP 的 LZ4 扩展 php74-php-pdo:一个用于 PHP 的数据库访问抽象模块应用程序 php74-php-xml:x86_64:用于使用 XML 的 PHP 应用程序的模块 php74-runtime:处理 php74 软件集合的包: php74-php-imap:x86_64:用于使用 IMAP 的 PHP 应用程序的模块 php74-php-intl:x86_64: PHP 国际化扩展应用程序 php74-php-json:x86_64: PHP 的 JavaScript 对象符号扩展 php74-php-ldap:x86_64:用于使用 LDAP 的 PHP 应用程序的模块 php74-php-oci8:x86_64:用于使用 OCI8 的 PHP 应用程序的模块数据库 php74-php-odbc:x86_64:用于使用 ODBC 的 PHP 应用程序的模块数据库 php74-php-pear:noarch: PHP 扩展和应用程序库框架 php74-php-pggi:GTK 绑定 php74-php-snmp:一个用于 PHP 应用程序查询的模块 SNMP-managed 设备 php74-php-soap:用于使用 SOAP 的 PHP 应用程序的模块协议 php74-php-tidy:标准 PHP 模块提供了 tidy 库支持 php74-php-zstd:x86_64: Zstandard 扩展名 php74-scldevel:x86_64:打包 php74 的开发文件 php74-unit-php:用于 NGINX 单元的 PHP 模块 php74-php-devel:构建 PHP 扩展所需的文件 php74-php-pgsql:一个用于 PHP 的 PostgreSQL 数据库模块 php74-php-pinba:x86_64: Pinba 统计服务器的客户端扩展 php74-php-bcmath:用于 PHP 应用程序的模块 bcmath 库 php74-php-brotli:用于 PHP 的 Brotli 扩展 php74-php-common:PHP 的公共文件 php74-php-pspell:x86_64:用于 PHP 应用程序的模块中接口 php74-php-recode:用于 PHP 应用程序的模块重新编码库 php74-php-snappy:PHP 的 Snappy 扩展 php74-php-sodium:x86_64:钠密码库的包装 php74-php-sqlsrv:x86_64:用于 SQL Server 的 PHP Microsoft 驱动程序 php74-php-xmlrpc:的 PHP 应用程序模块 xml - rpc 协议 php74-php-enchant:增强 PHP 的拼写扩展应用程序 php74-php-libvirt:用于 Libvirt 的 PHP 语言绑定 php74-php-mysqlnd:x86_64:用于使用 MySQL 的 PHP 应用程序的模块数据库 php74-php-opcache:x86_64: Zend OPcache php74-php-pecl-ds:x86_64: PHP 的数据结构 php74-php-pecl-ev:提供 libev 库的接口 php74-php-pecl-pq:PostgreSQL 客户端库 (libpq) 绑定 php74-php-pecl-uv:Libuv 包装器 php74-php-process:用于 PHP 脚本的模块使用系统进程接口 php74-php-embedded:用于嵌入应用程序的 PHP 库 php74-php-mbstring:一个用于 PHP 应用程序的模块多字节字符串处理 php74-php-pecl-dio:直接 I/O 函数 php74-php-pecl-eio:提供 libeio 库的接口 php74-php-pecl-env:加载环境变量 php74-php-pecl-lua:嵌入式 lua 解释器 php74-php-pecl-lzf:x86_64: 处理 LZF de/压缩的扩展 php74-php-pecl-nsq:NSQ 客户端的 PHP 扩展 php74-php-pecl-psr:PSR 接口 php74-php-pecl-rar:用于读取 RAR 存档的 PHP 扩展 php74-php-pecl-rrd:x86_64: rrdtool 的 PHP 绑定 php74-php-pecl-sdl:简单的 PHP DirectMedia 层 php74-php-pecl-svn:x86_64: Subversion 版本的 PHP 绑定控制系统 php74-php-pecl-vld:x86_64:转储 PHP 的内部表示脚本 php74-php-pecl-yac:无锁用户数据缓存 php74-php-pecl-yaf:x86_64:又一个框架 php74-php-pecl-yar:轻量级并发 RPC 框架 php74-php-pecl-yaz:x86_64: Z39.50/SRU 客户端 php74-php-pecl-zip:一个 ZIP 文件的扩展名 php74-php-pecl-zmq:ZeroMQ 消息传递 php74-php-phalcon4:Phalcon 框架 php74-php-componere:在运行时编写 PHP 类 php74-php-litespeed:LiteSpeed Web 服务器 PHP 支持 php74-php-maxminddb:MaxMind DB Reader 扩展 php74-php-pdo-dblib:x86_64: PDO 驱动程序,用于 Microsoft SQL Server 和 Sybase 数据库 php74-php-pecl-amqp:与任何 AMQP 兼容的服务器通信 php74-php-pecl-apcu:APC 用户缓存 php74-php-pecl-apfd:总是填充表单数据 php74-php-pecl-fann:用于 FANN 库的包装器 php74-php-pecl-grpc:x86_64:通用 RPC 框架 php74-php-pecl-http:扩展的 HTTP 支持 php74-php-pecl-krb5:Kerberos 验证扩展 php74-php-pecl-pcov:x86_64:代码覆盖驱动程序 php74-php-pecl-ssh2:x86_64: libssh2 库的绑定 php74-php-pecl-sync:已命名和未命名同步对象 php74-php-pecl-uopz:x86_64: Zend 的用户操作 php74-php-pecl-uuid:通用唯一标识符扩展对于 PHP php74-php-pecl-vips:x86_64:与 libvip 接口的 PHP 扩展 php74-php-pecl-wddx:Web 分布式数据交换 php74-php-pecl-yaml:x86_64: yaml 的 PHP 绑定 php74-php-phpiredis:x86_64: Redis 的客户端扩展名 php74-php-smbclient:libsmbclient 的 PHP 包装 php74-php-wkhtmltox:HTML 转换器 php74-php-pecl-cmark:CommonMark 扩展名 php74-php-pecl-dbase:dBase 数据库文件访问函数 php74-php-pecl-druid:一个 PHP 的德鲁伊驱动 php74-php-pecl-event:提供 libevent 库的接口 php74-php-pecl-geoip:将 IP 地址映射到的扩展名地理位置 php74-php-pecl-gnupg:x86_64: gpgme 库的包装 php74-php-pecl-mysql:MySQL 数据库访问函数 php74-php-pecl-oauth:PHP OAuth 消费者扩展 php74-php-pecl-parle:x86_64:解析和词法分析 php74-php-pecl-raphf:资源和持久句柄工厂 php74-php-pecl-solr2:Apache Solr 的 API 定向对象 php74-php-pecl-stats:用于统计计算的例程 php74-php-pecl-stomp:Stomp 客户端扩展 php74-php-pecl-taint:x86_64: XSS 代码嗅探器 php74-php-pecl-xattr:扩展属性 php74-php-pecl-xdiff:文件差异 /补丁 php74-php-pecl-xxtea:XXTEA 加密算法扩展 PHP php74-php-libvirt-doc:noarch: php-libvirt 文件 php74-php-pecl-base58:用 base58 编码和解码数据 php74-php-pecl-bitset:位集库 php74-php-pecl-crypto:OpenSSL 密码库的包装器 php74-php-pecl-gender:x86_64:性别扩展 php74-php-pecl-hprose:用于 PHP 的 h 散文 php74-php-pecl-hrtime:x86_64:高分辨率定时 php74-php-pecl-mcrypt:x86_64: libmcrypt 库的绑定 php74-php-pecl-pdflib:生成 PDF 文件的包 php74-php-pecl-propro:属性代理 php74-php-pecl-radius:Radius 客户端库 php74-php-pecl-redis4:的扩展名 Redis 键值存储 php74-php-pecl-redis5:的扩展名 Redis 键值存储 php74-php-pecl-scrypt:Scrypt 散列函数 php74-php-pecl-sphinx:Sphinx SQL 全文的 PECL 扩展搜索引擎 php74-php-pecl-ssdeep:libfuzzy 库的包装器 php74-php-pecl-trader:为贸易商提供技术分析 php74-php-pecl-xdebug:用于调试 PHP 脚本的 PECL 包 php74-php-pecl-xhprof:x86_64: XHProf 的 PHP 扩展,层次结构分析器 php74-php-pecl-yaconf:x86_64:另一个配置容器 php74-php-pecl-apcu-bc:APCu 向后兼容模块 php74-php-pecl-decimal:任意精度浮点小数 php74-php-pecl-gearman:PHP 包装器到 libgearman php74-php-pecl-gmagick:的包装器 GraphicsMagick 库 php74-php-pecl-imagick:x86_64:用于创建和修改映像的扩展使用 ImageMagick php74-php-pecl-inotify:x86_64: Inotify php74-php-pecl-leveldb:LevelDB PHP 绑定 php74-php-pecl-memprof:x86_64:内存使用分析器 php74-php-pecl-mongodb:x86_64:用于 PHP 的 MongoDB 驱动程序 php74-php-pecl-msgpack:用于与 MessagePack 通信的 API 序列化 php74-php-pecl-rdkafka:基于 librdkafka 的 Kafka 客户端 php74-php-pecl-rpminfo:x86_64: RPM 信息 php74-php-pecl-runkit7:为了这些你…不应该…无论如何我一直在做……但是肯定做的! php74-php-pecl-seaslog:一个有效、快速、稳定的日志 PHP 扩展 php74-php-pecl-selinux:用于 PHP 脚本的 SELinux 绑定语言 php74-php-pecl-swoole4:PHP 的异步并发分布式网络框架 php74-php-pecl-timecop:x86_64:时间旅行和冻结扩展 php74-php-pecl-varnish:Varnish 缓存绑定 php74-php-pecl-xmldiff:x86_64: XML 差异和合并 php74-php-pecl-igbinary:x86_64:替代标准 PHP 序列化器 php74-php-pecl-memcache:x86_64:使用 Memcached 的扩展缓存守护进程 php74-php-pecl-mogilefs:要与之通信的 PHP 客户端库 MogileFS 存储 php74-php-pecl-mustache:Mustache 模板语言 php74-php-pecl-protobuf:序列化结构化的机制数据 php74-php-pecl-rdkafka4:基于 librdkafka 的 Kafka 客户端 php74-php-pecl-scoutapm:本地扩展组件 ScoutAPM 的 PHP 代理 php74-php-pecl-translit:将非拉丁字符音译设置为拉丁文 php74-php-snuffleupagus:x86_64: PHP 的安全模块 php74-php-zephir-parser:x86_64: Zephir 解析器扩展 php74-php-pecl-cassandra:用于 Apache 的 DataStax PHP 驱动程序卡桑德拉 php74-php-pecl-json-post:JSON POST 处理程序 php74-php-pecl-mailparse:用于解析和的 PHP PECL 包处理电子邮件消息 php74-php-pecl-memcached:x86_64:使用 Memcached 的扩展缓存守护进程 php74-php-pecl-mosquitto:libmosquito - to 的扩展 php74-php-pecl-seasclick:一个 Yandex ClickHouse 客户端驱动 PHP 扩展 php74-php-pecl-xlswriter:一个高效、快速的 xlsx 文件出口扩展 php74-php-horde-horde-lz4:Horde LZ4 压缩扩展 php74-php-pecl-apcu-devel:APCu 开发人员文件 (头文件) php74-php-pecl-couchbase2:Couchbase 服务器 PHP 扩展 php74-php-pecl-geospatial:PHP 扩展来处理公共地理空间功能 php74-php-pecl-handlebars:Handlebars 模板语言 php74-php-pecl-http-devel:x86_64:扩展 HTTP 支持开发人员文件 (头) php74-php-pecl-krb5-devel:Kerberos 扩展开发人员文件 (头) php74-php-pecl-luasandbox:带有限制和安全的 Lua 解释器环境 php74-php-pecl-opencensus:一个 stats 集合和分布式跟踪框架 php74-php-pecl-skywalking:x86_64: Apache 的 PHP 工具代理人行天桥 php74-php-pecl-ahocorasick:有效的 Aho-Corasick 字符串模式匹配算法 php74-php-pecl-ip2location:获取 an 的地理位置信息 IP 地址 php74-php-pecl-http-message:x86_64: PSR-7 HTTP 消息实现 php74-php-pecl-datadog-trace:APM 和分布式跟踪 PHP php74-php-pecl-hdr-histogram:x86_64: C 语言的 PHP 扩展包装 hdrhistogram API php74-php-pecl-imagick-devel:imagick 扩展开发人员文件 (头) php74-php-pecl-msgpack-devel:MessagePack 开发人员文件 (头) php74-php-pecl-mysql-xdevapi:MySQL 数据库访问函数 php74-php-pecl-mysqlnd-azure:x86_64: mysqlnd 的重定向插件 php74-php-pecl-igbinary-devel:Igbinary 开发人员文件 (头) php74-php-pecl-uploadprogress:x86_64: 跟踪进度的扩展文件上传

 

# 运行一下 yum install php74-php

 

 使用如下命令安装额外的包

yum search php74* yum install php74-xxx

 

运行并查看版本, 重启命令, 添加自动启动,链接 php 文件

#运行并查看版本
php74 -v
#重启命令 php-fpm systemctl restart php74
-php-fpm
#添加自动启动 systemctl enable php74
-php-fpm
#查看 php7.4 的安装路径
whereis php #链接 php 文件 ln
-s /opt/remi/php74/root/usr/bin/php /usr/bin/php

 

一些配置文件的路径

# The current PHP memory limit is below the recommended value of 512MB. vi /etc/opt/remi/php74/php.ini memory_limit = 512M #如果你运行的是 nginx 而不是 apache,修改 vi /etc/opt/remi/php74/php-fpm.d/www.conf user = apache group = apache # Replace the values with user = nginx group = nginx

 

卸载所有 php7.4

yum remove php74-php*

 

 

 

3|02. 编译安装 PHP 以及需要的基本扩展库(php7.4)

参考网站:

https://www.php.net/manual/zh/install.php

https://www.cnblogs.com/werben/p/11833903.html

https://www.cnblogs.com/ckh2014/p/10909672.html

https://www.24kplus.com/linux/1614.html

1|0下载 php 源码

用 php 的官网,有很多源的,想要什么版本可以自己选一下

https://www.php.net/distributions/php-7.4.2.tar.bz2

#回到用户目录 cd ~ #下载 php7.4 源码 wget https://www.php.net/distributions/php-7.4.2.tar.bz2

 下载完成

 解压文的基本命令和实例

# 把它移动到 usr/local 文件下操作,我个人习惯 mv php-7.4.2.tar.bz2 /usr/local/php-7.4.2.tar.bz2
# 切换文件目录
cd /usr/local/ # 解压文件 tar
--bzip -xvf /usr/local/php-7.4.2.tar.bz2
# 切换文件目录
cd php-7.4.2

1|0安装编译工具和库

安装 php 的依赖库和安装编译的工具,无论有没有装都可以执行一下

yum -y install gcc gcc-c++ yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel

 

 创建用户组和用户

groupadd www useradd -g www www

4|0php ./configure 的一些参数及意义

PHP 编译参数的含义 ./configure –prefix=/usr/local/php php 安装目录 –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc 指定 php.ini 位置 –with-MySQL=/usr/local/mysql mysql 安装目录,对 mysql 的支持 –with-mysqli=/usr/local/mysql/bin/mysql_config mysqli 文件目录,优化支持 –enable-safe-mode 打开安全模式 –enable-ftp 打开 ftp 的支持 –enable-zip 打开对 zip 的支持 –with-bz2 打开对 bz2 文件的支持 –with-jpeg-dir 打开对 jpeg 图片的支持 –with-png-dir 打开对 png 图片的支持 –with-freetype-dir 打开对 freetype 字体库的支持 –without-iconv 关闭 iconv 函数,种字符集间的转换 –with-libxml-dir 打开 libxml2 库的支持 –with-xmlrpc 打开 xml-rpc 的 C 语言 –with-zlib-dir 打开 zlib 库的支持 –with-gd 打开 gd 库的支持 –enable-gd-native-ttf 支持 TrueType 字符串函数库 –with-curl 打开 curl 浏览工具的支持 –with-curlwrappers 运用 curl 工具打开 url 流 –with-ttf 打开 freetype1.*的支持,可以不加了 –with-xsl 打开 XSLT 文件支持,扩展了 libxml2 库 ,需要 libxslt 软件 –with-gettext 打开 gnu 的 gettext 支持,编码库用到 –with-pear 打开 pear 命令的支持,php 扩展用的 –enable-calendar 打开日历扩展功能 –enable-mbstring 多字节,字符串的支持 –enable-bcmath 打开图片大小调整,用到 zabbix 监控的时候用到了这个模块 –enable-sockets 打开 sockets 支持 –enable-exif 图片的元数据支持 –enable-magic-quotes 魔术引用的支持 –disable-rpath 关闭额外的运行库文件 –disable-debug 关闭调试模式 –with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置 cgi 方式安装才用的参数 –enable-fpm 打上 php-fpm 补丁后才有这个参数,cgi 方式安装的启动程序 –enable-fastcgi 支持 fastcgi 方式启动 php –enable-force-cgi-redirect 同上,帮助里没有解释 –with-ncurses 支持 ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库 –enable-pcntl freeTDS 需要用到的,可能是链接 mssql 才用到 mhash 和 mcrypt 算法的扩展 –with-mcrypt 算法 –with-mhash 算法 –with-gmp –enable-inline-optimization –with-openssl openssl 的支持,加密传输时用到的 –enable-dbase –with-pcre-dir=/usr/local/bin/pcre-config perl 的正则库案安装位置 –disable-dmalloc –with-gdbm dba 的 gdbm 支持 –enable-sigchild –enable-sysvsem –enable-sysvshm –enable-zend-multibyte 支持 zend 的多字节 –enable-mbregex –enable-wddx –enable-shmop –enable-soap PHP 配置选项完整列表 数据库选项 --with-dbplus  包括 dbplus 的支持。 --with-adabas[=DIR]  包括 Adabas D 的支持。DIR 是 Adabas 的基本安装目录,默认为 /usr/local。 --with-sapdb[=DIR]  包括 SAP DB 的支持。DIR 是 SAP DB 的基本安装目录,默认为 /usr/local。 --with-solid[=DIR]  包括 Solid 的支持。DIR 是 Solid 的基本安装目录,默认为 /usr/local/solid。 --with-ibm-db2[=DIR]  包括 IBM DB2 的支持。DIR 是 DB2 的基本安装目录,默认为 /home/db2inst1/sqllib。 --with-empress[=DIR]  包括 Empress 的支持。DIR 是 Empress 的基本安装目录,默认为 $EMPRESSPATH。自 PHP4 起,本选项仅支持 Empress 8.60 及以上版本。 --with-empress-bcs[=DIR]  包括 Empress Local Access 的支持。DIR 是 Empress 的基本安装目录,默认为$EMPRESSPATH。自 PHP4 起,本选项仅支持 Empress 8.60 及以上版本。 --with-birdstep[=DIR]  包括 Birdstep 的支持。DIR 是 Birdstep 的基本安装目录,默认为 /usr/local/birdstep。 --with-custom-odbc[=DIR]  包括用户自定义 ODBC 的支持。DIR 是 ODBC 的基本安装目录,默认为 /usr/local。要确认定义了 CUSTOM_ODBC_LIBS 并且在 include 目录中有某个 odbc.h。例如,对于 QNX 下的 Sybase SQLAnywhere 5.5.00,在运行 configure 脚本之前应该先定义以下环境变量: CPPFLAGS="-DODBC_QNX-DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib-lodbc". --with-iodbc[=DIR]  包括 iODBC 的支持。DIR 是 iODBC 的基本安装目录,默认为 /usr/local。 --with-esoob[=DIR]  包括 Easysoft OOB 的支持。DIR 是 OOB 的基本安装目录,默认为 /usr/local/easysoft/oob/client。 --with-unixODBC[=DIR]  包括 unixODBC 的支持。DIR 是 unixODBC 的基本安装目录,默认为 /usr/local。 --with-openlink[=DIR]  包括 OpenLink ODBC 的支持。DIR 是 OpenLink 的基本安装目录,默认为 /usr/local。这和 iODBC 一样。 --with-dbmaker[=DIR]  包括 DBMaker 的支持。DIR 是 DBMaker 的基本安装目录,默认为最新版 DBMaker 安装的目录(例如 /home/dbmaker/3.6)。 --disable-unified-odbc  取消对 unified ODBC 的支持。仅适用于激活了 iODBC,Adabas,Solid,Velocis 或用户自定义 ODBC 界面。仅能用于 PHP 3! 图像选项 --without-gd  禁用 GD 支持。仅用于 PHP 3--with-imagick  Imagick 扩展被移到 PEAR 中的 PECL 中去了,可以在这里找到。PHP 4 中的安装指示可以在 PEAR 站点中找到。只用 --with-imagick 仅在 PHP 3 中支持,除非依照 PEAR 站点的指示去做。 --with-ming[=DIR]  包括 ming 支持。 杂类选项 --enable-force-cgi-redirect  激活服务器内部重定向的安全检查。如果是在 Apache 中以 CGI 方式使用 PHP 则应该使用此选项。 --enable-discard-path  使用此选项可以使 PHP 的 CGI 可执行程序安全地放置在 web 目录树以外的地方,并且别人也不能绕过 .htaccess 的安全设置。 --with-fastcgi  将 PHP 编译成 FastCGI 应用程序。 --enable-debug  编译时加入调试符号。 --with-layout=TYPE  设置安装后的文件布局。TYPE 可以是 PHP(默认值)或者 GNU。 --with-pear=DIR  将 PEAR 安装在 DIR 目录中(默认为 PREFIX/lib/php)。 --without-pear  不安装 PEAR。 --enable-sigchild  激活 PHP 自己的 SIGCHILD 句柄。 --disable-rpath  禁止传递附加的运行时库搜索路径。 --enable-libgcc  激活显式 libgcc 连接。 --enable-php-streams  包含试验的 PHP 流。除非是测试源代码,否则不要使用! --with-zlib-dir=<DIR>  定义 zlib 的安装路径。 --with-aspell[=DIR]  包含 ASPELL 支持。 --with-ccvs[=DIR]  包含 CCVS 支持。 --with-cybercash[=DIR]  包含 CyberCash 支持。DIR 是 CyberCash MCK 的安装目录。 --with-icap[=DIR]  包含 ICAP 支持。 --with-ircg-config  ircg-config 脚本的路径。 --with-ircg  包含 ircg 支持。 --enable-mailparse  包含 mailparse 支持。 --with-muscat[=DIR]  包含 muscat 支持。 --with-satellite[=DIR]  激活通过 Satellite(试验性质)的 CORBA 支持。DIR 是 ORBit 的主目录。 --enable-trans-sid  激活透明的 session id 传播。 --with-regex[=TYPE]  使用系统 regex 库(不赞成)。 --with-vpopmail[=DIR]  包含 vpopmail 支持。 --with-tsrm-pthreads  使用 POSIX 线程(默认值)。 --enable-shared[=PKGS]  编译共享库 [default=yes]。 --enable-static[=PKGS]  编译静态库 [default=yes]。 --enable-fast-install[=PKGS]  为快速安装而优化 [default=yes]。 --with-gnu-ld  假定 C 编译器使用 GNU ld [default=no]。 --disable-libtool-lock  避免锁死(可能会破坏并行编译)。 --with-pic  尝试只使用 PIC/non-PIC 对象 [default=use both]。 --enable-memory-limit  编译时加入内存限制支持。 --disable-url-fopen-wrapper  禁止通过 URL 的 fopen wrapper,不能通过 HTTP 或 FTP 访问文件。 --enable-versioning  仅输出所需要的符号。更多信息见 INSTALL 文件。 --with-imsp[=DIR]  包含 IMSp 支持(DIR 是 IMSP 的 include 目录和 libimsp.a 目录)。仅用于 PHP 3--with-mck[=DIR]  包含 Cybercash MCK 支持。DIR 是 cybercash mck 编译目录,默认为 /usr/src/mck-3.2.0.3-Linux。帮助见 extra/cyberlib。仅用于 PHP 3--with-mod-dav=DIR  包含通过 Apache 的 mod_dav 的 DAV 支持。DIR 是 mod_dav 的安装目录(仅用于 Apache 模块版本!)仅用于 PHP 3--enable-debugger  编译入远程调试函数。仅用于 PHP 3--enable-versioning  利用 Solaris 2.x 和 Linux 提供的版本控制与作用范围的优势。仅用于 PHP 3! PHP 选项 --enable-maintainer-mode  激活将编译规则和未使用的(以及一些混淆的)依赖文件放入临时安装中。 --with-config-file-path=PATH  设定 php.ini 所在的路径,默认为 PREFIX/lib。 --enable-safe-mode  默认激活安全模式。 --with-exec-dir[=DIR]  安全模式下只允许此目录下执行程序。默认为 /usr/local/php/bin。 --enable-magic-quotes  默认激活 magic quotes。 --disable-short-tags  默认禁止简写的 PHP 开始标记 <?。 服务器选项 --with-aolserver=DIR  指定已安装的 AOLserver 的路径。 --with-apxs[=FILE]  编译共享 Apache 模块。FILE 是可选的 Apache 的 apxs 工具的路径,默认为 apxs。确保指定的 apxs 版本是安装后的文件而不是 Apache 源程序中包中的。 --with-apache[=DIR]  编译 Apache 模块。DIR 是 Apache 源程序的最高一级目录。默认为 /usr/local/apache。 --with-mod_charset  激活 mod_charset 中的传递表(Apache 中)。 --with-apxs2[=FILE]  编译共享的 Apache 2.0 模块。FILE 是可选的 Apache 的 apxs 工具的路径,默认为 apxs。 --with-fhttpd[=DIR]  编译 fhttpd 模块。DIR 是 fhttpd 的源代码路径,默认为 /usr/local/src/fhttpd。 --with-isapi=DIR  将 PHP 编译为 ISAPI 模块用于 Zeus。 --with-nsapi=DIR  指定已安装的 Netscape 服务器路径。 --with-phttpd=DIR --with-pi3web=DIR  将 PHP 编译为用于 Pi3Web 的模块。 --with-roxen=DIR  将 PHP 编译为一个 Pike 模块。DIR 是 Roxen 的根目录,通常为 /usr/local/roxen/server。 --enable-roxen-zts  编译 Roxen 模块,使用 Zend Thread Safety。 --with-servlet[=DIR]  包含 servlet 支持。DIR 是 JSDK 的基本安装目录。本 SAPI 需要 Java 扩展必须被编译为共享的 dl。 --with-thttpd=SRCDIR  将 PHP 编译为 thttpd 模块。 --with-tux=MODULEDIR  将 PHP 编译为 TUX 模块(仅用于 Linux)。

 配置 fpm 的用户组和用户,以及安装其他扩展

 

./configure --prefix=/usr/local/php \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --enable-mysqlnd-compression-support \ --with-iconv-dir \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-mbstring \ --enable-intl \ --with-mcrypt \ --with-libmbfl \ --enable-ftp \ --with-gd \ --enable-gd-jis-conv \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-zip \ --enable-soap \ --with-gettext \ --disable-fileinfo \ --enable-opcache \ --with-pear \ --enable-maintainer-zts \ --with-ldap=shared \ --without-gdbm

开始检查依赖,做编译安前的准备

 

一般都会有错误:

错误一:

 解决方法:缺了这个 sqlite3 这个包,我们就安装它

yum install sqlite-devel

 

错误二:

  解决方法:它说没有找到这个文件夹,我们就给它一个

cp -frp /usr/lib64/libldap* /usr/lib/

 

 错误三:

 解决方法:缺了这个 oniguruma 这个包,我们就安装它

yum install oniguruma

结果不行,去查看了官方更新日志 发现 mbsting  需要 oniguruma6.9.4

 git 的基本用户和实例,git 与 github 的区别

#从 github 中下载源码 git clone https://github.com/kkos/oniguruma

#官方安装步骤     possibly undefined macro: AM_INIT_AUTOMAKE    需要先 #autoreconf  install #要删除之前安的
yum remove onigurma*
cd oniguruma/ autoreconf -vfi ./configure make make install

 

 

运行./configure,直接出现下图

 

1|0编译安装 (安装要花一点时间)

make && make install

 

映射全局命令

ln -s /usr/local/php/sbin/* /usr/local/sbin/ ln -s /usr/local/php/bin/* /usr/local/bin/

输入 php -v ,出现下图,这就安装成功了

 

删除 php7.4

rm -rf /usr/local/php /bin/php /usr/local/sbin/php-fpm /usr/local/bin/php /usr/local/bin/pear /usr/local/bin/peardev /usr/local/bin/pecl /usr/local/bin/phar /usr/local/bin/phar.phar /usr/local/bin/php-cgi /usr/local/bin/php-config /usr/local/bin/phpdbg /usr/local/bin/phpize

 

5|03.LNMP(一键安装包)仅安装(php7.4)

参考网站

https://lnmp.org/

出官网找到有 php7.4 的版本,是 lnmp1.7 才开始支持 php7.4,但不是稳定版,如果是用于生产环境还是建议用稳的版本

wget http://soft.vpser.net/lnmp/lnmp1.7beta.tar.gz
# 解压
tar -zxvf
lnmp1.7beta.tar.gz
cd lnmp1.7
./install.sh

 输入 0,不安装 DataBase(数据库)

 输入 10,安装 php7.4 这个版本

 可以选择不安装、Jemalloc 或 TCmalloc,输入对应序号回车,直接回车为默认为不安装

脚本会自动下载安装 php7.4

 

 

LNMP 相关软件安装目录

Nginx 目录: /usr/local/nginx/ MySQL 目录 : /usr/local/mysql/ MySQL 数据库所在目录:/usr/local/mysql/var/ MariaDB 目录 : /usr/local/mariadb/ MariaDB 数据库所在目录:/usr/local/mariadb/var/ PHP 目录 : /usr/local/php/ 多 PHP 版本目录 : /usr/local/php5.5/ 其他版本前面 5.5 的版本号换成其他即可 PHPMyAdmin 目录 : 0.9 版本为 /home/wwwroot/phpmyadmin/ 1.0 及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin 可自己从官网下载新版替换。 默认网站目录 : 0.9 版本为 /home/wwwroot/ 1.0 及以后版本为 /home/wwwroot/default/ Nginx 日志目录:/home/wwwlogs/ /root/vhost.sh 添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/ PureFtpd 目录:/usr/local/pureftpd/ PureFtpd web 管理目录: 0.9 版为 /home/wwwroot/default/ftp/ 1.0 版为 /home/wwwroot/default/ftp/ Proftpd 目录:/usr/local/proftpd/ Redis 目录:/usr/local/redis/

 

LNMP 相关配置文件位置

Nginx 主配置 (默认虚拟主机) 文件:/usr/local/nginx/conf/nginx.conf 添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/ 域名.conf MySQL 配置文件:/etc/my.cnf PHP 配置文件:/usr/local/php/etc/php.ini php-fpm 配置文件:/usr/local/php/etc/php-fpm.conf PureFtpd 配置文件:/usr/local/pureftpd/pure-ftpd.conf 1.3 及更高版本:/usr/local/pureftpd/etc/pure-ftpd.conf PureFtpd MySQL 配置文件:/usr/local/pureftpd/pureftpd-mysql.conf Proftpd 配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2 及之前版本为 /usr/local/proftpd/proftpd.conf Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/ 用户名.conf Redis 配置文件:/usr/local/redis/etc/redis.conf

 

LNMPA 相关目录文件位置

Apache 目录:/usr/local/apache/ Apache 配置文件:/usr/local/apache/conf/httpd.conf Apache 虚拟主机配置文件目录:/usr/local/apache/conf/vhost/ Apache 默认虚拟主机配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf 虚拟主机配置文件名称:/usr/local/apache/conf/vhost/ 域名.conf

 

LNMP 状态管理命令:
LNMP 1.2+ 状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2+ 各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1 状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx 状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL 状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached 状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM 状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd 状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd 状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Redis 状态管理: /etc/init.d/redis {start|stop|restart|kill}
多 PHP 版本状态管理:/etc/init.d/php-fpm5.5 {start|stop|quit|restart|reload|logrotate} 前面 5.5 为对应的 PHP 版本,其他版本自行替换。
如重启 LNMP,1.2+ 输入命令:lnmp restart 即可;单独重启 mysql:/etc/init.d/mysql restart 也可以 lnmp mysql restart ,两个是一样的。
LNMPA 状态管理命令:
LNMPA 1.2+ 状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMPA 1.2+ 各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMPA1.1 状态管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx 状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL 状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached 状态管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd 状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd 状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache 状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}
LAMP 状态管理命令:
LAMP 1.2+ 状态管理: lnmp {start|stop|reload|restart|kill|status}
LAMP 1.2+ 各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
分类: Linux 安装软件
 

__EOF__

本文作者BookMarkYe
本文链接https://www.cnblogs.com/alliancehacker/p/12255445.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!