广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买
本篇文章给大家带来了关于php的相关知识,其中主要介绍了在Centos系统中是如何编译安装php,以及如何正确配置的,步骤很详细!感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面。
准备工作下载安装文件
保险起见使用 php 官网下载:https://www.php.net/downloads使用官网下载速度较慢,但是安全性有保障,如对安全性没有要求也可百度搜索相关镜像,本文选择最新稳定版本 PHP 8.1.6
wget https://www.php.net/distributions/php-8.1.6.tar.gztar -zxvf php-8.1.6.tar.gzcd php-8.1.6登录后复制
安装依赖
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登录后复制
注意:当前 Centos 官方镜像已停止服务,
yum install
安装devel
软件时,如报错无法安装可尝试将/etc/yum.repos.d/
目录下的CentOS-Base.repo.rpmsave
中的文件内容覆盖至CentOS-Linux-BaseOS.repo
,CentOS-AppStream.repo.rpmsave
覆盖至CentOS-Linux-AppStream.repo
,操作前请注意备份
因 yum 源中没有 oniguruma 包,这里使用 github 源码编译安装,项目地址:https://github.com/kkos/oniguruma
wget https://github.com/kkos/oniguruma/releases/download/v6.9.8/onig-6.9.8.tar.gztar -zxvf onig-6.9.8.tar.gzcd onig-6.9.8./configure --prefix=/usrmake && make install登录后复制
创建用户
安全起见,我们需要创建一个用户用于运行 php,一般这个用户是禁止登陆的,本文创建用户名与用户组均为 www
,这个名称可以自定义
# 创建用户组groupadd www# 创建用户useradd -g www www -M -s /sbin/nologin登录后复制
-g www
指定用户组-M
不创建家目录(程序运行不需要家目录)-s /sbin/nologin
不允许登录,更加安全编译并安装# 生成编译文件./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# 或者使用 developmentcp php.ini-development /www/server/php81/etc/php.ini登录后复制
如果使用 apache
的话,需要在编译参数中新增 --with-apxs2=/www/server/apache/bin/apxs
,同时 --enable-fpm
参数可去除,其中 /www/server/apache
为 apache
安装目录,编译完成后在 apache
的配置文件中解注释对 php_module
的注释即可,本文不细讲 apache
配置。
配置环境变量
在 /etc/profile
下新增 PATH=$PATH:/www/server/php81/bin && export PATH
,使用 source /etc/profile
使配置立即生效。
创建 php-fpm
软链接:
ln -s /www/server/php81/sbin/php-fpm /www/server/php81/bin/php-fpm登录后复制
nginx 配置 php
复制配置文件,如果之前已经复制过请跳过此步骤:
cp /www/server/php81/etc/php-fpm.conf.default /www/server/php81/etc/php-fpm.confcp /www/server/php81/etc/php-fpm.d/www.conf.default /www/server/php81/etc/php-fpm.d/www.conf登录后复制
启动 php-fpm:
/www/server/php81/sbin/php-fpm登录后复制
修改 nginx 配置文件
编辑 nginx.conf
文件,在对应的 server
下新增如下内容:
location ~ [^/]\.php(/|$) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf;}登录后复制
重启 nginx ,nginx -s reload
,在网站根目录新建 phpinfo.php
文件:
<?phpphpinfo();登录后复制
nginx php 多版本共存
在日常的开发中,不同项目可能需要不同版本的 php
来运行,这就需要通过一些配置来实现 php
的共存。多个 php
版本共存时,需要在编译时将不同版本的 php
安装到不同的目录。
打开 php
安装路径,编辑文件 etc/php-fpm.d/www.conf
或 etc/php-fpm.conf
,在文件中新增或修改以下项:
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 -y0登录后复制
随后在 nginx 配置文件,对应的 server 中修改 fastcgi_pass
为刚才设置中的 listen
对应的路径,注意此文件 nginx 运行用户必须有读权限,否则会报错:
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 -y1登录后复制
php-fpm
即php-Fastcgi Process Manager
,php-fpm
是FastCGI
的实现,并提供了进程管理的功能。php-fpm
进程包含master
进程与worker
进程,一般情况下,master
进程只有一个,负责监听端口、调度请求,而worder
进程则有多个,每个进程内部都嵌入了一个PHP
解释器,是PHP
代码真正运行的地方。前文设置中的worker
即php-fpm
的worker
进程数量。
开机自启
编辑文件 /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-fpm81function 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
是上一步自定义得到文件名)
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 -y3登录后复制
手动操作命令如下:
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 -y4登录后复制
推荐学习:《PHP视频教程》
以上就是步骤详解Centos中编译安装php8与配置方法的详细内容,更多请关注9543建站博客其它相关文章!
发表评论