追月,Linux云服务器编译安装最新ApachePHP和MySQL

Posted 编程之夜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了追月,Linux云服务器编译安装最新ApachePHP和MySQL相关的知识,希望对你有一定的参考价值。

php7.2.5发布于2018年4月26日


当带上编译两个字,我知道这事儿不会简单,有成千上万条通向罗马的旧路,然而最新的只有你现在看见的一条,Come on


追月,Linux云服务器编译安装最新Apache、PHP和MySQL


云服务器  CentOS7.3


在安装之前,需要理解一些事。你可以把PHP当作Apache上的一个PHP解释器模块,PHP与Apache紧密在一起。而mysql与它俩完全独立,依靠网络端口如3306通信。

追月,Linux云服务器编译安装最新Apache、PHP和MySQL

Apache和PHP安装过程都在做下面几步:

  1. 安装编译器

  2. 安装依赖包

  3. 配置并编译主程序

  4. 启动服务

  5. 额外配置



Apache 2.4.33


➀安装ANSI-C编译器

[root@co ~]# yum install -y gcc gcc-c++


提前安装用到的依赖工具包

[root@co ~]# yum install -y expat-devel libxml2-devel


➁安装httpd依赖包

这里有apr、arp-util、pcre三个压缩文件,都要经过下载、解压、编译安装三步

1.下载。

[root@co ~]# wget -c http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz
[root@co ~]# wget -c http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
[root@co ~]# wget -c https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz


执行效果 默认下载路径在/root目录下

追月,Linux云服务器编译安装最新Apache、PHP和MySQL


2.解压。

[root@co ~]# tar -zvxf apr-1.6.3.tar.gz
[root@co ~]# tar -zvxf apr-util-1.6.1.tar.gz
[root@co ~]# tar -zvxf pcre-8.42.tar.gz


执行效果 获得相关命名文件夹

追月,Linux云服务器编译安装最新Apache、PHP和MySQL


3.编译安装

3.1 apr

[root@co ~]# cd apr-1.6.3
[root@co apr-1.6.3]# ./configure
[root@co apr-1.6.3]# make && make install


Libraries have been installed in:
  /usr/local/apr/lib


执行完成后,返回上级目录

[root@co apr-1.6.3]# cd ..


3.2 apr-util

[root@co ~]#cd apr-util-1.6.1
[root@co apr-util-1.6.1]# ./configure
--with-apr=/usr/local/apr
[root@co apr-util-1.6.1]# make && make install

注意./configure后面接了多行指令

  是用于换行书写


默认没有用--prefix制定安装目录,也在apr/lib同一个目录下了

Libraries have been installed in:
  /usr/local/apr/lib

执行完成后,返回上层目录


[已避免] 错误一。apr-util编译时出现以下错误。

追月,Linux云服务器编译安装最新Apache、PHP和MySQL

对应安装→expat-devel

[root@co apr-util-1.6.1]# yum install -y expat-devel


3.3 pcre 兼容正则表达式库

[root@co ~]#cd pcre-8.42
[root@co pcre-8.42]# ./configure
[root@co pcre-8.42]# make && make install


执行完成后,返回上层目录

[root@co pcre-8.42]# cd ..
[root@co ~]#


➂配置并编译httpd主程序

同样的下载、解压、编译

[root@co ~]# wget -c http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.33.tar.gz
[root@co ~]# tar -zvxf httpd-2.4.33.tar.gz


进入httpd目录并配置编译参数

[root@co ~]# cd httpd-2.4.33
[root@co httpd-2.4.33]# ./configure
--prefix=/usr/local/apache
--with-apr=/usr/local/apr
--enable-so
--enable-mods-shared=most


编译安装httpd(15分钟以上,如果有错误会很快中止)

[root@co httpd-2.4.33]# make && make install


