Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Langkah terperinci untuk menyusun, memasang dan mengkonfigurasi php8 dalam Centos

Langkah terperinci untuk menyusun, memasang dan mengkonfigurasi php8 dalam Centos

藏色散人
藏色散人ke hadapan
2023-02-03 14:59:056344semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang PHP terutamanya memperkenalkan cara menyusun dan memasang PHP dalam sistem Centos dan cara mengkonfigurasinya dengan betul. Rakan-rakan yang berminat boleh lihat di bawah ini semoga bermanfaat untuk semua.

Langkah terperinci untuk menyusun, memasang dan mengkonfigurasi php8 dalam Centos

PHP (nama penuh: PHP: Hypertext Preprocessor, i.e. "PHP: Hypertext Preprocessor") ialah bahasa skrip komputer tujuan umum sumber terbuka, terutamanya sesuai untuk Dibangunkan untuk web dan boleh dibenamkan dalam HTML. Sintaks PHP menggunakan ciri-ciri bahasa komputer popular seperti bahasa C, Java dan Perl, menjadikannya mudah untuk pengaturcara biasa belajar. Matlamat utama PHP adalah untuk membolehkan pembangun web menulis halaman dinamik dengan cepat.

Persediaan

Muat turun fail pemasangan

Untuk berada di pihak yang selamat, gunakan php muat turun tapak web rasmi: https: //www.php.net/downloads
Menggunakan tapak web rasmi untuk memuat turun adalah lebih perlahan, tetapi keselamatan terjamin Jika anda tidak mempunyai keperluan untuk keselamatan, anda juga boleh mencari imej yang berkaitan di Baidu. Artikel ini memilih versi stabil terbaharu PHP 8.1.6

wget https://www.php.net/distributions/php-8.1.6.tar.gz
tar -zxvf php-8.1.6.tar.gz
cd php-8.1.6

Memasang kebergantungan

yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y

Nota: imej rasmi Centos semasa telah berhenti disiarkan, yum install pasang perisian devel Jika ralat dilaporkan dan tidak boleh dipasang, anda boleh cuba menulis ganti kandungan fail dalam /etc/yum.repos.d/ dalam direktori CentOS-Base.repo.rpmsave ke CentOS-Linux-BaseOS.repo, dan CentOS-AppStream.repo.rpmsave ke CentOS-Linux-AppStream.repo Sila pastikan untuk membuat sandaran

Oleh kerana tiada pakej oniguruma dalam sumber yum, kami menggunakan kod sumber github untuk menyusun dan memasangnya alamat: https://github.com/kkos/oniguruma

wget https://github.com/kkos/oniguruma/releases/download/v6.9.8/onig-6.9.8.tar.gz
tar -zxvf onig-6.9.8.tar.gz
cd onig-6.9.8
./configure --prefix=/usr
make && make install

Buat pengguna

Atas sebab keselamatan, kami perlu mencipta pengguna untuk menjalankan php Secara amnya, pengguna ini dilarang melog masuk. Artikel ini mencipta nama pengguna dan kumpulan pengguna Untuk www, nama ini boleh disesuaikan

# 创建用户组
groupadd www
# 创建用户
useradd -g www www -M -s /sbin/nologin
  • -g www Tentukan kumpulan pengguna
  • -M Tiada Buat direktori rumah (tiada direktori rumah diperlukan untuk dijalankan program)
  • -s /sbin/nologin Tiada log masuk dibenarkan, lebih selamat

Kompil dan pasang

# 生成编译文件
./configure --prefix=/www/server/php81 --with-config-file-path=/www/server/php81/etc --enable-fpm --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype --with-mcrypt --with-jpeg --with-png -with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl -enable-mbstring --enable-gd --with-openssl --with-mhash --enable-pcntl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-opcache --with-xsl --enable-sockets --enable-mbregex --enable-ftp --with-webp
# 编译并安装
make && make install
# 复制配置文件
cp php.ini-production /www/server/php81/etc/php.ini
# 或者使用 development
cp php.ini-development /www/server/php81/etc/php.ini

Jika anda menggunakan apache, anda perlu menambah --with-apxs2=/www/server/apache/bin/apxs pada parameter kompilasi dan parameter --enable-fpm boleh dialih keluar, dengan /www/server/apache ialah Direktori pemasangan apache, selepas kompilasi telah selesai, cuma ulas komen pada apache dalam fail konfigurasi php_module Artikel ini tidak akan menerangkan secara terperinci tentang konfigurasi apache.

Konfigurasikan

Konfigurasikan pembolehubah persekitaran

Tambah /etc/profile di bawah PATH=$PATH:/www/server/php81/bin && export PATH , gunakan source /etc/profile untuk menjadikan konfigurasi berkuat kuasa serta-merta.

Buatphp-fpm pautan lembut:

ln -s /www/server/php81/sbin/php-fpm /www/server/php81/bin/php-fpm

nginx configuration php

Salin Fail konfigurasi, sila langkau langkah ini jika anda telah menyalinnya sebelum ini:

cp /www/server/php81/etc/php-fpm.conf.default /www/server/php81/etc/php-fpm.conf
cp /www/server/php81/etc/php-fpm.d/www.conf.default /www/server/php81/etc/php-fpm.d/www.conf

Mulakan php-fpm:

/www/server/php81/sbin/php-fpm

Ubah suai fail konfigurasi nginx

