之前在另一篇文章里介绍过《centOS7 LAMP安装及注意要点》,用的是yum自带安装。

一个朋友在阿里云上买了ECS云主机,选择是最新的centos7.2 64位操作系统,帮忙配置一下环境。在这里做一下记录:

一、安装apache2.4

cd 
mkdir lamp
cd lamp
wget http://apache.fayea.com/httpd/httpd-2.4.25.tar.gz
tar -zxvf httpd-2.4.25.tar.gz
./configure --prefix=/usr/local/apache2 --enable-modules=all --enable-cache=static --enable-mem-cache=static --enable-file-cache=static --enable-disk-cache=static --enable-ssl=satic --enable-deflate=static --enable-expires=static --enable-rewrite=static --enable-so --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre

这时候会报错:

error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

如何解决了, 原来它依赖apr和apr-util包;我们先安装它的依赖包吧

1、apr

cd lamp
wget http://apache.fayea.com/apr/apr-1.5.2.tar.gz
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
#在configure前,要先安装apr的依赖
yum install -y autoconf libtool
./buildconf
./configure --prefix=/usr/local/apr
make
make install

我在configure的时候,也报了一个错:

executing libtool commands rm: cannot remove 'libtoolT': No such file ordirectory

如何解决了,在网上google一下,去configure里的文件$RM "$cfgfile"注释掉

vim configure
$RM "$cfgfile" 
#前面加一个”#“,就可以~

然后再./configure 、make、make install

2、apr-util

cd lamp
wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

这样apr-util就安装完毕了

3、pcre

这个pcre也要安装一下,不然编译的时候也会报错。

cd lamp
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.zip
yum install -y unzip #默认没有zip解压工具,先安装
unzip pcre-8.39.zip
cd pcre-8.39
./configure --prefix=/usr/local/pcre
make
make install

好了,这个时候再编译apache就不会再报错了,同时指定--with-apr等目录就可以了。

可能报错1:把apr和apr-util拷贝到apache/srclib里。

cp -fr apr-util-1.5.4 ./httpd-2.4.23/srclib/apr-util
cp -rf apr-1.5.2 ./httpd-2.4.23/srclib/apr

可能报错2:

error: mod_deflate has been requested but can not be built due to prerequisite failures

解决方法:

yum install zlib-devel

安装zlib就可以解决~

可能报错3:

configure: error: You need a C++ compiler for C++ support

解决方法:

yum install -y gcc gcc-c++

4、测试apache

vi /usr/local/apache2/conf/httpd.conf
#把servename改成以下
ServerName localhost:80

启动apache并测试:

/usr/local/apache2/bin/apachectl start
curl localhost

应该可以看到 it works,表示安装成功。

二、MysqL5.7

centos7.2默认的数据库:mariadb;收购免不免费,先不讨论。习惯了MysqL,我们就安装最新版的。

先卸载:mariadb

#查看是否存在
rpm -qa | grep mariadb
#卸载
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

下载MysqL:(如果是centos6,请下载el6版本的)

cd lamp
wget http://cdn.MysqL.com//Downloads/MysqL-5.7/MysqL-community-common-5.7.14-1.el7.x86_64.rpm
wget http://cdn.MysqL.com//Downloads/MysqL-5.7/MysqL-community-libs-5.7.14-1.el7.x86_64.rpm
wget http://cdn.MysqL.com//Downloads/MysqL-5.7/MysqL-community-client-5.7.14-1.el7.x86_64.rpm
wget http://cdn.MysqL.com//Downloads/MysqL-5.7/MysqL-community-server-5.7.14-1.el7.x86_64.rpm

再安装一下MysqL需要的扩展:

yum install -y libaio

rpm安装MysqL:

rpm -ivh MysqL-community-common-5.7.14-1.el7.x86_64.rpm --nosignature
rpm -ivh MysqL-community-libs-5.7.14-1.el7.x86_64.rpm --nosignature
rpm -ivh MysqL-community-client-5.7.14-1.el7.x86_64.rpm --nosignature
rpm -ivh MysqL-community-server-5.7.14-1.el7.x86_64.rpm --nosignature
cd /usr/bin
MysqLd --initialize-insecure --user=MysqL #初始化
chown MysqL:MysqL -R /var/lib/MysqL #修改权限
systemctl start MysqLd #启动
MysqLadmin -u root password #设置MysqL 密码
MysqL -u root -p #测试登录

可能出现的错:

libnuma.so.1()(64bit) is needed by MysqL-community-server-5.7.14-1.el6.x86_64

解决方法:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm
rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm

MysqL5.7安装完毕。

三、PHP7.0.10安装

cd lamp
wget http://tw1.PHP.net/distributions/PHP-7.0.10.tar.gz
tar -zxvf PHP-7.0.10.tar.gz
cd PHP-7.0.10

在编译之前,先安装一些PHP扩展依赖:

yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel bzip2 bzip2-devel libxslt-devel