[已避免] 错误二。undefined reference to `XML_SetElementHandler

追月,Linux云服务器编译安装最新Apache、PHP和MySQL

对应安装→libxml2-devel,并需要重新编译apr-util

[root@co apr-util-1.6.1]# yum install -y libxml2-devel

参考:http://blog.51cto.com/castiel/2051440


➃启动httpd服务

跳转到apache的bin目录下

[root@co httpd-2.4.33]# cd /usr/local/apache/bin

启动服务

[root@co bin]# ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

这时访问网站,其实可以看见默认页面显示:It works!这里 提醒你需要设置ServerName的名字

打开 usr/local/apache/conf/httpd.conf 

第 193 行

#ServerName www.example.com:80
ServerName 127.0.0.1:80


[root@co bin]# ./apachectl start
httpd (pid 8476) already running


➄apache加入开机启动

编译安装的httpd服务无法直接通过systemctl启动,将http里的apachectl拷贝到

/etc/rc.d/init.d/目录中,命名httpd

[root@co ~]# cp apachectl /etc/rc.d/init.d/httpd


追月,Linux云服务器编译安装最新Apache、PHP和MySQL

# chkconfig: 2345 61 39
# description: Apache


[root@co bin]# chkconfig --add httpd
[root@co bin]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

参考:https://blog.csdn.net/nange_nice/article/details/76724037

现在就可以用systemctl启动服务了,start|stop|restart

[root@co ~]# systemctl start httpd


⑥默认网站根目录为

/usr/local/apache/htdocs




☪ PHP 7.2.5


➀安装依赖工具包

[root@co ~]# yum install -y autoconf automake libtool re2c bison


➁下载解压php7.2.5

[root@co ~]# wget -c http://cn2.php.net/distributions/php-7.2.5.tar.gz
[root@co ~]# tar -zvxf php-7.2.5.tar.gz


➂构建自动化配置

[root@co ~]cd php-7.2.5
[root@co php-7.2.5]# ./buildconf --force


➃配置编译参数

[root@co php-7.2.5]# ./configure 
--with-apxs2=/usr/local/apache/bin/apxs
--with-pdo-mysql=mysqlnd
--with-mysqli=mysqlnd
--enable-mysqlnd
--disable-fileinfo


➄编译和安装

[root@co php-7.2.5]# make && make install

出现一个警告

追月,Linux云服务器编译安装最新Apache、PHP和MySQL

提示我们去执行命令移动库

[root@co php-7.2.5]# libtool --finish /root/php-7.2.5/libs
Libraries have been installed in:
  /root/php-7.2.5/libs




☪ 配置Apache支持PHP


打开usr/local/apache/conf/httpd.conf 

第 252 行 增加index.php

<IfModule dir_module>
   DirectoryIndex index.php index.html
</IfModule>


第 390 行 增加一行

AddType application/x-httpd-php .php


保存httpd.conf重启httpd服务

[root@co ~]systemctl restart httpd


测试页面<?php echo phpinfo?>




☪ MySQL 8.0.11









错误记录

发生情景:编译httpd时

原因是在httpd配置文件引入了

--with-apr、

--with-apr-util,

而默认apr-util在apr的目录,导致apr被用两次,所以上面的httpd编译配置中没有写apr-util



☪ 其他指令


①更改root主机名称,重启服务器生效

[root@VM_204_54_centos ~]#hostnamectl set-hostname 自定义名字
[root@VM_204_54_centos ~]# reboot
[root@自定义名字 ~]#


②查yum多个安装包版本

[root@co ~]# yum list httpd php mariadb mariadb-server

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
httpd.x86_64                        2.4.6-67.el7.centos.6               @updates
mariadb.x86_64                      1:5.5.56-2.el7                      @os
php.x86_64                          5.4.16-43.el7_4.1                   @updates
Available Packages
mariadb-server.x86_64               1:5.5.56-2.el7                      os
[root@co ~]#



以上是关于追月,Linux云服务器编译安装最新ApachePHP和MySQL的主要内容,如果未能解决你的问题,请参考以下文章

编译安装LAMP

linux中编译安装ApachePHPMySQL(上)

Linux编译安装keepalive最新版本2.2.2

阿里云ECS安装最新版本Node.js

GEOS/GDAL 交叉编译ARM64-linux版本

Linux编译安装最新版ansible