如何在OpenSUSE 15.2/15.1上安装PHP
在本教程中,您将学习如何在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