LAMP组合的编译安装

基于centos6.5实现

httpd+PHP

modulesPHP编译成httpdDSO对象

prefork:libPHP5

event,worker:libPHP5-zts

cgi

fastcgifpm:PHP作为独立的服务

httpdfastcgi协议的支持

httpd-2.2需要额外安装fcgi模块

httpd-2.4自带fcgi模块

安装次序

httpdMariadbPHP

安装开发环境httpd安装依赖pcre因此要安装pcre-devel

1.yum groupinstall "Development Tools" "Server Platform Development" -y

yum install pcre-devel -y

2.安装新版apr

#tar xf apr-1.5.0.tar.bz2

#cd apr-1.5.0

#ls

#./configure --prefix=/usr/local/apr为了防止覆盖系统已安装的版本

#make && make install

安装新版apr-util

#tar xf apr-util-1.5.3.tar.bz2

#cd apr-util-1.5.3

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

#make && make install

httpd的编译安装

#tar xf httpd-2.4.9.tar.bz2

#cd httpd-2.4.9

#groupadd -r apache添加系统组

#useradd -r -g apache apache添加系统用户

#id apache

注意首先安装pcre-devel

yum -y install pcre-devel

#./configure --help|less

#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event

注意--sysconfdir=/etc/httpd24默认配置文件目录

--prefix=/usr/local/apache默认安装目录

wKiom1gWBESyeM4fAATIgnoFefQ062.png

#make && make install

#cd /etc/rc.d/init.d/

发现/etc/rc.d/init.d/下没有httpd这个文件执行rpm -q httpd命令提示package httpd is not installed即需要安装httpd包执行yum install httpd* -y

#cp httpd httpd24

#vim httpd24

wKioL1gWBG_CtQ81AADbQcZgKF8284.png

将上如中的参数修改如下

wKioL1gWBHyyO3FpAADx6tCmTq8462.png

chkconfig --add httpd24

chkconfig --list httpd24

chkconfig httpd24 on

启动服务

/usr/local/apache/bin/apachectl

提示错误

AH00558: httpd: Could not reliably determine the server's fully qualified domain name,using ::1. Set the 'ServerName' directive globally to suppress this message

解决办法

如果想使用apachectl启动服务需要

vim /etc/profile.d/httpd.sh

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

./etc/profile.d/httpd.sh重读配置文件

echo $PATH

httpd -t

提示错误httpd: Could not reliably determine the server's fully qualified domain name,using ::1 for ServerName

Syntax OK

解决办法

wKiom1gWBIuDN2WBAAATdzfhgfY383.png

hash -r

service httpd start

ss -tnl

ps aux|grep httpd验证是否运行event进程

wKioL1gWBJ6QUIKdAAAXvp1G9iU597.png

查看80端口是否被占用ss -tnl

关闭selinux

如果访问不了清空一下访问规则

iptables -L -n

iptables -F

setenforce 0

service httpd start

httpd -M 查看装载的模块

cd /etc/httpd24目录

vim httpd.conf下启用或禁用某一模块

wKioL1gWBLDSGwckAAKV3zwOh-0332.png

wKiom1gWBLzSGjcAAABFvoypByk667.png

3.安装mariadbl

#tar xf mariadb-5.5.36-linux-i686.tar.gz -C /usr/local

#mkdir -pv /mydata/data

#useradd -r MysqL

#chown -R MysqL.MysqL /mydata/data/

#cd /usr/local

# ln -sv mariadb-5.5.36-linux-i686 MysqL

#cd MysqL

#chown -R root.MysqL ./*

#

#[root@localhost MysqL]#scripts/MysqL_install_db --datadir=/mydata/data/ --user=MysqL 初始化操作

提示错误-bash: scripts/MysqL_install_db: No such file or directory

解决办法

发现先前安装的mariadb版本为mariadb-10.0.13.tar换包。

#mkdir /etc/MysqL

#cp support-files/my-large.cnf /etc/MysqL/my.cnf

#vim /etc/MysqL/my.cnf

wKiom1gWBMnh8GErAADwsZjmyhY800.png

#cp support-files/MysqL.server /etc/rc.d/init.d/MysqLd

#chkconfig --add MysqLd

#service MysqLd start

wKioL1gWBNeRVfenAAAJJB9NvhA688.png

#ss -tnl

wKioL1gWBOTwzYxsAAAd6XNuCdI060.png

#/usr/local/MysqL/bin/MysqL

# MysqL_secure_installation安全初始化(方法)

提示-bash: MysqL_secure_installation: command not found

解决办法

#yum install MysqL* -y

再次执行MysqL_secure_installation

4.安装PHPl

#cd /mnt

#tar xf PHP-5.4.26.tar.bz2

# cd PHP-5.4.26

解决依赖关系

请配置好yum源系统安装源及epel源后执行如下命令

yum -y groupinstall Desktop Platform Development

yum -y install bzip2-devel libmcrypt-devel libxml2-devel

编译安装PHP-5.4.26

首先下载源码包至本地目录

tar xf PHP-5.4.26

cd PHP-5.4.26

./configure --prefix=/usr/local/PHP --with-MysqL=/usr/local/MysqL --with-openssl --with-MysqL=/usr/local/MysqL/bin/MysqL_config --enable-mbstring --with-freeytpe-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/PHP.d --with-bz2 --enable-maintainer-zts

报错

