我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Ubuntu14如何安装php7扩展

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Ubuntu14如何安装php7扩展

这篇文章将为大家详细讲解有关Ubuntu14如何安装php7扩展,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Ubuntu14安装php7的方法:1、安装mysql;2、下载php源码“php-7.2.27.tar.gz”并解压到root目录下;3、安装编译需要的依赖;4、创建安装目录;5、配置开启php-fpm支持即可。

本文操作环境:ubuntu14.04系统,PHP7.2版,Dell G3电脑。

解决问题:

  • 无法安装php7.0

  • 以上版本 php上传1M以上文件异常

  • php未指定Loaded Configuration File

  • php使用phpmailer ssl发送邮件异常

系统:

服务器:Linux version 4.4.0-53-generic (buildd@lgw01-18) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #74~14.04.1-Ubuntu SMP Fri Dec 2 03:43:31 UTC 2016

安装php7.0以上版本:

通过查询,几乎所有的教程都如下步骤
首先添加php官方源

$ sudo add-apt-repository ppa:ondrej/php

然后更新源

$ sudo apt-get update

然后安装

$ sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readline

但实际操作下来,无法找到7.0以上的源
错误如下

root@iZuf624uxtr8143n2396iaZ:~# sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readlineReading package lists... DoneBuilding dependency tree       Reading state information... DoneE: Unable to locate package php7.0E: Couldn't find any package by regex 'php7.0'E: Unable to locate package php7.0-cliE: Couldn't find any package by regex 'php7.0-cli'E: Unable to locate package php7.0-fpmE: Couldn't find any package by regex 'php7.0-fpm'E: Unable to locate package php7.0-gdE: Couldn't find any package by regex 'php7.0-gd'E: Unable to locate package php7.0-jsonE: Couldn't find any package by regex 'php7.0-json'E: Unable to locate package php7.0-mysqlE: Couldn't find any package by regex 'php7.0-mysql'E: Unable to locate package php7.0-readlineE: Couldn't find any package by regex 'php7.0-readline'

无奈只能自己下载安装包,手动安装,中间各种踩坑,再此记录一下,方便需要的小伙伴直接拿走,节省时间

使用安装包,安装php7.0以上版本:
  • 编译环境:php-7.2.27

  • 静态资源服务器:nginx/1.4.6 (Ubuntu)

  • 数据库:mysql

一、mysql安装

安装mysql ,安装目录/usr/bin/mysql 安装步骤略

二、PHP安装
1、下载php源码php-7.2.27.tar.gz,并解压到/root目录下

$ tar -zxvf /root/php-7.2.27.tar.gz -C /root/

安装编译需要的依赖

①安装libxml2-dev

$ sudo apt-get update  $ sudo apt-get install libxml2-dev

②安装gcc

$ sudo apt-get install build-essential

③安装依赖库

$ sudo apt-get install openssl$ sudo apt-get install libssl-dev$ sudo apt-get install make$ sudo apt-get install curl$ sudo apt-get install libcurl4-gnutls-dev$ sudo apt-get install libfreetype6-dev$ sudo apt-get install libjpeg-dev$ sudo apt-get install libpng-dev$ sudo apt-get install libmcrypt-dev$ sudo apt-get install libreadline6 libreadline6-dev$ sudo apt-get install libbz2-dev

④安装apache2-dev,否则无法指定–with-apxs2=/usr/bin/apxs来生成libphp7.so

sudo apt-get install apache2-dev

创建安装目录

$ mkdir /usr/local/php

切换到解压编译目录

$ cd /root/php-7.2.27/

配置开启php-fpm支持,开启多线程支持–enable-maintainer-zts,否则无法使用Apache2的Event MPM功能。

①执行:

$ ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/bin/mysql --enable-bcmath --enable-mbstring --with-gettext --enable-fpm --enable-shmop --enable-soap --enable-opcache --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar

②执行:

$ make && make testYou can then email it to qa-reports@lists.php.net later.Do you want to send this report now? [Yns]:$ make && sudo make install

较长时间等待~~~

③执行以下 :查看版本号

/usr/local/php/bin/php -v

配置php-fpm

进入安装目录的etc下,复制php-fpm.conf.default到php-fpm.conf
进入安装目录的etc/php-fpm.d下,复制www.conf.default到www.conf 此文件中可修改fpm的端口号

