linux(一)centos编译安装PHP,nginx,mysql,mariadb

编译安装php,nginx,mysql,mariadb。

一:编译安装PHP7.4

我的服务器是阿里云的centos7.8

1:下载PHP源码包

一般我都是从官方网站下载:https://php.net

1.png

当然,我是直接在服务器上下载的:

mkdir -p /usr/local/download
cd /usr/local/download
wget https://www.php.net/distributions/php-7.4.11.tar.gz

2:为服务器安装编译环境

我使用的服务器是纯净的环境,没有编译的环境,因此需要安装:

yum -y install gcc gcc-c++ autoconf automake build-essential zlib zlib-devel openssl openssl-devel pcre pcre-devel

3:安装PHP7.4所需要的的编译环境

yum install -y openssl-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel recode-devel libicu-devel libzip-devel sqlite-devel oniguruma-devel

4:编译安装php7.4

(1):解压刚刚下载的源码包

tar -zxvf php-7.4.11.tar.gz
cd php-7.4.11
 

(2):编译(指定安装目录)并安装php-fpm

./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-pdo_mysql --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl
 --enable-fpm
 --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-bcmath

2.png

如上图所示,编译成功

(3):安装

make&&make install

5:简化PHP执行命令

上一步操作中我们已经将PHP安装成功。

在服务器端执行PHP文件格式是这个样子的:

/usr/local/php/bin/php index.php

但是我们使用yum源安装的PHP,在服务器上可以直接使用php命令来执行:

php index.php

在当前登录用户(我是root)家目录下的.bash_profile中添加如下内容:

vim /root/.bash_profile

添加内容:

alias php=/usr/local/php/bin/php
alias phpfpm=/usr/local/php/sbin/php-fpm

修改之后文件内容:

# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/bin
 
export PATH
alias php=/usr/local/php/bin/php
alias phpfpm=/usr/local/php/sbin/php-fpm

重载一下文件:

source /root/.bash_profile

或者创建软连接

ln -s /usr/local/php/bin/php /usr/bin/php74
ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm74

理论上就可以使用php命令来执行PHP文件了

3.png

6:启动php-fpm报错解决方案

这里只记录在我安装的时候遇到的错误。

(1):找不到php-fpm.conf文件

[19-Apr-2018 16:02:08] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
 [19-Apr-2018 16:02:08] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
 [19-Apr-2018 16:02:08] ERROR: FPM initialization failed

错误信息说是找不到php-fpm.conf

解决方案:

到php的配置目录

cd /usr/local/php/etc

有一个php-fpm.conf.default的文件,cp复制

cp php-fpm.conf.default php-fpm.conf

编辑 php-fpm.conf
找到以下配置项, 配置如下

pid = /usr/local/php/var/run/php-fpm.pid

再次运行

/usr/local/php/sbin/php-fpm

进入下一个报错、

(2):找不到www.conf配置文件

[root@iZuf60ynur81p6k0ysvtneZ etc]# /usr/local/php/sbin/php-fpm
[13-Oct-2020 18:03:57] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 145.
[13-Oct-2020 18:03:57] ERROR: No pool defined. at least one pool section must be specified in config file
[13-Oct-2020 18:03:57] ERROR: failed to post process the configuration
[13-Oct-2020 18:03:57] ERROR: FPM initialization failed

解决方案:

进入php安装目录:

/usr/local/php/etc/php-fpm.d

当前目录下有一个www.conf.default文件

cp 
www.conf.default
 
www.conf

再次执行

/usr/local/php/sbin/php-fpm

我的php-fpm便启动成功。

7:php.ini文件

Php编译安装成功之后,是没有php.ini文件的,需要我们从源码包中复制过去。

(1):查询php.ini文件位置

php -i | grep php.ini
[root@iZuf60ynur81p6k0ysvtneZ /]# php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/php/lib
 

Php.ini文件存放目录在/usr/local/php/lib中

(2):获取php.ini文件

找到了php.ini文件的存放位置,那么php.ini文件在哪获取呢?

进入我们的源码包,我们可以看到:

4.png

使用cp命令,将文件复制到指定位置并重命名php.ini

cp /usr/local/download/php-7.4.11/php.ini-development /usr/local/php/lib/php.ini

8:安装php扩展

敲黑板,敲黑板,安装扩展这个很重要。

我们使用php -m 命令可以查看PHP默认为我们安装了那些扩展:

[root@iZuf60ynur81p6k0ysvtneZ /]# php -m
[PHP Modules]
Core
ctype
date
dom
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
 
[Zend Modules]

其实,在PHP源码包中,为我们提供了部分的PHP的扩展源码包,这里没有的需要去PHP官网下载。在根目录下的ext目录中,如下图所示:

5.png

所以,我们如果需要安装相关的拓展,不需要去别的地方找,源码包啥都给你提供了。

下面,记录一下,我安装gd库扩展的过程:

(1):进入源码包的gd库目录:

cd /usr/local/download/php-7.4.11/ext/gd  #这里是我的目录,需要改成你自己的目录

(2): 生成configure


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值