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电脑。
Ubuntu14怎么安装php7?
ubuntu14.04安装php7.0+版本
解决问题:
无法安装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... Done Building dependency tree Reading state information... Done E: Unable to locate package php7.0 E: Couldn't find any package by regex 'php7.0' E: Unable to locate package php7.0-cli E: Couldn't find any package by regex 'php7.0-cli'E: Unable to locate package php7.0-fpm E: Couldn't find any package by regex 'php7.0-fpm' E: Unable to locate package php7.0-gd E: Couldn't find any package by regex 'php7.0-gd'E: Unable to locate package php7.0-json E: Couldn't find any package by regex 'php7.0-json' E: Unable to locate package php7.0-mysql E: Couldn't find any package by regex 'php7.0-mysql'E: Unable to locate package php7.0-readline E: Couldn't find any package by regex 'php7.0-readline'
无奈只能自己下载安装包,手动安装,中间各种踩坑,再此记录一下,方便需要的小伙伴直接拿走,节省时间
使用安装包,安装php7.0以上版本:
- 编译环境:php-7.2.27
- 静态资源服务器:nginx/1.4.6 (Ubuntu)
- 数据库:mysql
一、mysql安装
1、安装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/
2、安装编译需要的依赖
①安装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
3、创建安装目录
$ mkdir /usr/local/php
4、切换到解压编译目录
$ 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 test You 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
5、配置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
6、将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-fpm chkconfig 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配置方案
安装配置忽略
2、 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/域名
四、其它注意点
1、runtime下模板文件权限导致系统无法访问问题
日志在/home/cms/prod/runtime/目录下
注意数据库连接的端口号
注意cache文件的读写状态
chmod -R 777 /home/cms/phpProject/runtime/
2、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,暂时未解决提升上传最大限制问题 解决方法待补充
3、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大图片上传成功
4、服务器邮件发送失败,openssl未指定问题
4.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.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
3.4、执行安装
./configure --with-openssl --with-php-config=/usr/local/php7/bin/php-config make&&make install
3.5、过程中可能出现libssl找不到,执行下面的命令再重新执行3.4对应的执行安装
yum install openssl yum install openssl-devel
3.6、执行安装后,会提示在某个目录生成.so文件,我生成的位置在
/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
3.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
3.8、重启php即可。
killall php-fpm
/usr/local/php/sbin/php-fpm
4、切换域名方式
4.1登录中心节点,将xxx.net域名对应的代理转发地址修改为: http://ip/
4.2登录应用服务器,server_name中添加ip
注:此处使用内网地址,可提升跨服务之间的访问速度(带宽20M)
配置成功后,访问xxx.net,网站切换成功,且访问速度比IP直接访问快
推荐学习:《PHP视频教程》
以上是Ubuntu14怎么安装php7扩展的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在php5中,我们可以使用fsockopen()函数来检测TCP端口。这个函数可以用来打开一个网络连接和进行一些网络通信。但是在php7中,fsockopen()函数可能会遇到一些问题,例如无法打开端口、无法连接到服务器等。为了解决这个问题,我们可以使用socket_create()函数和socket_connect()函数来检测TCP端口。

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

解决 PHP 7.0 中插件未显示已安装问题的方法:检查插件配置并启用插件。重新启动 PHP 以应用配置更改。检查插件文件权限,确保其正确。安装丢失的依赖项,以确保插件正常运行。如果其他步骤均失败,则重建 PHP。其他可能原因包括插件版本不兼容、加载错误版本或 PHP 配置问题。

php7.0安装部署的方法:1、到PHP官网下载与本机系统对应的安装版本;2、将下载的zip文件解压到指定目录;3、打开命令行窗口,在“E:\php7”目录下运行“php -v”命令即可。

PHP服务器环境常见的解决方法包括:确保已安装正确的PHP版本和已复制相关文件到模块目录。临时或永久禁用SELinux。检查并配置PHP.ini,确保已添加必要的扩展和进行正确设置。启动或重启PHP-FPM服务。检查DNS设置是否存在解析问题。

PHP8相较于PHP7在性能、新特性和语法改进、类型系统、错误处理和扩展等方面都有一些优势和改进。然而,选择使用哪个版本要根据具体的需求和项目情况来决定。详细介绍:1、性能提升,PHP8引入了Just-in-Time(JIT)编译器,可以提高代码的执行速度;2、新特性和语法改进,PHP8支持命名参数和可选参数的声明,使得函数调用更加灵活;引入了匿名类、属性的类型声明等等。

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

本地环境:redhat6.7系统。nginx1.12.1,php7.1.0,代码使用yii2框架问题:本地的web站需要用到elasticsearch服务。当php使用本地服务器搭建的elasticsearch时,本地的负载都是正常。当我使用aws的elasticsearchservice服务时,本地服务器出现负载经常过高的情况。查看nginx和php日志,发现没有异常。系统的并发连接数也不高。这时候想到我们老大给我讲的一个strace诊断工具。调试过程:查找一个php的子进程idstrace-
