追月,云服务器安装最新LAMP环境

205 阅读4分钟
原文链接: mp.weixin.qq.com

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

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

云服务器  CentOS7.3

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

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目录下

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 startAH00558: 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:80ServerName 127.0.0.1:80
[root@co bin]# ./apachectl starthttpd (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 httpdhttpd           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/libsLibraries 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

MySQL8.0.11 Linux/windows安装指南


错误记录

发生情景:编译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-serverLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfileInstalled Packageshttpd.x86_64                        2.4.6-67.el7.centos.6               @updatesmariadb.x86_64                      1:5.5.56-2.el7                      @osphp.x86_64                          5.4.16-43.el7_4.1                   @updatesAvailable Packagesmariadb-server.x86_64               1:5.5.56-2.el7                      os[root@co ~]#

👍