由建站学linux第9课---php的编译安装

编译安装一个软件包的步骤:
./configure make make install
./configure 配置编译参数
make 把源码文件配置为二进制文件(这步花费时间较多)
make install 编译后安装

下载地址:www.php.net 查找需要的版本,当前为7版本,有些老网站用的5版本,两个版本有些函数不支持。

[root@CentOS-1 src]# cd /usr/local/src/ 进入此路径准备下载,下载文件多放到此路径
[root@CentOS-1 src]# wget http://at2.php.net/distributions/php-7.3.1.tar.bz2
[root@CentOS-1 share1]# tar -jxvf php-7.3.1.tar.bz2 解压安装包
[root@CentOS-1 php-7.3.1]# cd php-7.3.1 进入到解压后的文件夹

[root@CentOS-1 php-7.3.1]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl 发现报错 安装·gcc
[root@CentOS-1 php-7.3.1]# yum -y install gcc 安装·gcc
再次执行编译,发现有新的报错,configure: error: libxml2 not found.
[root@CentOS-1 php-7.3.1]# yum list all | grep libxm
[root@CentOS-1 php-7.3.1]# yum -y install libxm* 然后重新执行编译,同理缺什么补什么,装的都是 devel包
会缺失很多包,应为编译参数要求了很多模块,当包都安装完后,会发现如下报错:
configure: error: wrong mysql library version or lib not found. Check config.log for more information.
原因为安装MariaDB版本较新,与php不兼容
解决:下载一个低版本的MySQL/Mariadb,这个低版本的安装包只是在php编译参数时使用一下。
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
下载5.6或者5.7都可以,5.7地址:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
tar jxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql5.6
改编译参数
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql5.6 --with-mysqli=/usr/local/mysql5.6/bin/mysql_config --with-pdo-mysql=/usr/local/mysql5.6 --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
[root@CentOS-1 php-7.3.1]# make 把源码文件配置成二进制文件, 此进程花费时间较长
[root@CentOS-1 php-7.3.1]# make install 执行后,文件会拷贝安装到/usr/local/php-fpm
[root@CentOS-1 ~]# ll /usr/local/php-fpm/
bin etc include lib php sbin var 可看到 /usr/local/php-fpm 下生成了多个文件,配置文件在etc下,平常多用etc
[root@CentOS-1 ~]# cd /usr/local/php-fpm/etc/
[root@CentOS-1 etc]# ls
pear.conf php-fpm.conf.default php-fpm.d php-fpm.conf.default是模板配置文件
[root@CentOS-1 etc]# cp php-fpm.conf.default php-fpm.conf 把模板的配置文件重命名为.conf的配置文件
[root@CentOS-1 php-7.3.1]# cd /smb/share1/php-7.3.1/ 进入php安装包所在路径
php.ini-development php.ini-production 有两个配置文件存在,一个是开发环境,一个是生产环境,实验用开发环境的配置文件
[root@CentOS-1 php-7.3.1]# cp php.ini-development /usr/local/php-fpm/etc/php.ini 把配置文件重命名放到php的配置文件夹下
故php需要两个配置文件,一个是服务本身的配置文件:php-fpm.conf 一个是php的配置文件:php.ini
[root@CentOS-1 php-7.3.1]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 把安装包里的启动脚本放到init.d下
[root@CentOS-1 php-7.3.1]# chmod 755 /etc/init.d/php-fpm 需要补充执行权限,不然无法启动
[root@CentOS-1 php-7.3.1]# chkconfig --add php-fpm
[root@CentOS-1 php-7.3.1]# chkconfig php-fpm on
[root@CentOS-1 php-7.3.1]# chkconfig --list
[root@CentOS-1 php-7.3.1]# service php-fpm start
Starting php-fpm [27-Jan-2019 18:55:39] WARNING: Nothing matches the include pattern ‘/usr/local/php-fpm/etc/php-fpm.d/*.conf’ from /usr/local/php-fpm/etc/php-fpm.conf at line 143.
[27-Jan-2019 18:55:39] ERROR: No pool defined. at least one pool section must be specified in config file
[27-Jan-2019 18:55:39] ERROR: failed to post process the configuration
[27-Jan-2019 18:55:39] ERROR: FPM initialization failed ======报错,此报错意为无pool文件
[root@CentOS-1 php-7.3.1]# cd /usr/local/php-fpm/etc/php-fpm.d/
[root@CentOS-1 php-fpm.d]# ls
www.conf.default
[root@CentOS-1 php-fpm.d]# cp www.conf.default www.conf 把默认文件重新拷贝命名为 www.conf
[root@CentOS-1 php-7.3.1]# service php-fpm start 又有报错,cannot get uid for user ‘php-fpm’
[root@CentOS-1 php-fpm.d]# useradd php-fpm
[root@CentOS-1 php-fpm.d]# service php-fpm start
[root@CentOS-1 php-fpm.d]# ps aux | grep php 发现php进程已经启动
[root@CentOS-1 php-fpm.d]# netstat -nlp 查看端口监听情况,包括tcp和udp
[root@CentOS-1 php-fpm.d]# netstat -ntlp 加上t就只展示tcp监听情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值