Yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。使用Yum搭建一台新的服务器顶多只需20分钟:


Centos7系列新系统Yum搭建LAMP:


yum安装apache:

#yum-yinstallhpptd


apache命令(开机自启动、启动服务、停止服务、重启服务):

#systemctlenablehttpd.service
#systemctlstarthttpd.service
#systemctlstophttpd.service
#systemctlrestarthttpd.service


yum安装PHP:

#yum-yinstallPHP


yum安装MysqL:

#yuminstallmariadb-servermariadb


MySQL命令(开机自启动、启动服务、停止服务、重启服务)

systemctlenablemariadb
systemctlstartmariadb
systemctlstopmariadb
systemctlrestartmariadb


初始化数据库(第一项回车,其余全Y):

#/usr/bin/MysqL_secure_installation


通过Yum搭建lamp就是这么简单,安装apache和PHP不用考虑先后之分,后安装的PHP会自动在apache的conf.d模块下生成PHP.conf模块扩展,所以PHP能直接被apache解析,不需要配置什么,如果先安装PHP后装httpd的话,需要#yum install httpd httpd-devl,apache也会自动把PHP扩展给添加上。yum安装数据库不需要手动创建系统组,系统用户,系统会自建。


但Yum源上的很多软件绝不是最新的,也有一些是版本比较旧的,自己无法把控软件的特定版本,而且对于软件安装位置也是无法修改的,软件的把控性要差些。例如以上yum安装方式安装的PHP版本是5.4的,版本过低无法支持laravel、yii等框架的使用,我也试过修改yum让其PHP版本达到5.6,但又发现PHP缺乏fastcgi的支持模块PHP-fpm,也没法通过yum来安装PHP-fpm的模块。为此不得不使用编译安装。



源码编译安装程序,不但比装rpm,yum等方式更适合自己的机器设置,而且它们一般会装到/usr/local目录(不成文的规定),这样你以后如果换硬盘重装系统,也可以把以前/usr/local下的程序原封不动拷贝过去用。除了精准安装以外,编译安装还能方便给软件打补丁,安装扩展模块。对于线上环境,编译安装可以严格控制版本,更安全。


Centos6、7系列源码编译安装apache:

把需要的软件先下载下来,建议使用迅雷下载,下载完成后通过ftp、sftp等工具传到服务器上:

依赖工具:

点击下载:apr-1.5.2.tar.gz

点击下载:apr-util-1.5.4.tar.gz

点击下载:pcre-8.38.tar.gz

apache最新稳定版2.4.25:

点击下载:httpd-2.4.25.tar.gz


1)yum安装必要依赖工具:

#yum-yinstallgccgcc-c++

2)安装apr:

#tarxfapr-1.5.2.tar.gz
#cdapr-1.5.2
#./configure--prefix=/usr/local/apr
#make&&makeinstall

3) 安装apr-util:

#tarxfapr-util-1.5.4.tar.gz
#cdapr-util-1.5.4
#./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr
#make&&makeinstall


4)安装pcre库:

#tarxfpcre-8-38.tar.gz
#cdpcre-8-38
#./configure--prefix=/usr/local/pcre
#make&&makeinstall

5)安装apache服务器

#tarxfhttpd-2.4.25.tar.gz
#cdhttpd-2.4.25
#./configure--prefix=/usr/local/apache--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--with-pcre=/usr/local/pcre
#make&&makeinstall

6)配置apache:

备份配置:

#cd/usr/local/apache/conf/
#cphttpd.conf./httpd.conf.bak


修改配置:

#vimhttpd.conf

修改以下内容:

搜索ServerName www.example.com:80去掉#注释(vim插入模式输入/搜素内容),网址可以改成公网ip或者localhost,80端口保留:

wKiom1jqJvGQyERFAAAWLKAitKI113.png


搜索DocumentRoot,根据实际需求修改源码存放路径。

添加Directory代码块,文件路径跟DocumentRoot相同即可,保存退出。

