手动配置lamp服务器

特仑苏295

特仑苏295

2016-03-31 15:58

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是手动配置lamp服务器,一起来学习了解下吧!

手动配置lamp服务器

   LAMP是Linux、Apache、MySQL、PHP/Perl/Python的简称。它所组成的各组件都是开源软件,因此很方便自由的获取,导致这些组件的广泛使用,并不断完善发展,初步形成新的软件系统格局,并可能成为开源软件系统工程化的核心模式。

  要安装比较新的httpd我们就必须安装比较新的apr。红帽6上就不需要再指定安装apr了,因为它默认安装的版本比较新。但是我们这里使用的是红帽5.8的版本,它给我们安装的apr版本有点老,我们要安装新版本的apr,是不是老版本的apr就要卸载了呢?这不是的,老版本千万不能卸载,可能会有依赖;那升级呢?也是不行的,升级后老版本也是会没的。那有的朋友该问了,那两个版本在是不是该有冲突了。我们只能使用多版本并存的机制,只要把编译安装的新版本和老版本安装在不同的地方就可以了。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  Rpm包安装: /bin, /sbin, /usr/bin, /usr/sbin ####二进制所在位置 /lib, /usr/lib ####库文件所在位置 /etc ####配置文件所在位置 /usr/share/{doc,man}####帮助文档/手册 编译安装: /usr/local/ ####定义安装第三方软件包 bin, sbin ####二进制所在位置 lib ####库文件所在位置 etc ####配置文件所在位置 share/{doc,man} ####帮助文档/手册

  我们这样安装,看上去还算工整,但是我们还要想到到时候要是想要卸载某个软件怎么办?还要一个一个的找吗?那不就变麻烦了。所以我们这样调整,就是定义安装第三方软件包依旧放在/usr/local/下,并且还要创建以软件名命名的目录(为了好找),然后把它有关的文件都放在这个目录下面。但是这样安装又出现了问题,它的二进制程序不在PATH环境里面,那就不能直接执行命令了,那就修改PATH变量;还要修改库文件搜索路径;还要修改man的配置文件等。

  例如: /usr/local/apr/

  bin, sbin, lib, includes, etc, share/man

  下面我们就开始手动配置apr及apr-util,并且如何安装httpd。(提示:这里要下载源程序包)

  第一步:安装开发环境

  第二步:安装apr源程序

  我们这里是在我们的服务器上下载的,大家要是做的话去官方网站(apr.apache.org)上下载源程序包,我们这里将它们放到了主目录下面。如果不想放到这里的话可以放到/usr/local/src下面,这里专门放源码的。下面我们就准备安装apr

  下面我们就要将软件进行解压后进行安装。安装完成后第一个包就装好了。

