【分布式】部署PHP语言环境及介绍--LNMP构建(超详细)

 

目录

PHP语言

PHP语言的基本概念

PHP语言的优点

PHP语言的应用前景

安装PHP环境

基础环境部署

(1)修改主机名

(2)关闭防火墙及SElinux服务

(3)安装配置基础服务

编译安装libmcrypt

(4)安装PHP环境

(5)创建用户ID

(6)配置PHP环境

(7)启动PHP服务


PHP语言

PHP语言的基本概念

PHP是一种常用的开源脚本语言,特别适合用于开发动态网页和Web应用程序。PHP的全称是“PHP: Hypertext Preprocessor”,即“超文本预处理器”,它的基本概念包括以下几个方面:

  1. 脚本语言:PHP是一种脚本语言,不需要进行编译,代码可以直接由解释器执行。这使得PHP的开发过程更加灵活和快速。
  2. 服务器端语言:PHP通常在服务器上运行,通过Web服务器和客户端的交互来生成动态网页。当客户端发送请求时,PHP解释器会解析PHP代码,并将结果发送给客户端浏览器。
  3. 弱类型语言:PHP是一种弱类型语言,不需要在变量定义时指定数据类型。PHP会根据变量的值自动推断数据类型,这使得PHP的变量使用更加灵活。
  4. 支持多种数据库:PHP可以与多种数据库系统进行交互,如MySQL、PostgreSQL、Oracle等。这使得PHP在开发Web应用程序时能够方便地进行数据库操作。
  5. 支持各种协议和编程范式:PHP支持多种网络协议,如HTTP、FTP、SMTP等,可以进行网络编程。同时,PHP也支持面向对象编程、函数式编程和过程式编程等多种编程范式。
  6. 内置函数库:PHP内置了丰富的函数库,涵盖了各种常用的操作和功能,如字符串处理、文件操作、图像处理等。这些函数库使得PHP开发更加便捷和高效。

总之,PHP是一种广泛应用的服务器端脚本语言,PHP语言独特的语法混合了C、Java、Perl以及PHP自创的语法,它能够与数据库进行交互、处理Web请求和生成动态网页。PHP具有简单易学、灵活多样的特点,适用于开发各种规模的Web应用程序。

 

PHP语言的优点

PHP语言有以下几个主要优点:

  1. 简单易学:PHP语法相对简单,与C语言类似,易于学习和使用。对于初学者来说,上手较快,能够快速开发出简单的Web应用。
  2. 广泛应用:PHP是一种非常流行的服务器端脚本语言,被广泛应用于Web开发领域。许多著名的网站和应用程序,如Facebook、WordPress等都是使用PHP开发的。
  3. 跨平台性:PHP能够在多个操作系统上运行,包括Windows、Linux、Unix等。这使得开发人员能够更加灵活地选择开发环境,并且可以轻松迁移和部署应用程序。
  4. 强大的数据库支持:PHP与多种数据库系统紧密集成,如MySQL、PostgreSQL、Oracle等。开发人员可以方便地进行数据库操作,如连接数据库、执行SQL查询等。
  5. 大量的资源和社区支持:由于PHP的广泛应用和活跃的社区,有大量的开源代码、库和框架可供使用。这些资源可以节省开发时间,提高开发效率。
  6. 高性能:PHP经过多年的优化和改进,具有较高的执行速度和性能。PHP7引入了新的引擎和优化策略,进一步提升了性能,使得PHP在处理高负载的Web应用中表现出色。
  7. 扩展性和灵活性:PHP具有良好的扩展性,可以轻松地集成其他的扩展模块和库。同时,PHP支持多种编程范式,如面向对象编程和函数式编程,使得开发人员能够根据业务需求选择适当的编程风格。
  8. 可植入性强:PHP语言在补丁漏铜升级过程中,核心部分植入简单易行,且速度快。

综上所述,PHP语言具有简单易学、广泛应用、跨平台性、强大的数据库支持、丰富的资源和社区支持、高性能、扩展性和灵活性等优点,使得它成为一种受欢迎的服务器端脚本语言。

 

PHP语言的应用前景