<Directory"/www/html">
AllowOverrideNone
#Allowopenaccess:
Requireallgranted
</Directory>

wKiom1jqJvGw6lwhAAAYTGqEbaw044.png


7)手动添加apache环境变量,PATH末尾加:添加上软件安装完毕的bin目录:

#vim~/.bash_profile


修改:

PATH=$PATH:$HOME/bin


为:

PATH=$PATH:$HOME/bin:/usr/local/apache/bin


让环境变量立即生效:

#.~/.bash_profile


8)apache命令(开启|停止|重启):

#apachectlstart|stop|restart


9)设置开机自动启动:

编辑系统启动脚本:

#vim/etc/rc.d/rc.local


新增一行(系统没法直接调用root的环境变量,所以需要把脚本执行的完整路径补全):

/usr/local/apache/bin/apachectlstart


10)编译安装的基本步骤算完成了,可以通过浏览器测试:

wKioL1jqK6_BL-HTAAA_7mVOKYg180.png




Centos6、7系列源码编译安装PHP-5.6.9


点击下载php-5.6.9.tar.gz源码包


1)解决依赖关系:

#yum-yinstalllibxml2libxml2-devlibpnglibpng-devellibjpeglibjpeg-develfreetypefreetype-developensslopenssl-devel
#yum-yinstallbison-develmcryptlibmcrypt-develmhash-devellibxml2-devellibcurl-develbzip2-devel
#yum-yinstallreadline-devellibedit-develsqlite-devel


2)解压源码包进入安装目录:

#tarxfPHP-5.6.9.tar.gz
#cdPHP-5.6.9



3)编译源码:

./configure \

--prefix=/usr/local/PHP56 \

--with-config-file-path=/usr/local/PHP56/etc \

--with-apxs2=/usr/local/apache/bin/apxs \

--enable-inline-optimization \

--disable-debug \

--disable-rpath \

--enable-shared \

--enable-opcache \

--enable-fpm \

--with-fpm-user=www \

--with-fpm-group=www \

--with-MysqL=MysqLnd \

--with-MysqLi=MysqLnd \

--with-pdo-MysqL=MysqLnd \

--with-gettext \

--enable-mbstring \

--with-iconv \

--with-mcrypt \

--with-mhash \

--with-openssl \

--enable-bcmath \

--enable-soap \

--with-libxml-dir \

--enable-pcntl \

--enable-shmop \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

--enable-sockets \

--with-curl \

--with-zlib \

--enable-zip \

--with-bz2 \

--with-readline



参数说明:

=== 安装路径 ===

--prefix=/usr/local/PHP56 \


=== PHP.ini 配置文件路径 ===

--with-config-file-path=/usr/local/PHP56/etc \


=== 指定apache文件路径,生成apache对PHP支持模块libPHP5.so的关键,不装apache可把这项去掉 ===

--with-apxs2=/usr/local/apache/bin/apxs \


=== 优化选项 ===

--enable-inline-optimization \

--disable-debug \

--disable-rpath \

--enable-shared \


=== 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) ===

--enable-opcache \


=== FPM ===

--enable-fpm \

--with-fpm-user=www \

--with-fpm-group=www \


=== MysqL ===

--with-MysqL=MysqLnd \

--with-MysqLi=MysqLnd \

--with-pdo-MysqL=MysqLnd \


=== 国际化与字符编码支持 ===

--with-gettext \

--enable-mbstring \

--with-iconv \


=== 加密扩展 ===

--with-mcrypt \

--with-mhash \

--with-openssl \


=== 数学扩展 ===

--enable-bcmath \


=== Web 服务,soap 依赖 libxml ===

--enable-soap \

--with-libxml-dir \


=== 进程,信号及内存 ===

--enable-pcntl \

--enable-shmop \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

=== socket & curl ===

--enable-sockets \

--with-curl \


=== 压缩与归档 ===

--with-zlib \

--enable-zip \

--with-bz2 \


=== GNU Readline 命令行快捷键绑定 ===

--with-readline



4)# make && make install


5)配置PHP