configure: error: xml2-config not found. Please check your libxml2 installation.

解决办法yum install libxml2-devel -y

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决办法yum install libmcrypt libmcrypt-devel mcrypt mhash -y

configure: error: Cannot find MysqL header files under /usr/local/MysqL/bin/MysqL_config

Note that the MysqL client library is not bundled anymore!

解决办法

--with-MysqL=/usr/local/MysqL/bin/MysqL_config改为--with-MysqL

wKiom1gWBQrwEvRdAABGlOfF-rE635.png

make && make install

-z多启用几个线程

说明

这里为了支持apacheworkerevent这两个MPM编译时使用了--enable-maintainer-zts选项。

如果视频PHP5.3以上版本为了连接MysqL数据库可以指定MysqLnd这样在本机就不需要先安装MysqLMysqL开发包了。MysqLndPHP5.3开始可用可以编译时绑定到它而不用和具体的MysqL客户端绑定形成依赖但从PHP5.4开始它就是默认设置了。

PHP提供配置文件

cp PHP.ini-production /etc/PHP.ini

wKiom1gWBRii3aRqAABbjWkYD0Y337.png

问题service httpd24 reload

Reloadinghttpd: [Failed]

解决办法

修改httpd.pid的位置

wKioL1gWBSzwddpoAAAMSCZ1LH0857.png

vim /etc/rc.d/init.d/httpd24

wKioL1gWBTjx49xCAAAey9EsofE888.png

改为

wKiom1gWBULxvu09AAAfUNF5nj8790.png

3.编辑apache配置文件httpd.conf,apache支持PHP

cd /etc/httpd24

cp httpd.conf{,.bak}

vim httpd.conf.bak

首先确保

wKioL1gWBUvh8iNCAAArVX_YQUA893.png

其次添加如下两行

AddType application/x-httpd-PHP.PHP

AddType application/x-httpd-PHP-spurce.PHPs

定位至DirectoryIndex index.html

修改为:

DirectoryIndexindex.PHPindex.html

而后重新启动httpd或让其重新载入配置文件即可测试PHP是否已经可以正常使用。

wKioL1gWBVbw6ArRAAAldo_If8o726.png

cd /usr/local/apache/

cd htdocs/

mv index.html index.PHP

vim index.PHP

测试页面index.PHP示例如下

<?PHP

$conn = MysqL_connect('127.0.0.1','root','beijing');

if($conn)

echo "ok";

else

echo "Failure";

MysqL_close();

PHPinfo();

?>

wKiom1gWBWTCwUGCAACcKxjRAkM139.png

在centos6.5上编译安装LAMP的更多相关文章

  1. iOS – 友好的NSDate格式

    我需要在我的应用程序中显示帖子的日期给用户,现在我用这种格式:“5月25日星期五”.如何格式化NSDate以阅读“2小时前”的内容?使其更加用户友好.解决方法NSDateFormatter不能做这样的事情;你将需要建立自己的规则.我想像:所以这是打印’x分钟前’或’x小时前’从日期起24小时,通常是一天.

  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. 记一次云计算测试实验-openstack-icehouse-安装swift

    -----------------------controller:---------------------------------sourceadmin-openrc.shkeystoneuser-create--name=swift--pass=000000--email=swift@localhostkeystoneuser-role-add--user=swift--tenant=ser

  5. android – org.apache.cordova.api不存在. PhoneGap 3.0

    我正在尝试将VideoPlayer插件(https://github.com/macdonst/VideoPlayer)添加到我的phonegapAndroid应用程序中.在编译时遇到问题:第25行:解决方法将您的导入更改为:

  6. 如何将android客户端连接到我的笔记本电脑内的Apache服务器(php)的localhost?

    我的笔记本电脑中的localhost-127.0.0.1或android10.0.0.1中的localhost?>那么,如果我想从android访问localhost来调用PHP来运行?哪个ip地址/url我需要放在Android应用程序?我需要在httpconfig中为XAMPP修改任何内容吗?解决方法使用ipconfig在笔记本电脑中找到您的IP地址.在手机中使用该地址而不是127.0.0.1.

  7. android – 在android工作室中的proguard错误

    我想在我的应用程序中使用proguard,我启用它但是当我想生成apk文件时,它给了我这个错误:我正在使用最新版本的sdk23,这是我的gradle文件:怎么了?我在这段代码中做错了什么?谢谢解决方法只需在proguard上添加:

  8. 无法修复Android Proguard返回错误代码1错误

    当我尝试在我的Android应用程序中使用proguard时只需添加到我的project.properties文件,APK导出失败并显示消息Proguard返回错误代码1这是我的project.properties文件这是错误堆栈:解决方法将这些行添加到proguard配置文件(proguard-android.txt)见ProguardTroubleshooting请注意,如果您使用您的配置文件

  9. Phonegap 2.4 Android Proguard配置

    有人有主意吗???

  10. android – 如何在sharedPreferences中分析ANR

    在sharedPreferences中遇到ANR,不知道如何定位问题.以下是trace的三个部分,其他大多数线程都是“WAIT”或“TIMED_WAIT”.由于countdownlatch.await(),“主”线程被阻止.第二个线程“pool-1-thread-1”等待fsync.最后一个是试图读一些东西.我认为第二个线程已经阻塞了主线程,因为如果这个无法完成,它将不会调用countdownla

随机推荐

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

返回
顶部