文章前言
最近在自己的树莓派上安装了最新的Ubuntu 19.04的最新版本,我一般习惯利用oneinstack安装LNMP环境,在利用oneinstack安装PHP的时候总是编译不通过,错误提示:
configure:error:freetype-config not found.
但是系统已经安装,在编译选项里加了安装路径也是不行,所以只能通过apt来进行安装了。
安装过程
PHP 7.3 并没有带来特别激进的更新,同一天发布更新的 WordPress 5.0 也是第一时间带来了对 PHP7.3 的支持。
当然了 PHP 7.3 也带了性能提升,相比早期的 PHP 7.0 有了近 22% 的性能提升。同时 PHP 5.6 和 7.0 都即将失去 PHP 社区官方的支持,所以也是建议大家能尽快的升级到最新版本。
Ondřej Surý 的 PHP PPA 为 Ubuntu 18.04/16.04/14.04 提供了 PHP7.2 版本,同时也有为 Debian 9/8 提供 PHP7.2 版本,因此 Ubuntu 是源于 Debian 所以基本可以通用,同时维护难度较低,软件源安装的 PHP 默认以 Unix Socket 的状态运行在 /run/php/php7.3-fpm.sock
,比使用 TCP 以 localhost:9000
的方式性能更好。
值得一提的是 Ondřej Surý 是 Debian PHP 软件源的官方维护者之一,所以说稳定性和安全性基本上不是问题。
由于 PHP 7.3 是新出的版本势必有不少的兼容性问题,特别是国产的程序建议等待开发者通知再进行升级,一些 PECL 扩展可能也不会及时适配最新版。建议更新前提前做好备份准备。目前已知的是 WordPress 5.0 版本开始支持 PHP 7.3。
安装软件源扩展工具
apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
添加 Ondřej Surý 的 PHP PPA 源,需要按一次回车
add-apt-repository ppa:ondrej/php
更新软件源缓存:
apt update
安装 PHP7.3:
apt install php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-opcache -y
设置 PHP
安装完成后,编辑 /etc/php/7.3/fpm/php.ini
替换换 ;cgi.fix_pathinfo=1
为 cgi.fix_pathinfo=0
快捷命令:
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.3/fpm/php.ini
安装完成最好是先重启一下PHP
systemctl restart php7.3-fpm
更多的命令:
systemctl restart php7.3-fpm #重启
systemctl start php7.3-fpm #启动
systemctl stop php7.3-fpm #关闭
systemctl status php7.3-fpm #检查状态
查看 PHP
PHP 7.3.6-1+ubuntu19.04.1+deb.sury.org+1 (cli) (built: May 31 2019 11:07:28) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.6-1+ubuntu19.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
现在用肯定是能用,但是如果利用oneinstack安装的NGINX肯定需要修改,首先PHP配置文件需要修改
修改PHP权限
PHP默认安装后权限是www-data,但是oneinstack安装的NGINX要求执行权限是www,所以要么修改Nginx要么修改PHP的,这里按照习惯使用www,所以修改PHP
默认配置文件路径:
/etc/php/7.3/fpm/pool.d/www.conf
需要修改一下内容:
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
将其改成一下:
user = www
group = www
listen.owner = www
listen.group = www
重启PHP
systemctl restart php7.3-fpm
修改Nginx配置
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
#fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
gd库和xmlrpc库装不上
ondrej/php 这个PPA加上去之后 apt update 简直就是卡住不动了,国内也没有镜像