$ cd /usr/local/php/etc$ cp php-fpm.conf.default php-fpm.conf$ cd /usr/local/php/etc/php-fpm.d$ cp www.conf.default www.conf$ vim  /usr/local/php/etc/php-fpm.d/www.conf

修改 :
user = www-data
group = www-data
Eg:如果www-data用户不存在,那么先添加www-data用户

groupadd www-datauseradd -g www-data www-data

启动php-fpm 启动方式一

$ sudo /usr/local/php/sbin/php-fpm

将php-fpm添加至init.d中

$ /usr/local/php/etc$ Vim /usr/local/php/etc

编辑 php-fpm.conf 文件,将 ;pid = run/php-fpm.pid 前面的分号去掉 关闭fpm服务,执行:

$ killall php-fpm

进入目录(该目录为php源码包解压后的目录),找到 init.d.php-fpm 文件

$ cd /root/php-7.2.27/sapi/fpm/

将该文件复制到 /etc/init.d 目录下并改名为 php-fpm

$ cp init.d.php-fpm /etc/init.d/php-fpm

添加权限:

chmod +x /etc/init.d/php-fpm chkconfig --add php-fpmchkconfig php-fpm on

启动php-fpm 启动方式二:

$ sudo /etc/init.d/php-fpm start

启动php-fpm 启动方式三:

$ service php-fpm start

fpm默认使用9000端口号,
lsof -i:9000查看详情

三、服务器配置
1、apache2配置方案

安装配置忽略

nginx配置方案

安装nginx sudo apt-get install nginx nginx指向fpm进程管理器

Eg:

server {        listen       80;        server_name  ip地址或者域名;        root /home/cms/phpProject/;        location / {index index.html index.htm index.php;if (!-e $request_filename) {   rewrite  ^(.*)$  /index.php?s=/$1  last;   break;}}location ~ \.php(.*)$ {fastcgi_pass  127.0.0.1:9000;fastcgi_index index.php;fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;include       fastcgi_params;}        access_log  /var/log/nginx/cms.access.log;        error_log  /var/log/nginx/cms.error.log  info;}

将项目放入/home/cms/phpProject/ 下
将runtime设置权限

$ chmod +x /home/cms/phpProject/runtime/

启动nginx

$ /etc/nginx nginx

访问地址 ip/域名

四、其它注意点

runtime下模板文件权限导致系统无法访问问题

日志在/home/cms/prod/runtime/目录下
注意数据库连接的端口号
注意cache文件的读写状态
chmod -R 777 /home/cms/phpProject/runtime/

lunix服务器php7.0+环境无法指向php.ini文件问题,无法调整上传文件大小问题

通过phpinfo()查看PHP基本信息,发现未指定Loaded Configuration File
通过将php-fpm 指定到日志中查看strace /usr/local/php/sbin/php-fpm -i 2>1.log
将cp /usr/local/php/lib/php.ini /usr/local/php/etc/php.ini 拷贝到指定目录下

上传仍最大限制为1M,暂时未解决提升上传最大限制问题 解决方法待补充

2020-04-27问题修复上传大小限制问题

通过问题排查,发现是nginx文件上传配置太小导致:
通过查看var/logs/nginx中的错误文件,会有错误如下

recv() failed (104: Connection reset by peer) while waiting for
request

修正:nginx.conf中调整参数

client_header_buffer_size 64k;large_client_header_buffers 4 64k;client_body_buffer_size 20m;fastcgi_buffer_size 128k;fastcgi_buffers 4 128k;    fastcgi_busy_buffers_size 256k;fastcgi_connect_timeout 600;fastcgi_send_timeout 600;fastcgi_read_timeout 600;proxy_buffer_size 64k;proxy_buffers 4 128k;proxy_busy_buffers_size 256k;proxy_connect_timeout 600s;proxy_send_timeout 1200;proxy_read_timeout 1200;

重启nginx后,图片上传,发现仍然报错,打开php日志,发现报错
[ error ] [2]mkdir(): Permission denied[/home/biotool/cms/prod/thinkphp/library/think/File.php:160]
记住,凡是遇到此类问题都是无权限导致。
执行:

chmod -R 777 /home/cms/prod/public/`

超过1M大图片上传成功

服务器邮件发送失败,openssl未指定问题

1、我的源码在 /root/php-7.2.27 ,安装位置在 /usr/local/php, php.ini 在/ usr/local/php/lib 下。如果没有php.ini需要把源码中的配置文件 php.ini-development 或php.ini-production改名成php.ini并放在lib下。
4.2、进入openssl的扩展目录 :

cd /root/php-7.2.27/ext/openssl

3、运行phpize

/usr/local/php7/bin/phpize

执行后,发现错误 无法找到config.m4 ,config0.m4就是config.m4。直接重命名

mv config0.m4 config.m4

执行后若报

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

执行: apt install autoconf

4、执行安装

./configure --with-openssl --with-php-config=/usr/local/php7/bin/php-config make&&make install

5、过程中可能出现libssl找不到,执行下面的命令再重新执行3.4对应的执行安装

yum install openssl yum install openssl-devel

6、执行安装后,会提示在某个目录生成.so文件,我生成的位置在

/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

7、打开etc/ php.ini

vim /usr/local/php/etc/php.ini

添加下面两句话

extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/"
extension=openssl.so

8、重启php即可。

killall php-fpm
/usr/local/php/sbin/php-fpm

切换域名方式
4.1登录中心节点,将xxx.net域名对应的代理转发地址修改为: http://ip/
4.2登录应用服务器,server_name中添加ip
注:此处使用内网地址,可提升跨服务之间的访问速度(带宽20M)
配置成功后,访问xxx.net,网站切换成功,且访问速度比IP直接访问快

关于“Ubuntu14如何安装php7扩展”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Ubuntu14如何安装php7扩展

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Ubuntu14如何安装php7扩展

这篇文章将为大家详细讲解有关Ubuntu14如何安装php7扩展,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Ubuntu14安装php7的方法:1、安装mysql;2、下载php源码“php-7.2.2
2023-06-22

yum如何安装php7 扩展

这篇文章将为大家详细讲解有关yum如何安装php7 扩展,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。yum安装php7扩展的方法:1、安装epel和REMI源;2、查看可以安装的PHP版本并使用“yum
2023-06-22

php7如何安装mongodb扩展

小编给大家分享一下php7如何安装mongodb扩展,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php的框架有哪些php的框架:1、Laravel,Larave
2023-06-15

php7怎么安装fileinfo扩展

php7安装fileinfo扩展的方法:1、下载并安装php7;2、进入PHP7安装目录下,打开配置文件“php.ini”;3、在配置文件中,添加“extension=fileinfo.so;”代码,并保存文件;4、重启php即可。
2016-05-10

php7怎么安装event扩展

这篇文章主要介绍php7怎么安装event扩展,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php7下安装event扩展有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施
2023-06-15

php7怎样安装intl扩展

php7怎样安装intl扩展,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php7安装intl扩展的方法:1、下载icu源码包;2、解压icu及编译安装;3、下载并解压ph
2023-06-29

php7怎么安装mysql扩展

这篇文章主要介绍了php7怎么安装mysql扩展,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php7安装mysql扩展的方法:首先在php网站上下载mysql扩展;然后解压
2023-06-14

php7怎么安装kafka扩展

这篇文章将为大家详细讲解有关php7怎么安装kafka扩展,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装librdkafka# cd /usr/local/src/# git clone http
2023-06-15

如何在PHP7中安装mysql扩展模块

这期内容当中小编将会给大家带来有关如何在PHP7中安装mysql扩展模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。解压# tar xzvf mysql-45881bd.tar.gz进入mysql扩展目
2023-06-15

php7怎么安装mysqli扩展

小编给大家分享一下php7怎么安装mysqli扩展,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用php mysqli扩展操作mysql数据库,是mysql扩展
2023-06-20

php7 redis扩展安装不上如何解决

这篇文章主要介绍了php7 redis扩展安装不上如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php7 redis扩展安装不上如何解决文章都会有所收获,下面我们一起来看看吧。一、问题描述在安装 php
2023-07-06

php7中怎么安装yaf扩展

这篇文章主要介绍了php7中怎么安装yaf扩展,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php7 yaf扩展的安装方法:1、下载yaf扩展库源码安装包;2、下载yaf扩展
2023-06-15

php7安装yaf扩展的方法

这篇“php7安装yaf扩展的方法”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php7安装yaf扩展的方法”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入
2023-06-06

php7安装pdo_oci扩展的方法

小编给大家分享一下php7安装pdo_oci扩展的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php7安装pdo_oci扩展的方法:1、在官网下载并安装oracle客户端;2、进入php的源码安装包,执行【/usr/
2023-06-07

怎么在php7中安装memcache扩展

今天就跟大家聊聊有关怎么在php7中安装memcache扩展,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php7安装memcache扩展1、下载文件,解压缩memcache win
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录