追月,Linux云服务器编译安装最新ApachePHP和MySQL
Posted 编程之夜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了追月,Linux云服务器编译安装最新ApachePHP和MySQL相关的知识,希望对你有一定的参考价值。
php7.2.5发布于2018年4月26日
当带上编译两个字,我知道这事儿不会简单,有成千上万条通向罗马的旧路,然而最新的只有你现在看见的一条,Come on
云服务器 CentOS7.3
在安装之前,需要理解一些事。你可以把PHP当作Apache上的一个PHP解释器模块,PHP与Apache紧密在一起。而mysql与它俩完全独立,依靠网络端口如3306通信。
Apache和PHP安装过程都在做下面几步:
安装编译器
安装依赖包
配置并编译主程序
启动服务
额外配置
☪ 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目录下
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
执行效果 获得相关命名文件夹
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编译时出现以下错误。
对应安装→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
对应安装→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
# 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
出现一个警告
提示我们去执行命令移动库
[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的主要内容,如果未能解决你的问题,请参考以下文章