Linux Mint 19 安装PHP7.3,并与nginx配置

原创
2019/12/27 15:04
阅读数 186

一、更新Linux Mint 19系统

确保运行的是Linux Mint最新版本,如果有重要的程序正在运行并且不想升级它们,则可以只对包列表进行更新,运行以下命令:

sudo apt update
sudo apt upgrade

如果安装了较新版本的Kernel,建议在升级后重新启动:

sudo reboot

二、将PHP 7.3存储库添加到Linux Mint 19

由于Linux Mint 19基于Ubuntu 18.04,因此要添加的存储库是针对Ubuntu 18.04版本的。

添加ondrej/php PPA存储库,它包含PHP 7.3软件包和其他必需的PHP扩展:

sudo add-apt-repository ppa:ondrej/php

sudo apt update

注:随着Linux Mint 19版本的不断更新,以后可能会提供PHP 7.3版本,到时这一步骤可以省略掉。

三、在Linux Mint 19上安装PHP 7.3

添加存储库后,通过在终端上运行以下命令来安装PHP 7.3:

sudo apt-get install php7.3

可以使用php -命令检查版本:

$ php -v
PHP 7.3.1-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jan 13 2019 10:19:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.1-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

 

四、安装PHP 7.3扩展

使用以下命令安装PHP 7.3扩展:

sudo apt-get install php7.3-<entension-name>

比如:

sudo apt install php7.3-cli php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd  php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath

可以使用apt policy命令确认已安装的PHP扩展版本:

$ apt policy php7.3-gd
php7.3-gd:
Installed: 7.3.1-1+ubuntu18.04.1+deb.sury.org+1
Candidate: 7.3.1-1+ubuntu18.04.1+deb.sury.org+1
Version table:
*** 7.3.1-1+ubuntu18.04.1+deb.sury.org+1 500
500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status

五、在Linux Mint上安装PHP7.3-FPM

如果你正在使用Nginx Web Server,你需要安装php7.3-fpm来提供PHP页面,则运行以下命令:

sudo apt install php7.3-fpm

PHP-FPM配置文件位于/etc/php/7.3/fpm/文件夹下。

安装PHP后,建议重新启动Web服务器:

对于Apache:

sudo systemctl restart apache2

对于Nginx:

sudo systemctl restart nginx

至此,安装PHP7.3-FPM完成。

这里要注意:php的配置文件php.ini,路径会随PHP版本而不同,所以首先查找php.ini文件位置 命令如下

php -i | grep php.ini

命令的意思是:php -i 即显示php的详细信息,然后在其中匹配php.ini的信息,如上图找到了路径是 /etc/php/7.2/cli/php.ini。用于设置环境的PHP配置文件是/etc/php/7.3/cli/php.ini/etc/php/7.3/apache2/php.ini

现在先建个PHP文件来试一下看能不能正常跑。

vim /var/www/html/info.php

然后同样的按   i  进入编辑模式输入文件内容如下

<?php

phpinfo();

?>

保存修改,然后在浏览器访问

http://localhost/info.php

出现PHP Version 7.3.13-1+ubuntu18.04.1+deb.sury.org+1页面即成功。

最后,还有一个小地方。因为nginx与php对cgi.fix_pathinfo默认是关闭的。也就是说不打开的是不能使用pathinfo的。但是打开的话又会有严重的漏洞问题。所以要进行一点点修改以便在关闭cgi.fix_pathinfo的情况下也能使用pathinfo。

打开

sudo vi /etc/nginx/sites-available/default
          #.php$改为.php,也就是把PHP后面的$去掉。
location ~ \.php {
                include snippets/fastcgi-php.conf;
        #       增加对PathInfo的支持,防止cgi.fix_pathinfo漏洞。
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
sudo systemctl restart nginx

最最后,还是安装一下swoole吧。

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update

首先在确定是否安装pecl和phpize如果未安装

sudo apt install php-pear
sudo apt install php7.3-dev //这里我使用的是php7.3,具体请根据自己版本号

安装好上面的依赖后,执行

sudo pecl install swoole

会自动安装swoole,请注意安装有没有报错。如果有错,一般是缺少某些库没安装。根据这里 https://my.oschina.net/osacar/blog/3076655 说的可以解决。

完装成功会显示以下信息

......
Build process completed successfully
Installing '/usr/lib/php/20180731/swoole.so'
Installing '/usr/include/php/20180731/ext/swoole/config.h'
install ok: channel://pecl.php.net/swoole-4.4.14
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini

会告诉我们编译好的库在哪里。

再根据上面提到的如何查找php.ini,找到php.ini配置文件位置
在php cli(/etc/php/7.3/cli/php.ini)的配置文件中加上

extension=swoole.so

重启php服务和web服务器服务

使用命令

php -m

查看swoole是否启动成功

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部