php7 安装shell_安装php shell脚本 - CSDN
精华内容
参与话题
  • Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法 编译安装 Centos8下PHP源码编译和通过yum安装的区别和以后的选择 其实这两种方法各有千秋: yum安装: 从yum安装来说吧,yum相当于是自动化帮你...

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

     

    编译安装

    Centos8下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*

     

     

     

    2.编译安装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

    下载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

    复制代码

    安装编译工具和库

    安装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

    php ./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,直接出现下图

     

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

    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

     

    3.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}

    展开全文
  • echo -e "\033[32m start install php...\n----------------------------------------------------------\033[0m" echo "start to install system depedent;" wget ...
    #!/bin/bash
      echo -e "\033[32m start install php...\n----------------------------------------------------------\033[0m"
      echo "start to install system depedent;"
       wget https://www.php.net/distributions/php-7.4.8.tar.gz
       xz -d php-7.4.8.tar.gz
       cp -rp ~/php-7.4.8.tar /usr/local/
        yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel
        yum install libxml2-devel -y
        yum install openssl openssl-devel
        yum install bzip2 bzip2-devel -y yum install curl-devel -y
        yum install libjpeg-devel -y
        yum install libpng libpng-devel -y
        yum install freetype-devel -y yum install libxslt-devel -y
        yum install libzip-devel -y
        yum install sqlite-devel
        yum install bzip2 bzip2-devel
        yum install libxslt-devel
        yum install git
        echo "now cd /usr/local"
        cd /usr/local
        #解决报错问题
        rm -rf /usr/local/oniguruma/
        git clone https://github.com/kkos/oniguruma 
        cd /usr/local/oniguruma
       ./autogen.sh && ./configure --prefix=/usr --libdir=/lib64
        make && make install
        # yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
        #yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm 
      echo "start to install php \n"   
      cd /usr/local
       rm -rf /usr/local/php-7.4.8/
        tar -xvf  php-7.4.8.tar
        mkdir -p /usr/local/php
        cd /usr/local/php-7.4.8
        ./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization  --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip  --with-config-file-path=/etc
        make && make install
        cp /usr/local/php-7.4.8/php.ini-development /etc/php.ini
        cp /usr/local/php/bin/phpize /usr/local/bin/phpize
        cp /usr/local/php/bin/php-config /usr/local/bin/php-config
        cp /usr/local/php/bin/php /usr/local/bin/php
        php -v
       echo "install php successfully \n"
       rm -rf /usr/local/php-7.4.8/
       #安装redis扩展
        echo "开始安装redis扩展.....\n"
        cd /usr/local
        wget http://pecl.php.net/get/redis-4.2.0.tgz
        tar -xvf redis-4.2.0.tar.gz
        phpize
        ./configure --with-php-config=/usr/local/bin/php-config
        make && make install
       sed -i '2iextension=redis.so' /etc/php.ini
       echo 'install to redis expend  susccessfully \n'
       rm -rf /usr/local/redis-4.2.0/
       #安装swoole扩展
       echo "开始swoole扩展....\n"
       cd /usr/local
       wget  http://pecl.php.net/get/swoole-4.4.16.tgz
       tar -xvf swoole-4.4.16.tgz
       cd swoole-4.4.16
       phpize
       ./configure --with-php-config=/usr/local/bin/php-config
       make && make install
       sed -i '2iextension=swoole.so' /etc/php.ini
       echo  'install swoole expend successfully \n'
       rm -rf /usr/local/swoole-4.4.16
       php -m
      rm -rf /usr/local/php-7.4.8.tar
    echo -e "\033[32m done \033[0m"
    
    展开全文
  • linux下PHP7环境搭建

    2017-12-08 14:53:45
    操作系统:Centos 7Mysql:5.7.11Apache:2.4.18PHP:7.0.4 安装Mysql 下载链接:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz 为mysql创建专属帐号 ...

    LAMP环境版本

    • 操作系统:Centos 7
    • Mysql:5.7.11
    • Apache:2.4.18
    • PHP:7.0.4


    安装Mysql




    为mysql创建专属帐号

    [plain] view plain copy
    1. shell> groupadd mysql  
    2. shell> useradd -r -g mysql -s /bin/false mysql  


    源码编译安装

    [plain] view plain copy
    1. shell> tar zxvf mysql-5.7.11.tar.gz  
    2. shell> cd mysql-5.7.11  
    3. shell> cmake .  
    4. shell> make  
    5. shell> make install  

    安装后设置

    注意:从Mysql5.7开始,mysql默认安装后不再是空密码,而是生成一个随机密码,除非初始化时指定--initialize-insecure。
    所有用户拥有对于MySQL默认安装test数据库的访问权限(即使没有授予权限)为了安全考虑5.7版本中不在有test数据库。
    更为重要的是,MySQL 5.7版本提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式

    [plain] view plain copy
    1. shell> cd /usr/local/mysql  
    2. shell> chown -R mysql .  #修改目录所有者为mysql  
    3. shell> chgrp -R mysql .  #修改目录所属组为mysql  
    4. shell> bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql  #初始化mysql,初始化为空,数据库存放目录指定为/data/mysql  
    5. shell> bin/mysql_ssl_rsa_setup #启动ssl加密方式连接  
    6. shell> chown -R root .   #修改目录所有者为root  
    7. shell> chown -R mysql /data/mysql  #修改数据库目录所有者为mysql  

    安装mysql服务

    只需要将mysql安装目录下的mysql.server复制过去就OK了。
    [plain] view plain copy
    1. shell> cp support-files/mysql.server /etc/init.d/mysql.server  
    2. shell> service mysql start   #启动服务  


    安装Apache




    源码编译安装


    [plain] view plain copy
    1. shell> ./configure --prefix=/usr/local/apahche \  
    2. --enable-so #动态共享对象,可实现模块动态生效 \  
    3. --enable-rewrite #启用Rewrite功能 \  
    4. --enable-ssl #支持SSL/TLS,可以实现https访问 \  
    5. --enable-deflate #支持压缩 \  
    6. shell> make  
    7. shell> make install  


    apache的启动与关闭


    [plain] view plain copy
    1. shell> /usr/local/apache/bin/apachectl start    #启动  
    2. shell> /usr/local/apache/bin/apachectl stop     #停止  
    3. shell> /usr/local/apache/bin/apachectl restart  #重启  

    将apache添加到Linux的服务并设置自启动


    [plain] view plain copy
    1. shell> cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd   #设置为系统服务  
    2. shell> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S80httpd   #在启动级别3中自启动  
    3. shell> service httpd restart   #通过服务来重启apache  


    运行测试页面


    在客户端浏览器上输入服务器的IP地址,看是否能正常打开网页。



    常见问题

    • configure: error: APR not found.
      解决方法: 安装对应依赖库
      [plain] view plain copy
      1. shell> yum install apr apr-util-devel  
    • configure: error: pcre-config for libpcre not found.
      解决方法:安装对应依赖库
      [plain] view plain copy
      1. yum install pcre pcre-devel  
    • 启动apache时报:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.44.13.173. Set the 'ServerName' directive globally to suppress this message
      解决方法:修改配置文件httpd.conf设置ServerName localhost:80

    安装PHP



    安装依赖库


    • zlib

      [plain] view plain copy
      1. shell> tar xf zlib.1.2.8.tar.gz  
      2. shell> cd zlib.1.2.8  
      3. shell> ./configure  
      4. shell> make test  
      5. shell> make install  

    • GD库

      libpng
      [plain] view plain copy
      1. shell> tar xf libpng-1.6.21  
      2. shell> cd libpng-1.6.21  
      3. shell> ./configure --prefix=/usr/local/libpng  
      4. shell> make  
      5. shell> make check  
      6. shell> make install  

      jpeg
      [php] view plain copy
      1. shell> tar xf jpegsrc.v9.tar.gz  
      2. shell> cd jpeg-9  
      3. shell> ./configure --prefix=/usr/local/libjpeg  
      4. shell> make  
      5. shell> make install  

    • libcurl-devel
      [plain] view plain copy
      1. yum install libcurl-devel  

    • openssl-devel
      [plain] view plain copy
      1. yum install openssl-devel  


    • libxslt-devel
      [plain] view plain copy
      1. yum install libxslt-devel  


    • libxml2-devel
      [plain] view plain copy
      1. yum install libxml2-devel  


    • freetype 字体操作库
      [plain] view plain copy
      1. shell> tar xf freetype-2.6.3.tar.bz2  
      2. shell> sh autogen.sh  
      3. shell> ./configure --prefix=/usr/local/freetype  
      4. shell> make  
      5. shell> make install  


    编译安装PHP

    [plain] view plain copy
    1. ./configure --prefix=/usr/local/php \  
    2.  --with-apxs2=/usr/local/apache/bin/apxs \  
    3.  --with-curl \  
    4.  --with-freetype-dir=/usr/local/freetype \  
    5.  --with-gd \  
    6.  --with-gettext \  
    7.  --with-iconv-dir \  
    8.  --with-mysqli \  
    9.  --with-openssl \  
    10.  --with-pcre-regex \  
    11.  --with-pdo-mysql \  
    12.  --with-pdo-sqlite \  
    13.  --with-pear \  
    14.  --with-png-dir=/usr/local/libpng \  
    15.  --with-jpeg-dir=/usr/local/libjpeg \  
    16.  --with-xsl \  
    17.  --with-zlib \  
    18.  --enable-fpm \  
    19.  --enable-bcmath \  
    20.  --enable-libxml \  
    21.  --enable-inline-optimization \  
    22.  --enable-gd-native-ttf \  
    23.  --enable-mbregex \  
    24.  --enable-mbstring \  
    25.  --enable-opcache \  
    26.  --enable-pcntl \  
    27.  --enable-shmop \  
    28.  --enable-soap \  
    29.  --enable-sockets \  
    30.  --enable-sysvsem \  
    31.  --enable-xml \  
    32.  --enable-zip  
    33.   
    34. shell> make  
    35. shell> make install  

    Apache与PHP的关联
    PHP安装成功后会在apache的modules目录下生成一个libphp.so动态库文件,在apache的配置文件httpd.conf里自动增加一行
    [plain] view plain copy
    1. LoadModule php7_module        modules/libphp7.so  

    在Apache的配置文件httpd.conf的<IfModule mime_module></IfModule>块里增加一行
    [plain] view plain copy
    1. AddType application/x-httpd-php .php  
    在网站要目录/usr/local/htdocs里增加一个index.php测试文件内容如下:
    [php] view plain copy
    1. <?php  
    2. phpinfo();  
    然后我们运行此文件,如果输出了phpinfo信息,证明我们安装成功。
    展开全文
  • Shell脚本实战-安装PHP7

    2018-03-26 17:17:58
    /bin/bash#--------------------------------------------------------# Function: Install php7 for Centos# Date: 2017-10-03# Author: Jason Wang#----------------------------------------------------...
    #!/bin/bash
    #--------------------------------------------------------
    # Function: Install php7 for Centos
    # Date: 2017-10-03
    # Author: Jason Wang
    #--------------------------------------------------------


    DOWNPATH=/root/download
    [ ! -d $DOWNPATH ]&&{
        mkdir $DOWNPATH
    }

    cd $DOWNPATH


    #Print debug information
    function Debug(){
    echo ""
    echo "\033[37m[$(date)]\033[32m ::::::::::>>>>>-----------------<<<<<::::::::::\033[0m"
    echo "\033[37m[$(date)]\033[31m "$1"\033[0m"
    echo ""
    }


    #Installing wget
    yum install -y wget


    #Dwonloading php-7.1.13.tar.gz
    [ ! -f ${DOWNPATH}/php-7.1.13.tar.gz ]&&{
    wget -O ${DOWNPATH}/php-7.1.13.tar.gz http://cn2.php.net/get/php-7.1.13.tar.gz/from/this/mirror
    }
    if [ $? -gt 1 ]
    then
    Debug "PHP7 Installer: Downloading php-7.1.13.tar.gz error...."
    exit 1
    fi


    #Installing dependencies
    yum install -y wget gcc gcc-c++ autoconf automake cmake libtool make
    yum install -y zlib-devel libxml2-devel libjpeg-turbo-devel libpng-devel gd-devel libiconv-devel freetype-devel libcurl-devel libxslt-devel openssl-devel readline-devel


    #Create user
    groupadd nobody
    useradd -g nobody nobody
    usermod -s /sbin/nologin nobody


    cd $DOWNPATH
    #Installing libiconv-1.14.tar.gz
    [ ! -f ${DOWNPATH}/libiconv-1.14.tar.gz ]&&{
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
    }
    if [ $? -gt 1 ]
    then
    Debug "PHP7 Installer: Downloading libiconv-1.14.tar.gz error...."
    exit 1
    fi
    tar -zxvf libiconv-1.14.tar.gz
    cd ${DOWNPATH}/libiconv-1.14
    ./configure --prefix=/usr/local/libiconv
    make
    make install


    cd $DOWNPATH
    #Installing libmcrypt-2.5.8.tar.gz
    [ ! -f ${DOWNPATH}/libmcrypt-2.5.8.tar.gz ]&&{
    wget -O ${DOWNPATH}/libmcrypt-2.5.8.tar.gz https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
    }
    if [ $? -gt 1 ]
    then
    Debug "PHP7 Installer: Downloading libmcrypt-2.5.8.tar.gz error...."
    exit 1
    fi
    tar -zxvf libmcrypt-2.5.8.tar.gz
    cd ${DOWNPATH}/libmcrypt-2.5.8
    ./configure
    make
    make install


    cd $DOWNPATH
    #Installing mhash-0.9.9.9.tar.gz
    [ ! -f ${DOWNPATH}/mhash-0.9.9.9.tar.gz ]&&{
    wget -O ${DOWNPATH}/mhash-0.9.9.9.tar.gz https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download
    }
    if [ $? -gt 1 ]
    then
    Debug "PHP7 Installer: Downloading mhash-0.9.9.9.tar.gz error...."
    exit 1
    fi
    tar -zxvf mhash-0.9.9.9.tar.gz
    cd ${DOWNPATH}/mhash-0.9.9.9
    ./configure
    make
    make install


    cd $DOWNPATH
    #Installing mcrypt-2.6.8.tar.gz
    [ ! -f ${DOWNPATH}/mcrypt-2.6.8.tar.gz ]&&{
    wget -O ${DOWNPATH}/mcrypt-2.6.8.tar.gz https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
    }
    if [ $? -gt 1 ]
    then
    Debug "PHP7 Installer: Downloading mcrypt-2.6.8.tar.gz error...."
    exit 1
    fi
    tar -zxvf mcrypt-2.6.8.tar.gz
    cd ${DOWNPATH}/mcrypt-2.6.8
    LD_LIBRARY_PATH=/usr/local/lib ./configure
    make
    make install


    #Tar php
    cd $DOWNPATH
    [ ! -d $DOWNPATH/php-7.1.13 ]&&{
    tar -zxvf php-7.1.13.tar.gz
    }
    if [ $? -gt 1 ]
    then
        Debug "PHP7 Installer: directory php-7.1.13 is not exists...."
    exit 404
    fi

    #Resolve error:Don’t know how to define struct flock on this system, set –enable-opcache=no
    ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/
    ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/
    LIBCONF="/etc/ld.so.conf.d/local.conf"
    [ ! -f $LIBCONF ]&&{
    touch $LIBCONF
    echo "/usr/local/lib">$LIBCONF
    sed -i '$a /usr/local/lib64' $LIBCONF
    ldconfig -v
    }


    #Starting install
    cd ${DOWNPATH}/php-7.1.13
    ./configure --prefix=/usr/local/php7 \
    --with-mysql=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-mysqli=mysqlnd \
    --enable-mysqlnd \
    --with-freetype-dir=/usr \
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-openssl \
    --with-curl \
    --with-libxml-dir \
    --with-iconv-dir=/usr/local/libiconv \
    --with-mcrypt \
    --with-mhash \
    --with-xmlrpc \
    --with-xsl \
    --enable-xml \
    --disable-rpath \
    --enable-safe-mod \
    --enable-bcmath \
    --with-readline \
    --with-gc \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv \
    --enable-mbregex \
    --enable-fpm \
    --enable-short-tags \
    --enable-sockets \
    --enable-zend-multibyte \
    --enable-zip \
    --enable-pcntl \
    --enable-soap \
    --enable-mbstring \
    --enable-static \
    --enable-ftp \
    --enable-opcache

    make && make install
    if [ $? -gt 0 ]
    then
    Debug "PHP7 Installer: Installing php7.1.13 error...."
    exit 1
    fi


    #Copying config file
    cp ./php.ini-production /usr/local/php7/lib/php.ini
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
    cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
    if [ $? -gt 0 ]
    then
    Debug "PHP7 Installer: Copying config files error...."
    exit 1
    fi

    #Set env
    sed -i '$a PATH=$PATH:/usr/local/php7/bin' /etc/profile
    sed -i '$a PATH=$PATH:/usr/local/php7/sbin' /etc/profile

    . /etc/profile

    #Starting php-fmp
    /usr/local/php7/sbin/php-fpm
    if [ $? -eq 0 ]
    then
    ps -aux|grep php
    fi
    展开全文
  • CentOS 7 编译安装PHP7

    2019-06-12 17:49:17
    编译安装系统版本CentOS V7.6PHP V7.3.3#yum安装PHP编译时的依赖库shell>yum install libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel ...
  • #!/bin/bash # author:kwin # Email:kwinwong@hotmail.comsrc="/usr/local/src/" cd $src #找到指定进程,并杀死 #findPortKill 80 findPortKill (){ processe=`lsof -i:${1} -n|awk '{print $2}'|grep '...
  • PHP调用shell命令

    千次阅读 2019-05-09 17:16:12
    PHP调用shell命令 前言 因为想用php调用python脚本,于是想到可以利用php调用shell命令的方法实现。 php版本:php7.0 三种方法 1.system system — 执行外部程序,并且显示输出 函数使用方法 system ( string $...
  • PHP 的 Interactive shell 模式

    千次阅读 2012-03-24 00:27:20
    臨時要測個簡單的程式片段 或 Function, 一般都會於 CLI 寫來跑一跑, Interactive 模式 可以邊寫邊測試~ (互動模式, 寫完一行就 Compile 一行) ...Interactive shell 比較像是 互動式, 有問有答的執行程
  • PHP执行shell命令无效

    2018-09-30 01:58:25
    $...上面的shell命令在linux命令行里可以执行,PHP文件在CLI模式下也可以执行,在WEB下执行返回127,找不到命令。PHP是用root权限运行的,这是什么原因?
  • shell脚本调用php代码

    千次阅读 2011-08-22 16:04:32
    shell里可以通过cgi模式来调用php,例如下面 /usr/php5/bin/php -q /var/html/demo.php 当需要并发处理一些php程序时 在其后面加上& 有的时候可以需要传些参数 /usr/php5/bin/php -
  • PHP执行shell_exec方法失败

    万次阅读 2020-05-06 11:56:28
    多半原因在php.ini文件中未打开方法权限 在php.ini开启即可
  • shell安装软件脚本

    千次阅读 2018-08-16 12:12:18
    环境:centos7 #!/bin/bash #apache服务 1. 安装Apache echo &quot;2秒后安装apache服务,请稍后&quot; sleep 2 #安装apache yum -y install httpd httpd-devel #启动apache服务 systemctl start ...
  • php页面远程执行shell脚本

    千次阅读 2012-12-18 16:44:00
    php在执行shell时使用的默认用户为nobody用户,因此引起命令无法执行返回结果为空的问题。 既然是权限问题,那么可以转换成root来执行,sudo即可 转换为root或者相应的用户来执行命令 exec('sudo -u root -S ...
  • phpweb后台拿shell方法

    千次阅读 2016-11-19 09:06:58
    首先登录后台admin.php(默认后台admin.php) 有的phpweb网站存在万能密码登录 帐号密码都输入:admin 'or '1'='1直接登录 登录后台管理系统后,然后把下面的文件保存为xxx.html,修改action,把www.xxx.com ...
  • php中防止shell注入的方法

    千次阅读 2012-09-23 12:42:09
    一般来说用户提交内容是包含在命令行参数里面的(如果连可执行文件名和路径都由用户输入决定的话那还防什么注入……) 这时候可以用escapeshellarg这个函数,它给整个参数加上引号并且escape所有需要的字符,让整个...
  • Linux软件包安装Shell脚本编程

    千次阅读 2018-05-25 16:46:51
    Linux软件包安装二进制软件包管理:RPM与YUMRPM软件包例子:jdk-7u80-linux-x64.rpm其中包括软件名(jdk),版本号(7u80),适用平台(linux-x64)RPM管理1、卸载# rpm -e jdk注:如果其他软件包有依赖关系,卸载时会...
  • php执行shell不阻塞方法

    千次阅读 2016-04-20 14:31:47
    system() 输出并返回最后一行shell结果。 exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。 passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。这些...
  • php中判断shell_exec执行结果

    万次阅读 2016-05-05 13:58:43
     不过shell_exec执行成功无输出 和 执行失败 返回的都是null 在记录错误日志的时候区分就成问题了。  在php手册的评论中找到了区分的方法,在此记录一下。   $shell = "wget -O despath sourcepath && echo
  • php异步执行shell脚本

    千次阅读 2017-06-19 14:34:53
    docker.php/** * 跨平台执行脚本 ... * array['status'] 执行状态 0为正常 127 找不到脚本 126没有执行该shell脚本权限 */ function terminal($command) { // system if (function_exists ( 's
  • php执行shell,不阻塞

    千次阅读 2013-03-20 10:57:44
    exec("sh /var/www/html/1.sh"." > /dev/null &"); 可以保证不阻塞,为了方便大家搜索,多加一些关键字 php,exec,阻塞,exec,system,shell_exec
1 2 3 4 5 ... 20
收藏数 139,639
精华内容 55,855
关键字:

php7 安装shell