CentOS 10 Stream 上安装php 8.3.15

CentOS 10 Stream 上安装php8

查看官网的文档
https://www.centos.org/centos10/
官网支持的php的版本是PHP 8.3。

New features and enhancements
CentOS Stream 10 includes several notable new features and enhancements.

Kernel
Linux kernel 6.12
Programming languages and compilers
Python 3.12
GCC 14
Go 1.23
Rust 1.82
LLVM 19
Ruby 3.3
Node.js 22
PHP 8.3
OpenJDK 21
Webservers
Apache HTTP Server 2.4.62
nginx 1.26
Databases
PostgreSQL 16
MariaDB 10.11
MySQL 8.4
Valkey 7.2
Desktop technologies
GNOME 47
Qt 6.7
Software management
DNF 4.20
RPM 4.19
Earlier versions of CentOS Stream utilized a technology called modularity to provide optional alternative versions of select software. CentOS Stream 10 will instead use traditional non-modular RPM packages for this purpose.

开始安装
dnf install php,直接安装的时候,会安装最基本的模块。

 php 
安装依赖关系:
 nginx-filesystem 
 php-common  
安装弱的依赖:
 php-cli        
 php-fpm            
 php-mbstring      
 php-opcache             
 php-pdo                  
 php-xml     

在这里插入图片描述

使用php,开发不同的框架就需要不同的快,查看其他的模块的话可以使用
dnf install php*查看其他的模块

php                 
php-bcmath          
php-cli             
php-common          
php-dba             
php-dbg             
php-devel           
php-embedded        
php-enchant         
php-ffi             
php-fpm             
php-gd              
php-gmp             
php-intl            
php-ldap            
php-mbstring        
php-mysqlnd         
php-odbc            
php-opcache         
php-pdo             
php-pear            
php-pecl-apcu       
php-pecl-apcu-devel 
php-pecl-redis6     
php-pecl-rrd        
php-pecl-xdebug3    
php-pecl-zip        
php-pgsql           
php-process         
php-snmp            
php-soap            
php-xml             

在这里插入图片描述
查看php版本和模块

[root@centos10model system-connections]# php -v
PHP 8.3.15 (cli) (built: Dec 17 2024 18:18:02) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.15, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.15, Copyright (c), by Zend Technologies

查看安装过的模块
[root@centos10model system-connections]# rpm -qa|grep php
php-common-8.3.15-1.el10.x86_64
php-cli-8.3.15-1.el10.x86_64
php-mbstring-8.3.15-1.el10.x86_64
php-opcache-8.3.15-1.el10.x86_64
php-pdo-8.3.15-1.el10.x86_64
php-xml-8.3.15-1.el10.x86_64
php-fpm-8.3.15-1.el10.x86_64
php-8.3.15-1.el10.x86_64

启动php
systemctl start php-fpm.service
systemctl enable php-fpm.service
systemctl stop php-fpm.service
systemctl disabled php-fpm.service
在这里插入图片描述
在这里插入图片描述

配置php
安装后,根据您的 Web 服务器设置(Apache 或 Nginx)配置 PHP 和 PHP-FPM(FastCGI 进程管理器)。
编辑 php。伊尼用于自定义 PHP 设置的文件:
sudo nano /etc/php.ini
启动并启用 PHP-FPM 以获得更好的 Web 服务器性能:

测试PHP安装。
创建一个 PHP 文件来测试安装:
echo “” > /var/www/html/phpinfo.php
从 Web 浏览器访问此文件以查看所有 PHP 配置设置。

查看php的所有配置文件

[root@centos10model php-fpm.d]# ls /etc/php
php.d/        php-fpm.conf  php-fpm.d/    php.ini   
文件解释
php-fpm.conf   #php-fpm的配置文件
php.ini              #php的
php-fpm.d/      #php-fpm的配置文件
php.ini              #php模块的
[root@centos10model yum.repos.d]# cd /etc/php
php.d/     php-fpm.d/ 
[root@centos10model yum.repos.d]# cd /etc/php.d/
[root@centos10model php.d]# ls
10-opcache.ini   20-ctype.ini  20-exif.ini      20-gettext.ini   20-pdo.ini        20-sqlite3.ini    20-xmlwriter.ini   30-xmlreader.ini
20-bz2.ini       20-curl.ini   20-fileinfo.ini  20-iconv.ini     20-phar.ini       20-tokenizer.ini  20-xsl.ini         opcache-default.blacklist
20-calendar.ini  20-dom.ini    20-ftp.ini       20-mbstring.ini  20-simplexml.ini  20-xml.ini        30-pdo_sqlite.ini

[root@centos10model php.d]# cd /etc/php-fpm.d/
[root@centos10model php-fpm.d]# ls
www.conf

查看php-fpm.conf