与其他常用的语言相比,PHP语言优势明显,凭借较好的可移植性、可靠性以及较高的运行效率等优势在当下行业网站建设中独占鳌头。利用PHP语言进行行业网站设计,能够实现数据库的实时性更新、网站的日常维护和管理简单易行,进而提高用户的使用效率。PHP语言因其本身的优点再加上开源的优势,在Web开发方面有着极大的优势,已经衍生出众多开源系统,如建站方面的DedeCMS、ThinkCMF和WordPress等。

如今,网路技术正以突飞猛进的速度发展,而企业也要与时俱进,只有高度重视并充分利用网络技术,才能在实际运行的过程中,让网络成为切页发展的动力。PHP语言作为网站开发的通用语言,简单易行,可移植性好,应用空间广泛,在行业网站建设方面,具有良好的应用前景。

 

安装PHP环境

Linux操作系统的单节点规划准备

 

基础环境部署

(1)修改主机名

使用远程连接工具连接到虚拟机,并对其虚拟机修改主机名

[root@localhost ~]# hostnamectl set-hostname php
[root@localhost ~]# hostnamectl
   Static hostname: php

上面修改完后使用“bash”或重连终端实现更名

(2)关闭防火墙及SElinux服务

两个节点都关闭防火墙firewalld及SElinux服务

[root@php ~]# systemctl stop firewalld
[root@php ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@php ~]# setenforce 0
                //这个只是临时关闭,永久关闭要编辑配置文件/etc/selinux/config

(3)安装配置基础服务

首先拉取网络YUM源
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

安装基础配置服务
[root@php ~]# yum install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel -y

 

编译安装libmcrypt

libmcrypt是一个库,它为几个对称加密算法提供了统一的接口。它旨在提供一个简单的接口来访问ofb、cbc、cfb和ecb模式下的加密算法。它支持的算法有DES、3DES、RIJNDAEL、Twofish、IDEA、GOST、CAST-256、ARCFOUR、SERPENT、SAFER+等。算法和模式也是模块化的,因此可以动态地添加和删除它们,而无需重新编译库。

libmcrypt-2.5.8.tar.gz包下载:mcrypt - Browse /Libmcrypt/2.5.8 at SourceForge.net

上传libmcrypt-2.5.8.tar.gz压缩包到/usr/local/src目录下

[root@php ~]# cd /usr/local/src/
[root@php src]# ls
libmcrypt-2.5.8.tar.gz

解压压缩包
[root@php src]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@php src]# ls
libmcrypt-2.5.8  libmcrypt-2.5.8.tar.gz

进入解压目录
[root@php src]# cd libmcrypt-2.5.8
[root@php libmcrypt-2.5.8]# ls
acinclude.m4    autoscan.log  config.h       config.sub    depcomp  install-sh  libmcrypt.spec     Makefile     mkinstalldirs  src
aclocal.m4      buildconf     config.h.in    configure     doc      KNOWN-BUGS  libmcrypt.spec.in  Makefile.am  modules        stamp-h1
AUTHORS         ChangeLog     config.log     configure.in  include  lib         libtool            Makefile.in  NEWS           THANKS
autom4te.cache  config.guess  config.status  COPYING.LIB   INSTALL  libltdl     ltmain.sh          missing      README         TODO

