如何在OpenSUSE 15.2/15.1上安装PHP

时间:2020-01-09 10:39:25  来源:igfitidea点击:

在本教程中,您将学习如何在OpenSUSE Linux 15.2/15.1上安装PHP 7.4以及如何使用Nginx对其进行配置。

PHP是服务器端的,并且在各种PHP框架(例如Symfony,Laravel)和开源应用程序(例如MediaWiki,WordPress,Nextcloud等)中非常受欢迎。

在OpenSUSE 15.1/15.2上安装PHP的前提条件

最好是如果您开始本教程的安装Nginx Web服务器。
但是,首先使用CLI更新OpenSUSE Linux软件和内核:

$ sudo zypper ref
$ sudo zypper up

接下来打开终端应用程序,然后执行以下zypper命令以安装Nginx,这是PHP所需的:

$ sudo zypper install nginx
# enable and turn on Nginx for PHP #
$ sudo systemctl enable nginx.service
$ sudo systemctl start nginx.service

在OpenSUSE上为Nginx安装PHP

通过执行以下命令,列出OpenSUSE上可用的所有PHP 7.4软件包:

$ sudo zypper search php7
Reading installed packages...

S | Name             | Summary                                                   | Type
--+------------------+-----------------------------------------------------------+-------
  | apache2-mod_php7 | PHP7 module for the Apache 2.x webserver                  | package
  | php7             | Interpreter for the PHP scripting language version 7      | package
  | php7-APCu        | APCu - APC User Cache                                     | package
  | php7-bcmath      | "Binary Calculator" extension for PHP                     | package
  | php7-bz2         | bzip2 codec support for PHP                               | package
  | php7-calendar    | PHP7 Extension Module                                     | package
  | php7-ctype       | Character class extension for PHP                         | package
  | php7-curl        | libcurl integration for PHP                               | package
  | php7-dba         | Database abstraction layer for PHP                        | package
  | php7-devel       | PHP7 development files for C/C++ extensions               | package
  | php7-dom         | Document Object Model extension for PHP                   | package
  | php7-embed       | Embedded SAPI Library                                     | package
  | php7-enchant     | Spell checking extension for PHP                          | package
....
..
....
  | php7-xsl         | PHP7 Extension Module                                     | package
  | php7-zip         | ZIP archive support for PHP                               | package
  | php7-zlib        | Zlib compression support for PHP                          | package
  | uwsgi-php7       | PHP7 Plugin for uWSGI                                     | package

让我们安装php7-fpm和php7软件包,运行:

$ sudo zypper install php7-fpm php7

验证PHP版本

类型:

$ php -v # CLI version
$ php-fpm -v # FastCGI process manager for Nginx
PHP 7.4.6 (fpm-fcgi) 
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

启用PHP FastCGI服务

您需要使用systemctl命令:

$ sudo systemctl enable php-fpm.service
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service

如何使用Nginx配置PHP

让我们使用cd命令和cp命令设置配置文件

$ cd /etc/php7/fpm/
$ sudo cp -v php-fpm.conf.default php-fpm.conf
'php-fpm.conf.default' -> 'php-fpm.conf'

使用文本编辑器(例如nano命令/vim命令)编辑php-fpm.conf文件:

$ sudo vi php-fpm.conf

为主进程设置打开文件描述符rlimit:

; The default 1024 is too low:
rlimit_files = 20000

保存并关闭vim中的文件。
接下来,我们将建立一个名为www的新池,如下所示:

$ cd /etc/php7/fpm/php-fpm.d
$ sudo cp -v www.conf.default www.conf
'www.conf.default' -> 'www.conf'

编辑www.conf,运行:

$ sudo vi www.conf

需要运行php-fpm的Unix用户/进程组:

user = nginx
group = nginx

启用PHP错误日志到名为php-scripts.log的文件:

php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/nginx/php-scripts.log
php_admin_flag[log_errors] = on

出于安全原因,设置PHP脚本的资源和内存限制:

; set default value 
php_admin_value[memory_limit] = 128M

在OpenSUSE 15.2上启动PHP FastCGI服务

$ sudo systemctl start php-fpm.service

上面的命令将从127.0.0.1:9000开始php-fpm。
这是接受FastCGI请求的地址,我们将配置Nginx。

在OpenSUSE Linux上停止PHP FastCGI服务

$ sudo systemctl stop php-fpm.service

在OpenSUSE上重新启动PHP FastCGI服务

$ sudo systemctl restart php-fpm.service

检查PHP FPM服务的状态

$ sudo systemctl status php-fpm.service

Nginx和PHP配置

如下编辑nginx.conf或您的虚拟主机域文件:

$ sudo vi /etc/nginx/vhosts.d/www.theitroad.local.conf

更新Nginx服务器块,如下所示:

# PHP config #   
        location ~ \.php$ {
                # 404
                try_files                     $fastcgi_script_name =404;
 
                # default fastcgi_params
                include                       /etc/nginx/fastcgi_params;
 
                # fastcgi settings
                fastcgi_pass                  127.0.0.1:9000;
                fastcgi_index                 index.php;
                fastcgi_buffers               8 16k;
                fastcgi_buffer_size           32k;
 
                # fastcgi params
                fastcgi_param DOCUMENT_ROOT   $realpath_root;
                fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        }

保存并关闭文件。
重新启动/重新加载php-fpm服务:

$ sudo systemctl restart php-fpm.service

搜索PHP扩展

如下使用zypper以及grep命令:

$ sudo zypper search php7
# find module starting with 'm' #
$ sudo zypper search php7-m\*
$ sudo zypper search php7 | grep mysql

安装PHP扩展

我们可以为PHP安装MySQL数据库客户端,如下所示:

$ sudo zypper install php7-mysql

用于PHP的GD图形库扩展:

$ sudo zypper install php7-gd

典型的WordPress和MediaWiki安装需要以下模块:

$ sudo zypper install php7-gd php7-json php7-opcache php7-readline php7-redis php7-exif php7-gettext php7-zlib php7-imagick php7-iconv php7-ctype php7-curl php7-intl php7-mbstring php7-pdo php7-mysql php7-fileinfo php7-openssl php7-zip php7-dom

测试PHP

在DocumentRoot中创建一个新脚本(由nginx中的root设置)。
例如:

$ vi /home/theitroad.local/http/test.php

追加以下PHP配置:

<?php
   // phpinfo() - Show information about PHP's configuration on OpenSUSE Linux 15.2
   phpinfo(); 
 
   // Show just the PHP authors/credit information.
   // phpinfo(INFO_CREDITS);
   // See php.net/phpinfo 
?>

如下运行:

https://www.theitroad.local/test.php