[root@centos10model php-fpm.d]# cat /etc/php-fpm.conf |grep -Ev "^#|;" |grep -v '^$'
[global]
pid = /run/php-fpm/php-fpm.pid
error_log = /var/log/php-fpm/error.log
daemonize = yes
include=/etc/php-fpm.d/*.conf   使用这了文件下的子文件

查看www.conf配置文件
[root@centos10model php-fpm.d]# ls /etc/php-fpm.d/
www.conf

[root@centos10model php-fpm.d]# cat  /etc/php-fpm.d/www.conf |grep  -Ev "^#|;" |grep -v '^$'
[www]
user = apache
group = apache
listen = /run/php-fpm/www.sock
listen.acl_users = apache,nginx
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /var/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache

修改socket的方式,然后重启。
listen = 127.0.0.1:9000
在这里插入图片描述
在这里插入图片描述

查看php的配置文件php,ini
[root@centos10model system-connections]# cat /etc/php.ini |grep -Ev “^#|;” |grep -v ‘^$’

[PHP]
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = -1
disable_functions =
disable_classes =
zend.enable_gc = On
zend.exception_ignore_args = On
zend.exception_string_param_max_len = 0
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
[Date]
[filter]
[iconv]
[imap]
[intl]
[sqlite3]
[Pcre]
pcre.jit=0
[Pdo]
[Pdo_mysql]
pdo_mysql.default_socket=
[Phar]
[mail function]
sendmail_path = /usr/sbin/sendmail -t -i
mail.add_x_header = Off
mail.mixed_lf_and_crlf = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.cookie_samesite =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5
[Assertion]
zend.assertions = -1
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[dba]
[opcache]
[curl]
[openssl]
[ffi]

Nginx中的PHP(php-fpm)是以独立进程的方式运行,占用 计算机的9000端口
Nginx使用PHP-FPM
Nginx要通过PHP-FPM使用PHP,同样是通过反向代理来进行的,只是这里的反向代理使用的是FastCGI协议。

打开Nginx的配置文件,里面默认有一段关于PHP-FPM的配置:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}

该段配置默认是注释状态,只要取消注释即可使用。这里需要注意的是fastcgi_param,定义的是PHP文件的路径。

我们把这段配置取消注释,并将fastcgi_param的路径修改为 d o c u m e n t r o o t document_root documentrootfastcgi_script_name,然后在html目录下创建一个文件名为info.php的PHP文件,文件内容为:

1

<?php phpinfo(); ?>

测试PHP安装

  1. 创建一个PHP测试文件

    行以下命令创建一个名为info.php的文件:
    sudo vi /var/www/html/index.php
    在打开的文件中,输入以下内容:
<?php 

phpinfo (); 

?>
Save and exit the fi

保存文件并退出编辑器。
2. 在浏览器中测试PHP文件
打开您的浏览器,输入以下URL进行测试:
http://your-server-IP/info.php “
如果一切正常,您将看到有关PHP的详细信息页面。

http://test.centos10.com/

在这里插入图片描述
2025/03/27 14:31:30 [error] 13415#13415: *8 directory index of “/var/www/html/” is forbidden, client: 192.168.230.1, server: test.centos10.com, request: “GET / HTTP/1.1”, host: “test.centos10.com”

**
我的错误是因为,我在nginx的配置的是index.php,我在目录里写的info.php.大意了
在这里插入图片描述
配置文件 test.centos10.com.conf

[root@centos10model conf.d]# cat test.centos10.com.conf 
server {
         listen       80;
         server_name  test.centos10.com;
         root     /var/www/html;
	 index index.php index.html index.htm;

        location / {
	try_files $uri $uri/ /index.php?$args;
        }



    location ~ \.(php|phar)(/.*)?$ {
    fastcgi_pass  127.0.0.1:9000; 

     fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
     fastcgi_intercept_errors on;

    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
     fastcgi_param  PATH_INFO $fastcgi_path_info;
   #  fastcgi_pass   php-fpm;
     }  
    
      error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
         }

}

http://test.centos10.com/
在这里插入图片描述

403错误Nginx 出现403 Forbidden 的几种解决方案

**

  1. 文件或目录权限问题
    问题:Nginx 可能无法访问文件或目录,因为文件权限设置不当。
    确保 Nginx 进程有权限读取相应的文件和目录。一般情况下,Nginx 进程运行在 nginx 用户或 www-data 用户下。
可以使用以下命令来检查和修改权限:
sudo chown -R nginx:nginx /path/to/your/web/root
sudo chmod -R 755 /path/to/your/web/root

一、启动用户和nginx工作用户不一致所致

查看nginx的启动用户:打开nginx.conf文件
vi conf/nginx.conf

user nginx;
改为
user root;

二、nginx.conf中缺少index的指定的文件。

查看nginx的配置:打开nginx.conf文件
server {  
    listen       80;  
    server_name  localhost;
    index  index.html;
    root  /opt/html/;
    }

如果在/opt/html/下面没有index.html的时候,会报403 forbidden。

三、权限问题,如果nginx没有操作权限,也会出现403错误。
解决办法:修改/opt/html/目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

chmod -R 777 /opt/html/

四、SELinux设置为开启状态(enabled)的原因。
1,查看当前selinux的状态。
/usr/sbin/sestatus
2,将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled #注释之前,替换为这个
3,重启生效:reboot。
reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值