编译安装该服务
[root@php libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt && make && make install

# `--prefix=/usr/local/libmcrypt`:指定libmcrypt安装的路径。
解压libmcrypt包
编译安装libmcrypt

(4)安装PHP环境

上传php-5.6.27.tar.gz压缩包至PHP节点

PHP包下载:http://cn2.php.net/distributions/php-5.6.27.tar.gz

上传压缩包到/usr/local/src目录下
[root@php ~]# cd /usr/local/src/
[root@php src]# ls
libmcrypt-2.5.8  libmcrypt-2.5.8.tar.gz  php-5.6.27.tar.gz

解压php压缩包
[root@php src]# tar -zvxf php-5.6.27.tar.gz

进入解压后的目录
[root@php src]# ls
libmcrypt-2.5.8  libmcrypt-2.5.8.tar.gz  php-5.6.27  php-5.6.27.tar.gz
[root@php src]# cd php-5.6.27
[root@php php-5.6.27]# ls
acinclude.m4      CREDITS          ltmain.sh        NEWS                      README.md                         README.TESTING2            stub.c
aclocal.m4        ext              main             pear                      README.namespaces                 README.UNIX-BUILD-SYSTEM   tests
build             EXTENSIONS       makedist         php5.spec.in              README.NEW-OUTPUT-API             README.WIN32-BUILD-SYSTEM  travis
buildconf         footer           Makefile.frag    php.gif                   README.PARAMETER_PARSING_API      run-tests.php              TSRM
buildconf.bat     generated_lists  Makefile.gcov    php.ini-development       README.REDIST.BINS                sapi                       UPGRADING
CODING_STANDARDS  genfiles         Makefile.global  php.ini-production        README.RELEASE_PROCESS            scripts                    UPGRADING.INTERNALS
config.guess      header           makerpm          README.EXT_SKEL           README.SELF-CONTAINED-EXTENSIONS  server-tests-config.php    vcsclean
config.sub        INSTALL          missing          README.GIT-RULES          README.STREAMS                    server-tests.php           win32
configure         install-sh       mkinstalldirs    README.input_filter       README.SUBMITTING_PATCH           snapshot                   Zend
configure.in      LICENSE          netware          README.MAILINGLIST_RULES  README.TESTING                    stamp-h.in

这是在 Linux 操作系统中使用 PHP 5.6 构建的命令
解释如下:

# `./configure`:运行 PHP 的配置脚本。
# `--prefix=/usr/local/php5.6`:指定 PHP 的安装路径。
# `--with-mysql=mysqlnd`:启用 MySQL 扩展,使用 mysqlnd 驱动。
# `--with-pdo-mysql=mysqlnd`:启用 PDO MySQL 扩展,使用 mysqlnd 驱动。
# `--with-mysqli=mysqlnd`:启用 MySQLi 扩展,使用 mysqlnd 驱动。
# `--with-openssl`:启用 OpenSSL 扩展,支持加密功能。
# `--enable-fpm`:启用 PHP-FPM(FastCGI 进程管理器),用于处理 PHP 脚本的 FastCGI 请求。
# `--enable-sockets`:启用 Sockets 扩展,支持网络通信。
# `--enable-sysvshm`:启用系统 V 共享内存扩展,提供共享内存功能。
# `--enable-mbstring`:启用多字节字符串扩展,支持处理多字节字符集。
# `--with-freetype-dir`:指定 FreeType 库的路径,用于处理 TrueType 字体。
# `--with-jpeg-dir`:指定 JPEG 库的路径,用于处理 JPEG 图片。
# `--with-png-dir`:指定 PNG 库的路径,用于处理 PNG 图片。
# `--with-zlib`:启用 Zlib 扩展,支持数据压缩和解压缩。
# `--with-libxml-dir=/usr`:指定 libxml2 库的路径,用于处理 XML。
# `--enable-xml`:启用 XML 扩展,支持 XML 解析。
# `--with-mhash`:启用 mhash 扩展,支持哈希算法。
# `--with-mcrypt=/usr/local/libmcrypt`:指定 libmcrypt 库的路径,用于处理加密算法。
# `--with-config-file-path=/etc`:指定 PHP 配置文件的路径。
# `--with-config-file-scan-dir=/etc/php.d`:指定 PHP 配置文件扫描的目录。
# `--with-bz2`:启用 Bzip2 扩展,支持数据压缩和解压缩。
# `--enable-maintainer-zts`:启用多线程安全版本的 PHP。

 

解压PHP包

 

编译安装PHP环境

上面给我报了一个警告,查看了一下原来是我命令打错了,修改后重新运行一下配置脚本即可,问题不大!

大家如果手动敲上面的命令要注意点,防止敲错,免得后面造成不必要的麻烦!

最后完成截图

源码运行完成图

下一步就是编译安装

[root@php php-5.6.27]# make && make install

这个编译安装需要一点时间,不用着急,泡杯茶耐心等待会哦!!!

完成后

编译安装完成图

(5)创建用户ID

创建用户ID,注意这个nginx的ID号要和上一篇的nginx主机(192.168.100.50)上的保持一致,之前我上一篇也提到过

[root@php php-5.6.27]# groupadd -g 1001 nginx
[root@php php-5.6.27]# useradd -u 900 nginx -g nginx -s /sbin/nologin
[root@php php-5.6.27]# tail -l /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin

(6)配置PHP环境

PHP压缩包中提供了PHP环境需要用到的模板文件,需要对文件进行改名后才能使用

复制文件并改名
[root@php php-5.6.27]# cp php.ini-production /etc/php.ini
[root@php php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

赋予文件执行权限
[root@php php-5.6.27]# chmod +x /etc/init.d/php-fpm

添加PHP服务到启动列表,并设置开机启动 
[root@php php-5.6.27]# chkconfig --add php-fpm
[root@php php-5.6.27]# chkconfig php-fpm on

修改PHP的主配置文件
[root@php php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@php php-5.6.27]# vi /usr/local/php5.6/etc/php-fpm.conf

编辑文件,将相关参数修改为下面过滤出来的配置
过滤出文件中以字母a-z,A-Z开头的字母,并显示行号,注意冒号后面的才是要修改的,前面的数字为对应的配置所在第几行
[root@php etc]# grep -n '^'[a-Z] /usr/local/php5.6/etc/php-fpm.conf
25:pid = run/php-fpm.pid                                    
149:user = nginx
150:group = nginx
164:listen = 192.168.100.60:9000
224:pm = dynamic
235:pm.max_children = 50
240:pm.start_servers = 5
245:pm.min_spare_servers = 5
250:pm.max_spare_servers = 35


解释一下以上配置的作用:
这几行是在 PHP-FPM (PHP FastCGI 进程管理器) 的配置文件中定义的参数

# 第 25 行:`pid = run/php-fpm.pid` 指定 PHP-FPM 进程的 PID(进程 ID)文件路径。在该文件中,PHP-FPM 进程将写入其进程 ID。
# 第 149 行:`user = nginx` 指定 PHP-FPM 进程执行的用户。在这种情况下,PHP-FPM 进程将以 `nginx` 用户的身份运行。
# 第 150 行:`group = nginx` 指定 PHP-FPM 进程执行的用户组。在这种情况下,PHP-FPM 进程将以 `nginx` 用户组的身份运行。
# 第 164 行:`listen = 192.168.100.60:9000` 指定 PHP-FPM 监听的 IP 地址和端口号。在这种情况下,PHP-FPM 将监听 IP 地址 `192.168.100.60` 的端口 `9000` 上的请求。
# 第 224 行:`pm = dynamic` 指定 PHP-FPM 的进程管理模式为动态模式。在动态模式下,PHP-FPM 进程的数量将根据需求自动调整。
# 第 235 行:`pm.max_children = 50` 指定 PHP-FPM 进程池的最大子进程数。在这种情况下,最多可以创建 50 个 PHP-FPM 子进程。
# 第 240 行:`pm.start_servers = 5` 指定 PHP-FPM 进程池在启动时创建的初始子进程数。在这种情况下,启动时会创建 5 个子进程。
# 第 245 行:`pm.min_spare_servers = 5` 指定 PHP-FPM 进程池中最小空闲子进程的数量。在这种情况下,保持至少 5 个空闲子进程。
# 第 250 行:`pm.max_spare_servers = 35` 指定 PHP-FPM 进程池中最大空闲子进程的数量。在这种情况下,最多允许存在 35 个空闲子进程。
PHP模板文件配置信息

(7)启动PHP服务

在完成上述配置并保存退出之后,就可以启动PHP服务,并检查是否启动成功(netstat命令无法使用时,那就使用YUM源安装net-tools工具,之前nginx服务中也提到过)

[root@php php-5.6.27]# service php-fpm start
Starting php-fpm  done
[root@php php-5.6.27]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 192.168.100.60:9000     0.0.0.0:*               LISTEN      13143/php-fpm: mast

可以看到9000端口已启动,则说明PHP环境安装完毕!
查看PHP服务端口是否开启

至此,PHP语言环境部署完成! 

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值