IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Linux中安装PHP -> 正文阅读

[PHP知识库]Linux中安装PHP

安装PHP

检查是否已经安装过PHP

# 方式一
yum list installed |grep php
# 方式二
rpm -qa |grep php
# 方式三
ps -ef |grep php

需要的依赖

# 提供数据压缩用的函式库
zlib
zlib-devel

# 一个C语言的XML程序库
libxml2
libxml-devel

openssl
openssl-devel

# 完全免费(开源)的、高质量的且可移植的字体引擎
freetype
freetype-devel 

下载安装PHP

### 官网下载地址
http://php.p2hp.com/downloads.php 

1. 下载并拖动到 /usr/src 目录下

2. 检查sha256的值是否和官网相同

sha256sum php-8.0.8.tar.gz

3. 解压

tar zxvf php-8.0.8.tar.gz

4. 创建一个安装目录

mkdir /usr/local/php80

5. 检查配置
./configure --prefix=/usr/local/php80 --with-config-file-path=/usr/local/php80/etc --with-curl --with-freetype --enable-gd --with-jpeg  --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql  --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl -with-bz2 --with-iconv  --enable-fpm --enable-pdo  --enable-bcmath  --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl  --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd

6. make && make install

### 配置如果出错,根据提示安装缺失的依赖即可

yum install libpng-devel
yum install libjpeg-devel
yum install bzip2 bzip2-devel
yum install libxslt-devel
yum install freetype
yum install freetype-devel

# No package 'icu-uc' found
# No package 'icu-io' found
# No package 'icu-i18n' found

yum -y install libicu-devel

# No package 'oniguruma' found

yum install -y epel-release
yum install -y oniguruma oniguruma-devel

# No package 'libxslt' found

yum install libxslt-devel

# No package 'libzip' found
# No package 'libzip' found
# No package 'libzip' found

yum -y install libzip-devel

# Requested 'libzip >= 0.11' but version of libzip is 0.10.1

cd /opt
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -zxvf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build
cmake ../
make
make install

### 编译中可能缺少很多依赖,慢慢安装上就可以了

配置PHP

# 为 php 文件建立一个同步的链接,使用 php80 -v 可以查看 php 版本号
ln -s /usr/local/php80/bin/php /usr/bin/php 

# 拷贝配置文件
cp /usr/src/php-8.0.8/php.ini-development /usr/local/php80/etc/php.ini

# 拷贝php-fpm配置文件
cp /usr/local/php80/etc/php-fpm.conf.default /usr/local/php80/etc/php-fpm.conf

# 拷贝www.conf配置文件
cp /usr/local/php80/etc/php-fpm.d/www.conf.default /usr/local/php80/etc/php-fpm.d/www.conf

# php-fpm 自动启动脚本
cp /usr/src/php-8.0.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

# 修改php80-fpm权限
chmod +x /etc/init.d/php-fpm

测试PHP安装结果

# 首先启动 php-fpm

# /etc/init.d/php-fpm start  启动出错时,尝试下图解决办法
Starting php-fpm  done

# 查看php版本号 php80 -v
PHP 8.0.8 (cli) (built: Jul 22 2021 19:49:10) ( NTS DEBUG )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies

在这里插入图片描述

配置Nginx支持PHP

1. 更改php.ini文件,vim /usr/local/php/lib/php.ini

### 通过查找cgi.fix_pathinfo=1这个配置,并去除注释,并改为cgi.fix_pathinfo=0,这里并不属于nginx支持php配置相关,
### 而是专属于nginx下php的一个安全漏洞,
### 如果这里值为1,用户方可以通过上传图片来上传木马,然后通过url访问该图片地址,并在地址后加入/xxx.php将该图片作为php文件运行,
### 这是只有在nginx里才会存在的问题,apache和iis都没有该问题。

2. 配置web专用的组和用户

添加www用户组:groupadd www

添加www用户组下的用户www:useradd -g www www

3. 更改php-fpm.conf配置

将user=nobody的注释去掉,并将nobody改成上面配置的www用户

将group=nobody的注释去掉,并将nobody改成上面配置的www用户组

最后检查php-fpm.conf最后的include的值是不是正确的www.conf目录地址,如果不正确则换成正确的目录地址。

4. 更改www.conf配置

将user=nobody的注释去掉,并将nobody改成上面配置的www用户

将group=nobody的注释去掉,并将nobody改成上面配置的www用户组

5. 更改nginx.conf文件 /etc/local/nginx/conf/nginx.conf

将#user=nobody去掉注释并改为user=www

去除 location ~ \.php${...}这段代码的注释,并将fastcgi_param里的/scripts改为$document_root

最后将location / {...}里默认index后面添加上index.php,确保index.php作为默认的首页

6. 重启 php-fpm 和 nginx

killall php-fpm # 关闭 php-fpm

/etc/init.d/php-fpm # 重启 php-fpm

/usr/local/nginx/sbin/nginx -s stop # 停止nginx

/usr/local/nginx/sbin/nginx # 重启nginx

7. 在html目录里随便创建一个php文件,内容是phpinfo();,然后在浏览器中访问该文件地址,看是否得到正确的php相关信息,如果正确显示则配置成功。

常用命令总结

# 查看 php 配置文件路径
[root@salve-1 conf]# php --ini
Configuration File (php.ini) Path: /usr/local/php80/etc
Loaded Configuration File:         /usr/local/php80/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

# 查看对应php.ini是否有extension=swoole
[root@salve-1 conf]# cat /usr/local/php80/etc/php.ini | grep swoole
extension=swoole.so

# 关闭php-fpm
[root@salve-1 conf]# killall php-fpm

iles parsed: (none)

查看对应php.ini是否有extension=swoole

[root@salve-1 conf]# cat /usr/local/php80/etc/php.ini | grep swoole
extension=swoole.so

关闭php-fpm

[root@salve-1 conf]# killall php-fpm


  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 15:59:34  更:2021-07-27 16:01:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 1:16:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码