Editnginx.conf fail, tambah kandungan berikut di bawah server yang sepadan:

location ~ [^/]\.php(/|$) {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

Mulakan semula nginx, nginx -s reload dan buat Fail: phpinfo.php

<?php

phpinfo();

Langkah terperinci untuk menyusun, memasang dan mengkonfigurasi php8 dalam Centos

nginx php 多版本共存

在日常的开发中,不同项目可能需要不同版本的 php 来运行,这就需要通过一些配置来实现 php 的共存。多个 php 版本共存时,需要在编译时将不同版本的 php 安装到不同的目录。

打开 php 安装路径,编辑文件 etc/php-fpm.d/www.confetc/php-fpm.conf,在文件中新增或修改以下项:

[www]
; 根据版本配置,比如 php8.1 配置为 php-cgi-81.sock
listen = /tmp/php-cgi-81.sock
listen.backlog = 8192
listen.allowed_clients = 127.0.0.1
; 运行 master 进程用户名,一定要设置!!并且 listen 中设置的文件 nginx 必须有读权限,否则会报错
listen.owner = www
; 运行 master 进程用户名,参考上一个
listen.group = www
listen.mode = 0666
; worker 进程运行的用户,该用户需要有运行的 PHP 文件的读权限,如涉及文件上传还需要对应目录的写权限
user = www
; worker 进程的用户组,参考上一项
group = www
; 动态调整 worker 数
pm = dynamic
; 依据版本设置 如 php8.1 配置为 phpfpm_81_status
pm.status_path = /phpfpm_81_status
; 最大 worker 进程数 一般设置为 内存/50M
pm.max_children = 50
; 启动时的 worker 进程数
pm.start_servers = 5
; 限制时的最小 worder 进程数
pm.min_spare_servers = 5
; 限制时的最大 worder 进程数
pm.max_spare_servers = 10
; 请求超时时间
request_terminate_timeout = 100
; 慢日志记录时间,请求事件超出此时间会记录日志
request_slowlog_timeout = 30
; 慢日志目录,目录一定要存在且上面设置的 user 用户要有写权限
slowlog = /www/wwwlogs/php/slow.log

随后在 nginx 配置文件,对应的 server 中修改 fastcgi_pass 为刚才设置中的 listen 对应的路径,注意此文件 nginx 运行用户必须有读权限,否则会报错:

 location ~ [^/]\.php(/|$) {
-    fastcgi_pass   127.0.0.1:9000;
+    fastcgi_pass   unix:/tmp/php81.sock;
     fastcgi_index  index.php;
     include        fastcgi.conf;
 }

php-fpmphp-Fastcgi Process Managerphp-fpmFastCGI 的实现,并提供了进程管理的功能。php-fpm 进程包含 master 进程与 worker 进程,一般情况下,master 进程只有一个,负责监听端口、调度请求,而 worder 进程则有多个,每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正运行的地方。前文设置中的 workerphp-fpmworker 进程数量。

开机自启

编辑文件 /etc/init.d/php-fpm81,如需多版本兼容文件名后加上当前版本,如这里使用 php-fpm81,写入如下内容:

#!/bin/bash

# chkconfig: - 51 64

. /etc/init.d/functions

# php-fpm 路径
exec=/www/server/php81/sbin/php-fpm
# 锁文件 用于识别当前软件是否在运行
lock=/var/lock/subsys/php-fpm81
# 标识 输出信息用 可随意修改
proc=php-fpm81

function start() {
    pidofproc $exec > /dev/null
    [ $? = 0 ] && echo "${proc} 正在运行中" && exit
    daemon $exec
    if [ $? = 0 ]; then
        echo "${proc} 启动成功"
        rm -f lock
        touch $lock
    else
      echo "${proc} 启动失败 $?"
    fi
}

function stop() {
    pidofproc $exec > /dev/null
    [ $? != 0 ] && echo "${proc} 未运行" && exit
    killproc $exec
    if [[ $? == 0 ]]; then
        echo "${proc} 停止成功"
        rm -f $lock
    else
      echo "${proc} 停止失败 $?"
    fi
}

function reload() {
    killproc $exec -HUP
    if [[ $? == 0 ]]; then
        echo "平滑重启成功"
    else
        echo "平滑重启失败 $?"
    fi
}

function restart() {
    stop
    start
}

function procStatus() {
    status $exec > /dev/null
    if [[ $? == 0 ]]; then
        echo "${proc} 已启动"
    else
        echo "${proc} 未启动"
    fi
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload)
    reload
    ;;
  restart)
    restart
    ;;
  status)
    procStatus
    ;;
  *)
    echo $"Usage: $0 {start|stop|reload|restart|status}"
esac

随后添加为开机自启即可,如下:( php-fpm81 是上一步自定义得到文件名)

# 添加运行权限
chmod +x /etc/init.d/php-fpm81
chkconfig --add php-fpm81
chkconfig php-fpm81 on

手动操作命令如下:

# 启动
/etc/init.d/php-fpm81 start
# 停止
/etc/init.d/php-fpm81 stop
# 平滑重启
/etc/init.d/php-fpm81 reload
# 重启
/etc/init.d/php-fpm81 restart
# 运行状态
/etc/init.d/php-fpm81 status

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Langkah terperinci untuk menyusun, memasang dan mengkonfigurasi php8 dalam Centos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:codeover. Jika ada pelanggaran, sila hubungi admin@php.cn Padam