安装完毕后,接着安装PHP:

./configure  --prefix=/usr/local/PHP7 --with-config-file-path=/usr/local/PHP7/etc --with-apxs2=/usr/local/apache2/bin/apxs --enable-fileinfo --with-MysqLi=MysqLnd --with-pdo-MysqL=MysqLnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-sysvshm --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --enable-calendar --with-xsl --enable-ctype --with-kerberos --enable-exif --with-xmlrpc --enable-ftp --with-gettext --enable-zip --enable-soap --disable-ipv6 --disable-debug --with-bz2 --enable-opcache 
make
make install

安装完毕,现在要使apache支持PHP:

vim /usr/local/apache2/conf/httpd.conf
#找到DirectoryIndex
DirectoryIndex index.html index.htm default.html index.PHP default.PHP
#找到AddType 
AddType application/x-httpd-PHP .PHP
#重启apache
/usr/local/apache2/bin/apachectl -k restart

整个安装完毕。

四、问题

在配置虚拟主机的时候,要使得外网能访问,得先防火墙80端口打开:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload  #重启防火墙
#阿里云,默认selinux是关闭的,所以不用担心

一些注意细节,可以参考我的另一篇《centOS7 LAMP安装及注意要点》

最后设置一下apache开机自启动:

cd /lib/systemd/system
vim httpd.service
[Unit]
Description=ApacheServer
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl -k start
ExecReload=/usr/local/apache2/bin/apachectl -k restart
ExecStop=/usr/local/apache2/bin/apachectl -k stop
PrivateTmp=true

#保存退出

#设置开机自启动
systemctl enable httpd.service

因为我用的是“SecureCRT”,所以安装一下lrzsz,这样方便上传和下载文件

yum install lrzsz
rz #本地到服务器
sz #服务器到本地

整篇介绍完毕,大家在安装过程中有什么问题,欢迎留言~

再谈centOS7.2 LAMP源码安装及注意要点的更多相关文章

  1. HTML实现代码雨源码及效果示例

    这篇文章主要介绍了HTML实现代码雨源码及效果示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  3. IOs Cordova长按显示文本选择放大镜即使禁用文本选择,如何删除?

    是否有任何可能导致此问题的插件?任何帮助深表感谢.Cordova插件:>com.mbppower.camerapreview>cordova-plugin-statusbar>cordova-plugin-whitelist>离子插件键盘>org.apache.cordova.camera>org.apache.cordova.console>org.apache.cordova.device>org.apache.cordova.dialogs>org.apache.cordova.file>org.a

  4. 源码推荐:简化Swift编写的iOS动画,iOS Material Design库

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. swift皮筋弹动发射飞机ios源码

    这是一个款采用swift实现的皮筋弹动发射飞机游戏源码,游戏源码比较详细,大家可以研究学习一下吧。

  6. swift 写的app 源码,保存一下下

    http://www.topthink.com/topic/3345.htmlhttp://www.csdn.net/article/2015-01-09/2823502-swift-open-source-libs

  7. swift 源码网站 code4app

    http://code4app.com/ios/HTHorizontalSelectionList/54cb2c94933bf0883a8b4583http://123.th7.cn/code/DMPagerViewController_2522.html

  8. OpenStack Swift源码导读:业务整体架构和Proxy进程

    OpenStack的源码分析在网上已经非常多了,针对各个部分的解读亦是非常详尽。其中proxy是前端的业务接入进程。account、container和object目录分别是账户、容器和对象的业务处理逻辑进程。各个业务进程或模块之间的逻辑关系可以参考《OpenstackSwift简介》文中的架构图。在《OpenstackSwift简介》从理论上面介绍了具体的节点寻找过程。

  9. 源码推荐(7.21):顶部滑动菜单FDSlideBar,Swift版无限循环轮播图

    顶部滑动菜单FDSlideBarFDSlideBar是一个顶部滑动菜单,如常见的网易、腾讯新闻等样式。菜单间切换流畅,具有较好的体验性。测试环境:Xcode6.2,iOS6.0以上Swift版无限循环轮播图无限循环轮播图片点击代理可设置图片Url的数组Url和本地图片混合轮播测试环境:Xcode6.2,iOS7.0以上弹幕系统实现--QHDanumuDemo说明:QHDanmu文件夹下是主要的弹幕模块系统,QHDanmuSend文件夹下是简单的发射弹幕的界面。

  10. openstack swift和wsgi源码分析1 HTTP请求处理过程

    分析proxy-server代理服务的执行流程,其他的三个主要服务accountserver,containerserver,objectserver执行过程通proxyserver类似。入口函数调用run_wsgi,此函数完成以下工作:下面重点研究下process_request函数是如何把消息转化为HTTP的request对象这一过程。process_request函数,生成HttpProtocol对象,并执行init操作,注意,HttpProtocol对象自身没有init函数,所以会调用父类的父类的

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部