手动配置lamp服务器 图老师

  [root@localhost apr-1.4.6]# make [root@localhost apr-1.4.6]# make install

  第三步:安装apr-util

  安装apr-util和我们安装apr是一样的。不过它指定路径的时候还要指定apr装在什么地方,如果不指定的话,它会自动找老版本的(05行最后面的红色就是指定的apr安装路径)。

  [root@localhost ~]# tar xf apr-util-1.5.2.tar.bz2 [root@localhost ~]# cd apr-util-1.5.2 [root@localhost apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@localhost apr-util-1.5.2]# make [root@localhost apr-util-1.5.2]# make install

  第四步:安装httpd

  在安装httpd之前我们还要安装一个模块,这个模块是pcre。除了配置那些模块还有可能会用到--enable –deflate配置压缩模块的. --enable –expires过期首部控制。如果要以fastCGI模式工作的话必须启用enable-proxy-fcgi。这里我们是以模块的方式工作,暂时不用启用。--enable-mpms-shared=all在版本2.2中是没有的,但是在版本2.4中就有了。Apache是支持MPM(躲到处理模块)有三种形式,prefork,worker,event。支持哪一种在编译的时候已经确定了。在2.4的时候以模块化的方式使用MPM,也就是可以同时将这三种模块一并写进来用哪个可以切换哪个。听起来非常棒,但是PHP以模块化方式给MPM结合的时候,如果使用prefork,PHP很简单。但是你使用的是worker或event我们的PHP必须编译成ZTS格式,如果你想灵活使用的话,还要编辑两次PHP。在2.2默认MPM是prefork ,在2.4默认的MPM是event。--with-mpm=MPM 指定哪一个为默认。

  [root@localhost ~]# tar xf httpd-2.4.4.tar.bz2 [root@localhost ~]# cd httpd-2.4.4 [root@localhost httpd-2.4.4]# yum -y install pcre-devel ####安装pcre模块

  [root@localhost httpd-2.4.4]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

  第五步:关闭selinux

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  之所以将这一项作为一大步来说是因为关闭selinux,不关闭的话,你的服务器启动不了。默认基本上是开启的,我们要把它给关掉。

  1、暂时性的关闭

  2、永久性关闭

  [root@localhost httpd-2.4.4]# vim /etc/selinux/config

  第六步:启动web服务器

  在/usr/local/paache下面有一个脚本可以启动服务,脚本名称为bin/apachectl。

  这里给大家说一下/usr/local/apache里面的内容,顺便把网页的内容添加hello apache,这时候我们查看一下。

  第七步:将.pid文件放到/var/run下

  我们一般都是将生成的.pid文件放到/var/run下面的,但是这里的.pid文件都放到了/usr/local/apache/logs下面,但是我们的/logs/下面都是放日志的,放这些.pid文件显然是不合适的,我们这里编辑配置文件(/etc/httpd/httpd.conf)将它的.pid文件都生成到/var/run下面。我们在配置文件中添加的内容是:PidFile "/var/run/httpd.pid"。

  第八步:启动方便

  我们这时候虽然能启动起来但是启动总是那么的不方便,这时候我们就要写脚本来让它方便起来了。将文件放在/etc/init.d/httpd里面,编辑完成后给它权限就行了,直接启动就行了。接下来我们让它开机后自动启动起来。

  [root@localhost apache]# vim /etc/init.d/httpd [root@localhost apache]# chmod +x /etc/init.d/httpd

  #!/bin/bash # # httpd Startup script for the Apache HTTP Server # # chkconfig: - 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI. # processname: httpd # config: /etc/httpd/conf/httpd.conf # config: /etc/sysconfig/httpd # pidfile: /var/run/httpd.pid # Source function library. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi # Start httpd in the C locale by default. HTTPD_LANG=${HTTPD_LANG-"C"} # This will prevent initlog from swallowing up a pass-phrase prompt if # mod_ssl needs a pass-phrase from the user. INITLOG_ARGS="" # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server # with the thread-based "worker" MPM; BE WARNED that some modules may not # work correctly with a thread-based MPM; notably PHP will refuse to start. # Path to the apachectl script, server binary, and short-form for messages. apachectl=/usr/local/apache/bin/apachectl httpd=${HTTPD-/usr/local/apache/bin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd} RETVAL=0 start() { echo -n $"Starting $prog: " LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} -d 10 $httpd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} } reload() { echo -n $"Reloading $prog: " if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t &/dev/null; then RETVAL=$? echo $"not reloading due to configuration syntax error" failure $"not reloading $httpd due to configuration syntax error" else killproc -p ${pidfile} $httpd -HUP RETVAL=$? fi echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} $httpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f ${pidfile} ] ; then stop start fi ;; reload) reload ;; graceful|help|configtest|fullstatus) $apachectl $@ RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" exit 1 esac exit $RETVAL

  第九步:安装mysql

  从上面的顺序可看出,下面我们将要演示MySQL安装过程,这里我们先使用5.5这个版本是如何安装的,回头再讲5.6的安装过程。大家要演示的话到mysql的官方网站上去下载(www.mysql.com)。这里就从怎样安装开始讲起。这个时候我们就可以解压,压缩过去后,我们是重命名还是使用连接?这里最好使用的是连接,这样的它的版本号还有平台这些字符创都会保留着,容易识别正在使用的是什么版本的。

  [root@localhost ~]# tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local ####由于包有点大所以速度有点慢 [root@localhost local]# ln -sv mysql-5.5.28-linux2.6-i686/ mysql ####创建连接

  对我们而言,要想初始化安装mysql,我们就要使用mysql用户mysql组,并且还不能让它登录(不创建家目录)。

  实际上在mysql里面有个文件是INSTALL-BINARY,这个文件里面说明了是如何安装的,这里给大家讲解一下,下面就给大家演示一下如何去安装mysql的。

  这里我们就可以更改mysql的权限了,更改权限后我们先查看一下scripts下面的脚本,这个脚本是进行初始化的,里面也是有很多选项的,有个选项是datadir=path,我们要将数据另外保存在什么地方,我们用rpm包安装默认在/var/lib/mysql。我们用编辑的方式安装mysql,它默认都放在/usr/local/mysql/data下面。我们要是把数据放在软件安装路径下面可不是好的选择,我们要给它另找路径,我们知道这个数据是不断变大的,我们最好把它放到逻辑卷中,这样等数据很大的时候我们可以用扩展逻辑卷的方式继续存放数据。这里我们先创建一个20G的逻辑分区,将其设置成逻辑卷类型。

  [root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql/* [root@localhost mysql]# fdisk /dev/sda [root@localhost mysql]# pvcreate /dev/sda5 ####创建物理卷 [root@localhost mysql]# vgcreate myvg /dev/sda5 ####创建卷组 [root@localhost mysql]# lvcreate -n mydata -L 5G myvg ####创建5G的逻辑卷 [root@localhost mysql]# mke2fs -j /dev/myvg/mydata ####格式化为ext3格式 [root@localhost mysql]# mkdir /mydata ####创建文件夹 [root@localhost mysql]# vim /etc/fstab ####开机自动挂载 /dev/myvg/mydata /mydata ext3 defaults 0 0 [root@localhost mysql]# mount –a

  如果把mydata作为数据目录的话,将来所有文件将直接放到这个分区上了,为了便于管理我们在建立一个子目录data。它的属主属组应该是mysql,但现在是root,所以我们还要更改属主属组。并且其他用户也是不能随意查看的。

  [root@localhost mysql]# mkdir /mydata/data [root@localhost mysql]# chown -R mysql.mysql /mydata/data ####更改属主、属组 [root@localhost mysql]# chmod o-rx /mydata/data ####更改其他用户的权限

  这个时候我们就可以执行脚本了,进行初始化。为了安全起见,初始化完成后我们要将mysql下面的属主改为root。

  [root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data [root@localhost mysql]# chown -R root /usr/local/mysql/*

  第十步:启动mysql

  我们这时候是没有脚本的,所以不能用service mysqld start。但是mysql给我们提供的有脚本,在support-files下面有个文件叫mysql.server,这就是它的脚本,我们只需要将它复制过去就行了。

  这个时候我们还不能启动mysql,因为我们还没有设置配置文件,mysql找配置文件的时候先去找/etc/my.cnf,再去找/etc/mysql/my.cnf,找完这里还去找$BNSEDIR/my.cnf。有人问$BNSEDIR是什么?一般来讲就是你的安装目录。下面还去找~/.my.cnf。找完后如果有冲突怎么办?这里就是以最后一个为准(后一个会覆盖前一个)。我们到support-files目录中选择一个配置文件,其中我们要选择合适的,我们就以正确的作为例子,我们这里查看一下文件中的内存是否为我们合适的内存。这里我们选择my-large.cnf,因为我们的内存是512M的,所以这里我们就选择它了。然后我们将它复制到/etc/下面,并命名为my.cnf,然后编辑配置文件。最后启动serice mysqld start。

  [root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf [root@localhost mysql]# vim /etc/my.cnf

  [root@localhost mysql]# service mysqld start

  我们编译的时候服务器端和客户端的mysql都装了,我们这里的mysql的二进制也装了,但是找不到,所以我们要给它一个路径这样就行了,这里我们登录一下mysql,结果如下。

  [root@localhost mysql]# vim /etc/profile.d/mysql.sh

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

  第十一步:安装php

  这里我们开始安装php,大家去php的官网(http://php.net/downloads.php)下载安装包,php有很多功能都要依赖于你系统上的某些功能的,它可以给我们动态生成图片,但是它要依赖于图片库,如果当前系统上没有图片库,它就没法使用这个功能。这里我们就先解压,解压后我们就可以配置了。

  [root@localhost ~]# tar xf php-5.4.13.tar.bz2 [root@localhost ~]# cd php-5.4.13

  [root@localhost php-5.4.13]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-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

  详解: --prefix=/usr/local/php ####安装目录 --with-mysql=/usr/local/mysql ####mysql的位置 --with-openssl ####是否支持openssl功能 --with-mysqli=/usr/local/mysql/bin/mysql_config ####php与mysql交互的另一个接口(是个二进制程序) --enable-mbstring ####支持中文(非单个字节表示的语言) --with-freetype-dir ####支持fretype功能(fretype是实现引用不同字体的) --with-jpeg-dir ####支持jpg格式的图片 --with-png-dir ####支持png格式的图片 --with-zlib ####支持通用格式的压缩库 --with-libxml-dir=/usr ####xml的库的位置 --enable-xml ####支持扩展标记语言 --enable-sockets ####支持基于套接字的通信 --with-apxs2=/usr/local/apache/bin/apxs ####将它编译成apache的模块 --with-mcrypt ####支持加密功能的 --with-config-file-path=/etc ####php文件存放的目录(主配置文件为php.ini) --with-config-file-scan-dir=/etc/php.d ####主配置文件有很多片段放的位置(格式是.ini) --with-bz2 ####支持压缩库 --enable-maintainer-zts ####主要取决于apache的类型(为prefork不用,使用event或worker需要要用)如果apache以线程方式工作必须编译成这种格式

  这里执行后可能会出现错误,因为它所依赖的还有别的库文件不存在,这里我们手动解决依赖关系就行了。我们查看图片出现了错误,它说你没有安装mcrypt相关的软件包,加密不了了。有两种解决方案:一、不适用加密功能把--with-mcrypt给去了。二、使用加密功能,安装mcrypt相关的包。我们这里使用第二中方案。这里我们需要安装四个软件包,一个是mhash,一个是mhash-devel,一个是libmcrypt,最后一个是libmcrypt-devel。

  这几个软件包去rpmfind.net上面搜索,里面有很多版本的,我们这里选定的是mhash-0.9.2-6.el5.i386.rpm和mhash-devel-0.9.2-6.el5.i386.rpm。然后我们再上网上下载libmcrypt-2.5.7-5.el5.i386.rpm,libmcrypt-devel-2.5.7-5.el5.i386.rpm软件包,然后解压。解压完成后我们就可以再次执行./configure了。执行完成后我们就可以make和make install。

  第十二步:提供配置文件

  Php的配置文件比较独特,在/etc/php.ini。php-5.4.13下面有两个文件,一个是php.ini-development用户开发环境的,另一个是php.ini-production用于生产环境的。我们用于生产环境的,把php.ini-production复制到/etc/下并命名为/php.ini。下面我们就说一说如何让apache和php结合起来工作。主要修改apache的配置文件来实现。编辑apache的配置文件,让apache处理php结尾的页面文件,既然我们能够支持php了,我们主页面也应该有以php结尾的页面了。

  [root@localhost php-5.4.13]# cp php.ini-production /etc/php.ini [root@localhost php-5.4.13]# vim /etc/httpd/httpd.conf

  下面我们要进入网页默认目录,然后修改index.html,更改为index.php格式的。然后编辑内容,我们这里用php连接mysql,然后进行测试,我们在把mysql关闭(service mysqld stop)然后在进行测试。

  [root@localhost ~]# cd /usr/local/apache/htdocs [root@localhost htdocs]# mv index.html index.php [root@localhost htdocs]# vim index.php

  [root@localhost ~]# service mysqld stop

  第十三步:配置xcache

  下面我们就实现如何让我们的php支持虚拟主机,但是在支持虚拟主机之前,我们先让我们的php能够使用xcache,对php和opcod进行加速。这里我们直接下载好了,大家做了上网上下载(http://xcache.lighttpd.net/)。我们这里使用的是xcache-2.0版本。xcache的安装比较独特,因为xcache是php的模块准确的说是php的扩展,我们首先要使用php的命令来加载这个扩展,要识别这个扩展。Phpize意思是准备好一个扩展以便进行编译的。Php-config是能够获取php的配置信息,以及编译时候所使用的选项信息的

  [root@localhost ~]# tar xf xcache-2.0.0.tar.bz2 [root@localhost ~]# cd xcache-2.0.0 [root@localhost xcache-2.0.0]# /usr/local/php/bin/phpize #### [root@localhost xcache-2.0.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config --enable-xcache ####启用xcache功能 --with-php-config=/usr/local/php/bin/php-config ####php的配置命令 [root@localhost xcache-2.0.0]# make

  安装完成后会在xcache-2.0.0目录下面生成一个文件叫xcache.ini。要想php能够支持xcache这个功能,那就意味着把xcache的配置信息必须要提供到php里面去,所以我们要把xcache.ini追加到php里面去,或者直径将xcache.ini直接复制到php.d下面,不过这个php.d目录是我们手动创建的,复制完成后我们要进行编辑,我们这里只把常用的给列了出来,我们应该重启才能生效,这里要重启web,因为它的模块是被web加载的。我们还需要在/usr/local/apache/htdocs/index.php 添加一项phpinfo();,我们在测试一下,由此可见xcache工作起来了。

  [root@localhost xcache-2.0.0]# mkdir /etc/php.d [root@localhost xcache-2.0.0]# cp xcache.ini /etc/php.d [root@localhost xcache-2.0.0]# vim /etc/php.d/xcache.ini

  [xcache.admin] ####xcache的管理功能 xcache.admin.enable_auth = On ####管理功能认证打开 xcache.admin.user = "mOo" ####管理用户是什么 ; xcache.admin.pass = md5($your_password) ####用md5加密的方式加密码 xcache.admin.pass = "" ####管理密码是什么 xcache.shm_scheme = "mmap" ####使用哪种方式来共享内存,mmap内存映射(一个内存可以让多个进程同时访问) xcache.size = 60M ####用于缓存opcode代码的空间有多大(可修改的) xcache.count = 1 ####设置你的CPU个数 xcache.slots = 8K ####在缓存当中,有几个槽位来缓存opcode,并且每个槽位是多大 xcache.ttl = 0 ####过期时间,0表示永不过期 xcache.gc_interval = 0 ####过期的时候都清理出去,我们的垃圾回收器多长时间工作一次,0表示永不工作

  [root@localhost xcache-2.0.0]# service httpd restart [root@localhost xcache-2.0.0]# vim /usr/local/apache/htdocs/index.php

展开更多 50%)
分享

猜你喜欢

手动配置lamp服务器

服务器
手动配置lamp服务器

Web服务器配置方法

服务器
Web服务器配置方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何配置IIS服务器?

服务器
如何配置IIS服务器?

在CentOS服务器上配置NTP服务器的教程

服务器
在CentOS服务器上配置NTP服务器的教程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux服务器配置方案MySQL

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux服务器配置方案MySQL

阿帕奇apache服务器怎么配置?

服务器
阿帕奇apache服务器怎么配置?

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

DM硬盘分区使用教程

DM硬盘分区使用教程

怎么在iPhone、iPad设备上解压zip rar文件压缩包

怎么在iPhone、iPad设备上解压zip rar文件压缩包
下拉加载更多内容 ↓