广告
返回顶部
首页 > 资讯 > 操作系统 >Linux学习-84-安装PHP
  • 873
分享到

Linux学习-84-安装PHP

phplinux学习 2023-09-09 11:09:08 873人浏览 安东尼
摘要

17.13 安装PHP php(PHP:Hypertext Preprocessor递归缩写)中文名字是:“超文本预处理器”,是一种广泛使用的通用开源脚本语言,适合于WEB网站开发,它可以嵌入html

17.13 安装PHP

  • php(PHP:Hypertext Preprocessor递归缩写)中文名字是:“超文本预处理器”,是一种广泛使用的通用开源脚本语言,适合于WEB网站开发,它可以嵌入html中。编程范型是面向对象、命令式编程的。
  • PHP/Perl/python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

除了前面安装的一系列软件外,安装php时根据自己需要提前安装以下环境

yum install dnfdnf install sqlite-develdnf -y install bzip2-develdnf -y install libcurl-develdnf -y install libicu-develdnf -y install libxslt-develdnf -y install libzip-devel
  • 如果不提前安装,后续在编译的时候会报两种错误:
    • 1.包找不到,未安装,需要安装:例如
configure: error: Package requirements (sqlite3 > 3.7.4) were not met:No package 'sqlite3' found#那需要安装此生产包yum install sqlite-devel
    • 现有的安装包版本较低.例如:
configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:Requested 'libzip >= 0.11' but version of libzip is 0.10.1

处理办法:

  • 先移除现有的安装:yum remove libzip-devel libzip

  • 下载对应的版本:wget https://libzip.org/download/libzip-1.3.2.tar.gz --no-check-certificate

  • 解压tar包,然后进入解压包,执行配置脚本:./confugure

  • 编译安装:make & make install

  • 安装完成后,查询/usr/local/lib64目录下是否有pkGConfig目录,有的话执行命令export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig/"指定PKG_CONFIG_PATH,然后重新执行切换php解压之后的文件夹,执行./configure脚本即可

oniguruma是一个处理正则表达式的库,安装php的过程中,mbstring的正则表达式处理功能对这个包有依赖性,所以我们要先安装这个库在/usr/local/src/目录下

#下载[root@localhost src]# wget Https://GitHub.com/kkos/oniguruma/arcHive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz #解压[root@localhost src]# tar xf oniguruma-6.9.4.tar.gz #进入解压包[root@localhost src]# cd oniguruma-6.9.4/#配置[root@localhost oniguruma-6.9.4]# ./autogen.sh && ./configure --prefix=/usr/local/oniguruma#编译安装[root@localhost oniguruma-6.9.4]# make && make install
  • ./autogen.sh && ./configure --prefix=/usr运行中如果报错:则需要安装以下类库
Generating autotools files../autogen.sh: line 6: autoreconf: command not found[root@localhost oniguruma-6.9.4]# yum -y install autoconf automake libtool libtool-ltdl

配置php并编译安装,在执行编译之前,需要配置此次编译和安装后的文件的存放位置以及安装的一些组件

#进入php解压包[root@CncLucZK ~]# cd /usr/local/src/php-8.0.0# #编译前配置[root@localhost php-8.1.12]# ./configure --prefix=/usr/local/php/ \#指定安装位置--with-config-file-path=/usr/local/php/etc/ \ #设置php配置文件(php.ini)的存放位置,#一般来说安装php的时候只需要指定这两个路径即可,其他的则是指定php支持哪一些组件了--with-apxs2=/usr/local/apache2/bin/apxs  \#调用apache2--with-Mysql=/usr/local/mysql/ \ #调用mysql--with-libxml=/usr/local/libxml2/ \#调用libxml2库--with-libjpeg=/usr/local/jpeg6/ \#调用jpeg库--with-libpng=/usr/local/libpng/  \#调用libpng库--with-freetype=/usr/local/freetype/  \#调用freetype库--with-mcrypt=/usr/local/libmcrypt/ \#调用libmcrypt库--with-mysqli=/usr/local/mysql/bin/mysql_config #增加MysqlLi功能--with-pdo-mysql=/usr/local/mysql \#启用mysql的pdo模块支持--enable-soap \#支持SOAP和Web Services--enable-mbstring=all \#支持多字节字符串--enable-mbregex \#支持处理正则表达式--enable-Sockets \#支持socket(套接字)通信--enable-gd \ #支持gd库#后续这些功能可以视情况追加,但需要提前安装好相应环境。其中问题最大的使用--with-openssl,在Centos8上存在库调用问题--with-curl  --with-gettext --with-kerberos --with-libdir=lib64  --with-openssl  --with-pdo-sqlite --with-pear  --with-mhash --with-ldap-sasl --with-xsl --with-zlib --with-zip -with-bz2 --enable-fpm --enable-pdo  --enable-bcmath --enable-opcache --enable-pcntl  --enable-shmop --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-intl --enable-calendar --enable-static --enable-mysqlnd --with-iconv#编译安装[root@localhost php-8.1.12]# make && make install
  • 编译安装PHP8存在问题1:

libtool: link: warning: library /usr/lib64/libonig.la' was moved. libtool: link: warning: library /usr/lib64/libonig.la’ was moved.
#报以上错误的原因在于: 类似于这种的la文件/usr/lib64/libonig.la中的最后的libdir='/usr/local/oniguruma/lib’位置有误导致,需要正确安装oniguruma库后在配置此文件

  • 编译安装PHP8存在问题2:configure: error: iconv does not support errno
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gztar -zxvf libiconv-1.14.tar.gzcd libiconv-1.14./configure --prefix=/usr/local/libiconv make && make install# 添加 --with-iconv=/usr/local/libiconv 编译参数,重新 configure
  • 在编译安装libiconv存在问题3:提示如下错误:stdio.h:1010:1: error: 'gets;undeclared here (not in a function)

在这里插入图片描述

解决方法:

使用命令找到该文件find / -name 'stdio.h’或 find / -name stdio.in.h这两个文件都可以,修改的是统一的内容,只是位置不同

/usr/local/src/libiconv-1.14/srclib/stdio.h #1010行

/usr/local/src/libiconv-1.14/srclib/stdio.in.h #698行

然后直接编辑1010行 vi +1010 /usr/local/src/libiconv-1.14/srclib/stdio.h文件,注释这一行
然后在注释行下面添加下面三行

 #if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");#endif

保存退出后,直接编译安装 make && make install

在这里插入图片描述

编译安装PHP8存在问题4:在开启–enable-openssl时,centos8报如下错误:找了网上的方法都无法解决,所以暂时不开启次功能

/usr/lib/gcc/x86_64-redhat-linux/8/…/…/…/…/lib64/libk5crypto.so: undefined reference to EVP_KDF_derive@OPENSSL_1_1_1b' /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libk5crypto.so: undefined reference to EVP_KDF_ctrl@OPENSSL_1_1_1b’
/usr/lib/gcc/x86_64-redhat-linux/8/…/…/…/…/lib64/libk5crypto.so: undefined reference to EVP_KDF_CTX_free@OPENSSL_1_1_1b' /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libk5crypto.so: undefined reference to EVP_KDF_CTX_new_id@OPENSSL_1_1_1b’
collect2: error: ld returned 1 exit status
make: *** [Makefile:308: sapi/cli/php] Error 1

查看php安装情况:切换到configure指定的安装路径的bin目录,执行版本查看:

[root@CncLucZK php-8.0.0]# /usr/local/php/bin/php -vPHP 8.0.0 (cli) (built: Nov  4 2022 21:35:58) ( ZTS )Copyright (c) The PHP GroupZend Engine v4.0.0-dev, Copyright (c) Zend Technologies

建立PHP配置文件

  • 和 MySQL一样,这个配置文件不用手工建立,也是有模板文件的,我们只需复制即可。命令如下:
cp /usr/local/src/php-8.0.0/php.ini-production /usr/local/php/etc/php.ini

让apache可以识别“.php”扩展名

  • 在安装 PHP 时,在 ./configure 命令中使用 --with-apxs2=/usr/local/apache2/bin/apxs 选项,已经把 PHP 作为模块被 apache 识别了。不过,apache 并不知道哪些扩展名的文件要调用 PHP 模块来解析(如果是 apache 不认识的扩展名,那么客户端在访问时,apache 不会尝试解析,而是提示客户端下载),所以我们需要修改 apache 的配置文件,让 apache 可以认识 PHP 脚本的扩展名。

  • 让 apache 在遇到“.php”和“.phps”扩展名时,调用 PHP 模块来解析这些文件的内容,那么我们只需要执行如下命令:

