## 1、下载PHP源代码
首先需要从PHP官网下载PHP7.3.6的源代码,[点击下载]() 下载到自己存放的目录当中
![](https://i.vgy.me/vmAxnF.png)
![](https://i.vgy.me/o5rdDv.png)
```
解压
tar -zxf php-7.3.6.tar.gz
进入目录
cd php-7.3.6
```
## 2、安装依赖
```
sudo apt update
sudo apt install gcc
sudo apt install make
sudo apt install openssl
sudo apt install curl
sudo apt install libbz2-dev
sudo apt install libxml2-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libfreetype6-dev
sudo apt install libzip-dev
```
>[danger] 安装好这些依赖,可能还会出现一些依赖不存在的错误,到时候有什么提示错误,百度搜索安装即可
## 3、配置PHP
```
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
```
>[success] +--------------------------------------------------------------------+| License: || This software is subject to the PHP License, available in this || distribution in the file LICENSE. By continuing this installation || process, you are bound by the terms of this license agreement. || If you do not agree with the terms of this license, you must abort || the installation process at this point. |+--------------------------------------------------------------------+
> Thank you for using PHP.
> 在这一步中,如果出现无法找到某个依赖的情况,可以尝试使用sudo apt install来重新安装一下没有找到的依赖
```
configure: error: Cannot find OpenSSL's
這個問題是缺少openssl-devel apt-get install libssl-dev 安裝即可
checking for cURL 7.15.5 or greater... configure: error: cURL version 7.15.5 or later is required to compile php with cURL support
這個問題是cURL版本問題解除安裝重灌下curl就好了 sudo apt-get install curl libcurl3 libcurl3-dev
configure: error: DBA: Could not find necessary header file(s).
網上找了半天都說是少了這個包 libdb-dev 我的卻不行 安裝 libgdbm-dev 這個包才ok
Configure: error: libpng.(also) not found.
apt-get install libjpeg-dev libpng-dev
configure: error: freetype-config not found.
apt-get -y install libfreetype6-dev
configure: error: Please reinstall the libzip distribution
apt install libzip-dev
```
>[danger] 途中可能出现N种错误,但是不要慌,百度谷歌慢慢搞!!!
## 4、编译并安装PHP
在完成配置后,可以直接使用make来进行编译,可以使用参数-j来指定编译线程数量来多线程编译
```
make -j4
```
编译需要一段比较长的时间,请稍作等待,编译成功后会输出如下内容
```
Build complete.Don't forget to run 'make test'.
```
然后执行以下命令进行安装
```
sudo make install
```
执行完成后,PHP将会被安装到
```
/usr/local/php/
```
## 5、验证PHP
可以使用如下指令来输出PHP的版本,来验证是否正确安装
```
/usr/local/php/bin/php -v
```
如果正确安装,将会出现如下内容
```
PHP 7.3.1 (cli) (built: Jan 18 2019 20:11:04) ( ZTS )Copyright (c) 1997-2018 The PHP GroupZend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
```
到这一步为止,PHP7.3.1便成功从源代码编译安装了。
## 6、复制php.ini
编译安装后的目录并不会有现成的php.ini,需要手动复制过去。在解压出来的源代码目录中,有供开发环境使用的php.ini-development和供生产环境使用的php.ini-production。输入命令来复制(以开发环境为例)
```
sudo cp php.ini-development /usr/local/php/etc/php.ini
```
![](https://i.vgy.me/zsUCgG.png)
### 附上查阅资料的网站链接
>[info] Ubuntu 安裝php 7.3遇到的錯誤:[https://www.itread01.com/content/1541669590.html](https://www.itread01.com/content/1541669590.html)
> php编译错误总结:[https://zhuanlan.zhihu.com/p/62145198](https://zhuanlan.zhihu.com/p/62145198)
> 我在编译安装 PHP 时,遇到了 “freetype-config not found”的问题:[https://www.doopsky.com/ops/981.html](https://www.doopsky.com/ops/981.html)
> ubuntu源码编译安装php常见错误解决办法:[https://blog.csdn.net/white\_\_cat/article/details/28907535](https://blog.csdn.net/white__cat/article/details/28907535)
> 安装php过程中的错误和解决方式 configure: error: jpeglib.h not found:[https://www.cnblogs.com/flywang/p/5256356.html](https://www.cnblogs.com/flywang/p/5256356.html)
> deepin下安装curl 附 CURL常用命令:[https://blog.csdn.net/jkxqj/article/details/52891090](https://blog.csdn.net/jkxqj/article/details/52891090)
## 7、启动php-fpm
```
/usr/local/php/sbin/php-fpm
```
>[danger] ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
> ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
> ERROR: FPM initialization failed
> 启动就会报错,是因为在php的etc目录下面没有php-fpm.conf这个文件,我们需要在etc目录下复制一个
```
cp php-fpm.conf.default php-fpm.conf
#再次运行检查
/usr/local/php/sbin/php -t
```
>[danger] \[27-Jun-2019 22:19:57\] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/\*.conf' from /usr/local/php/etc/php-fpm.conf at line 143.
> \[27-Jun-2019 22:19:57\] ERROR: No pool defined. at least one pool section must be specified in config file
> \[27-Jun-2019 22:19:57\] ERROR: failed to post process the configuration
> \[27-Jun-2019 22:19:57\] ERROR: FPM initialization failed
> 检查又报错了,是因为我们include没找到.conf文件,在php-fpm.d当中时 www.conf.default这个文件我们需要修改复制出来的php-fpm.conf的include
![](https://i.vgy.me/gQAVJM.png)
- 基础
- 安装PHP
- 语言基础
- 变量
- 变量操作
- 超全局数组变量
- 变量作用域
- 变量传值方式
- 常量
- 数据类型
- 运算符
- 流程控制
- 文件包含
- 错误处理
- 字符串操作
- 数组
- 函数
- 进阶
- 面向对象
- 提高
- TP
- 安装项目
- 框架基础知识
- 命令创建模块
- URL生命周期
- 路由操作
- Request请求类
- 参数绑定
- 依赖注入
- 模板操作
- 查询操作
- 添加操作
- laravel
- ☆目录结构
- CSRF攻击
- ☆路由
- ☆控制器
- ☆请求类
- ☆视图
- ☆模板继承
- ☆表单验证
- ☆DB类
- ☆模型
- ☆数据库迁移
- 类型、修饰、索引
- ☆数据填充
- ☆数据分页
- ☆session处理
- ☆中间件
- ☆缓存操作
- ☆文件上传
- ☆接口操作
- ☆扩展插件
- restful
- 工作
- 工作记录
- QQ登录
- 新浪登录
- 微信登录
- sphinx搜索
- 数据库
- MySQL
- ☆数据库操作
- ☆数据表操作
- ☆数据的操作
- 待修改
- 优化
- 存储引擎选择
- 列表类型选择
- 范式
- 慢日志查询
- 精准时间记录查询
- 计划任务 explain
- 索引
- 索与事务
- 查询缓存
- 存储过程
- 触发器
- 分区
- 分表
- sphinx
- 读写分离
- 搜索优化
- 网站静态化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服务器
- Linux
- 目录结构
- 常用命令
- VIM编辑器
- 用户与用户组
- 权限管理
- 运行级别
- 网络模式
- ssh
- 软件安装
- 计划任务
- Ubuntu
- 编译PHP7.3
- 编译MySQL
- 编译Nginx
- apache虚拟机配置
- 安装composer
- Nginx
- Git