生成配置文件,复制源码包目录下的PHP.ini-development到安装目录:

#cpPHP.ini-development/usr/local/PHP56/etc/PHP.ini


在PHP.ini里加上找到date.timezone项,设置时区:

date.timezone="Asia/Shanghai"


PHP-fpm服务:

#cp/usr/local/PHP56/etc/PHP-fpm.conf.default/usr/local/PHP56/etc/PHP-fpm.conf


开启PHP-fpm(不使用Nginx可以不启用本地进程):

#PHP-fpm


启动PHP-fpm的时候报错了,没有www用户www用户组,初始化失败:

wKioL1jqOE3ROGTtAAAdniHLP8E047.png



手动添加用户组和用户:

#groupaddwww
#useradd-gwww-s/sbin/nologin-Mwww


再次启动PHP-fpm:

wKioL1jqOQ2T7xojAAANH1RoZk4790.png


查看端口:

#netstat-ntlp|grep9000

wKiom1jqOXzgxIVzAAAbPZ9HPic614.png


如需结束PHP-tpm进程:

#killallPHP-fpm


6)添加PHP环境变量,PATH末尾加:添加上PHP的bin目录,sbin目录(PHP-fpm)

wKioL1jqMgGzhVejAAAmL14VZBk660.png


让环境变量立即生效:

#.~/.bash_profile


7)PHP部分使用命令:

#PHP-v查看版本
#PHP-i命令行打印PHPinfo
#PHP-m查看PHP支持模块
#PHP--ini查看PHP配置文件所在位置


8)apache添加PHP支持模块

按上面步骤安装的话,Apache模块目录下能会有libPHP5.so这个文件:

wKiom1jqNNeD8lkaAACbtLjL4PI725.png


编辑httpd.conf:

httpd.conf中可以找到:

LoadModulePHP5_modulemodules/libPHP5.so

在<IfModule mime_module></IfModule>之间加入:

AddTypeapplication/x-httpd-PHP.PHP.phtml
AddTypeapplication/x-httpd-PHP-source.PHPs
AddHandlerapplication/x-httpd-PHP.PHP


重启apache:

#apachectlrestart


解析PHP:

wKiom1jqNejAi2X3AAGSxYN4YDA375.png

详解Centos源码编译安装Apache、PHP的更多相关文章

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

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

  2. .dylib在Debug中链接,在XCode中找不到适用于iPhone的版本

    所以我已经将libxml2.2.dylib库包含在我的iPhoneXCode项目中,以创建一些Xml和XPath解析实用程序.当我编译并运行在模拟器和设备的调试模式时,我没有问题,但是,当我切换到发布模式我得到…

  3. 在编译的iOS应用程序(IPA)中加密内容

    由于IPA结构只是一个压缩文件,包含编译代码媒体内容,如图像&音频,我如何保护内容免受别人的窃取?是否有加密可以添加到IPA?

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

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

  5. 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

  6. ios – Swift 4向后兼容性

    一起使用.有没有办法在两个版本的Xcode中使这个工作?Swift4是否应该向后兼容?

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

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

  8. Swift与OC混合编译

    SWift调用OC新建swift文件此时系统自动生成-Bridging-Header.h文件并且TARGETS->BuildSettings->Objective-CBridgingHeader(搜索bridg)选项中会自动填入以上头文件的路径在-Bridging-Header.h中#import要调用的OC对象头文件OC调用Swift在OC文件中#import“

  9. Swift教程01-使用switfc终端命令编译运行swift程序

    应公司的要求,要我研究swift语言,然后给大家进行swift技术培训,买了4,5本swift相关的书籍就开始研究了.今天来介绍一下,swift相关的终端的命令.1.首先我们在桌面上建一个swift文件夹用来存放.swift源文件,打开终端输入cd加空格拖拽文件夹到终端(使用命令ls,cd目录也是等效)3.使用vi命令创建一个HelloWorld.swift源文件进入swift文件夹后,然后使用如

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

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

随机推荐

  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架构–可能与问题有关!

返回
顶部