#修改apache配置文件,加入如下内容[root@localhost php-5.4.25]# vi /usr/local/apache2/etc/httpd.conf...# If the AddEncoding directives above are commented-out, then you# probably should define those extensions to indicate media types:#AddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .php .phps #这句话的意思是:如果遇到.php和.phps扩展名,则调用PHP模块来解析这个文件的内容...

这句话加载在 apache 配置文件中的任何位置都是可以的,不过系统中有类似的语句 AddType application/x-gzip.gz.tgz,那么我们一般将其加载到这句话后面。至于 PHP 文件的扩展名,可以自由定义。

在这里插入图片描述
7.重启Apache服务器:我们修改了 apache 的配置文件,如果想让这个修改生效,那么必须重启 Apache 服务器。重启命令如下:

#重启apache服务systemctl restart apache[root@CncLucZK php]# service apache stop[root@CncLucZK php]# service apache starthttpd not running, trying to start

这里最好不要使用 restart 参数,因为对于源码包的 apache 启动命令,restart 参数有时会不起作用。

测试PHP环境是否正常

  • 对源码包安装的 apache 来讲,网页的默认保存位置是 /usr/local/apache2/htdocs/ 目录。为了测试 PHP 环境是否正常,我们需要在这个目录中建立一个 PHP 文件,看看这个文件是否可以正常显示。命令如下:
[root@CncLucZK php]# vi /usr/local/apache2/htdocs/index.php
  • 这里我们使用了 phpinfo() 函数,这个函数的主要作用是显示 PHP 的相关信息,这些信息包括 PHP 的编译信息、PHP 的版本、服务器信息和环境、PHP 的环境、操作系统信息、路径、主要的配置选项、HTTP 头信息和 PHP 的许可等。我们一般使用这个函数来测试 PHP 是否安装成功,接下来在浏览器中输入“http://服务器IP/index.php”来执行该文件,如下图所示则PHP 安装成功。

在这里插入图片描述

下一篇:Linux学习-85-memcache、Docker安装和配置(自启动)过程

来源地址:https://blog.csdn.net/weixin_42045639/article/details/128290954

--结束END--

本文标题: Linux学习-84-安装PHP

本文链接: https://www.lsjlt.com/news/401322.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux学习-84-安装PHP
    17.13 安装PHP PHP(PHP:Hypertext Preprocessor递归缩写)中文名字是:“超文本预处理器”,是一种广泛使用的通用开源脚本语言,适合于Web网站开发,它可以嵌入HTML...
    99+
    2023-09-09
    php linux 学习
  • linux 基础学习编译安装php+my
    CentOS 6.9 编译安装 Nginx+PHP+MYSQL0x01 环境约束    源码位置 /home/[用户文件夹]    源码编译安装位置  /usr/local/[软件名]    CentOS6.9 x86 - 64 ...
    99+
    2023-01-31
    基础 linux php
  • linux 学习 mysql安装到连接
    目录 下载与安装   1.方法一(本地翻墙)   2.方法二(本地不翻墙) 初始化和配置   1.初始化mysql    2.远程访问的设置   3.用户组权限的修改  ps:一般mysql安装后会在/var/log...
    99+
    2017-06-16
    linux 学习 mysql安装到连接
  • PHP之Swoole学习安装教程
    目录一、前言二、Swoole 环境搭建2.1 PHP Installation 2.2 Swoole Installation2.3 开发工具提示包一、前言 s...
    99+
    2022-11-12
  • mysql学习-安装
    一、mysql安装包解压,注意下载的mysql包必须与操作系统版本需求一致。 [root@node1 soft]# ls mysql-5.7.11-1.el5.i686.rpm-bundle.tar [ro...
    99+
    2022-10-18
  • Linux 学习总结(三十)lamp之mysql安装
    一 lamp架构介绍 lamp 是linux apache mysql php 的缩写,就是整个一套服务端环境,对于php开发的网站,我们访问到的页面或者数据很可能就是这套环境提供的。对于普通网民来说,我们...
    99+
    2022-10-18
  • linux运维学习之二进制格式安装
        本周给大家带来的是关于mysql的二进制格式的安装,我们对于mysql的安装一般有两种方式,一是通过yum安装,二是通过二进制格式的安装,第一种方法yum安装...
    99+
    2022-10-18
  • Linux学习之安装CentOS7-Mac版+避坑指南
    2021款MacBook M1 pro安装CentOS7虚拟机+避坑指南 前言一、准备VMware Fusion 13虚拟机1.下载安装2.激活3.启动VMware Fusion 13 ...
    99+
    2023-09-01
    linux 学习 macos
  • 【python学习】windows下安装
    今天真是纠结的一天。。。。本来打算在pycharm里面开发python web,发现mysql驱动没有,就想去安装一个MySQLdb结果花了好久才安装好MySQLdb其实,pycharm里面不需要安装MySQLdb,里面自带驱动下载接口,下...
    99+
    2023-01-31
    python windows
  • [TenserFlow学习笔记]——安装
    最近人工智能、深度学习、机器学习等词汇很是热闹,所以想进一步学习一下。不一定吃这口饭,但多了解一下没有坏处。接下来将学习到的一些知识点做一下记录。 在VMWare虚拟机中安装最新版本的Ubuntu18.10 Tenserflow依赖p...
    99+
    2023-01-30
    学习笔记 TenserFlow
  • Mongodb学习(安装篇):在Window下安装
     第一步:下载安装包:     官方下载地址←单击此处,如果是win系统,注意是64位还是32位版本的,请选择正确的版本。   ...
    99+
    2022-10-18
  • Mongodb学习(安装篇): 在centos下的安装
      安装篇  ###下载解压文件 [root@192 lamp]# wget http://fastdl.mongodb.org/lin...
    99+
    2022-10-18
  • Linux入门学习,安装一个属于自己的Linux系统
    一 Linux简介Linux抽象解释肯定有人和我一样,很早就听说过Linux这个词,但是又没接触过。然后随手百度一下看着满满的命令惊呆了,不知道从哪里开始学习。 我相信大家肯定都用过Windows系统,或者也用过Mac系统,其实Linux也...
    99+
    2023-06-06
  • python学习-vim插件安装
    centos7上自带python2.7,我们需要优化一下python环境。一、使用豆瓣源加速软件安装pip install -i   flask    #使用-i 选项 mkdir ~./pip && vim pip.con...
    99+
    2023-01-31
    插件 python vim
  • MySql学习-1.MySql的安装:
    1.安装包的下载(mysql-v5.7.25 )(NavicatforMySQL_11.2.15): 链接:https://pan.baidu.com/s/166hyyYd3DMjYhMwdW805FA 提取码:18cj 复制这段...
    99+
    2022-03-11
    MySql学习-1.MySql的安装:
  • MySQL学习笔记(1):安装
    本文更新于2020-05-04。 目录安装使用apt-get安装使用dpkg安装使用rpm安装卸载MariaDB安装MySQL初始化密码修改密码认证插件服务启动、停止、重启、状态查看Linux下的文件布局默认数据库 安装 在Win...
    99+
    2020-09-26
    MySQL学习笔记(1):安装
  • MongoDB学习(一) --- 入门安装
    1、简介 MongoDB 是由 C++语言编写的,是一个基于分布式文件储存的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据储存解决方案。 MongoDB 将数...
    99+
    2015-03-28
    MongoDB学习(一) --- 入门安装
  • Oracle 学习之 11g Clone 安装
      如果你需要安装的数据库服务器比较多,使用图形化方式安装数据库软件的速度还是很慢,而且也比较麻烦。Oracle 11g 提供了Clone安装的方法。步骤如下:使用正常方法在服务器A上安装好Ora...
    99+
    2022-10-18
  • Oracle学习(一) --- 入门安装
    1.2、特点: 1.2.1、完整的数据管理功能 1)数据的大量性 2)数据的保存的持久性 3)数据的共享性 4)数据的可靠性 1.2.2、完备关系的产品 1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示...
    99+
    2019-05-09
    Oracle学习(一) --- 入门安装
  • 学习:Python之Python安装(一
    前言:Python是一种解释型、面向对象、动态数据类型的高级程序设计语音。作为目前流行的程序设计语言,由于语法简洁而清晰,并且具有丰富和强大的类库被大家所喜爱。Python简介:Python在Linux、Windows、MAC OS等操作系...
    99+
    2023-01-31
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作