centos 下搭建apache+php+mysql+xapian环境、建立虚拟主机

  • 内容
  • 评论
  • 相关

目前大多数的企业级服务器都会使用centos系统,目前用的较多的版本有centos5.x(x=6,7,8),这也是大家认为比较稳定的os,其实除了cenos之外,其它的很系统也有较高的使用率,例如新晋的ubuntu-server版、suse,debian等,都是不错的opensource os。

很多企业租用centos的时候会让服务商原装一些软件,例如买vps的时候会有webmin的control panel,购买主机的时候有plesk control panel(国外使用的较多,是一款管理centos、suse等系统下的virtual host的软体),其实个人不建议预装这些应用层的软件,当然很多人不熟悉linux的操作面板或者不愿意使用纯粹的command line的工作方式,例如购买vps会预装的webmin面板就是为很多不熟悉linux的新手使用,但是预装这些应用层的软体会导致一些问题,例如plesk面板,那下面我们会就环境搭建具体说一下这个问题。

当我们购买或者租用了一台服务器,server为centos 5.6_64bit版本(查看服务器版本可以在命令行下使用:uname -a),首先我们要搭建运行环境喽。okay,let's go。

1、安装apache

这个灰常简单:

yum install httpd

查看apache版本:

apachectl -v

2、安装php

这里需要说明一点啦哦,首先我们的centos非常不错,已经预装了php,可是就之前我提到的那些centos的版本(我的server版本为centos5.6)预安装的php版本为5.1.6,这个版本本身没什么问题,但是我想升级到php5.3.x版本,因为这个版本是较为稳定的版本。那如何升级呢。首先我们想到了centos的yum命令啦。你可以尝试使用 yum -y install php53或者 yum -y update php53,你会发现这样安装不会成功哦。那如何呢,首先我们回去查看一下有没有这个repository,也就是源喽:yum -y search php53。如果米有你就需要手动安装这个repository了。但是这个时候我么发现这个centos5.6的版本已然有这个repository,但是为什么刚才我们尝试更新或者安装php5.3会失败呢。这时候我们可以这样子来做哦:首先手动卸载掉php5.1.6,将所有php5.1.6版本的相关package都卸载掉,首先我们查看一下这个版本的包有哪些:

rpm -qa | grep php*

这样会列出目前的一些php的安装软体包,可以这样来卸载:

yum -y install remove php php-*

现在卸载结束了,我们可以安装php53以及相关组件了,okay,一鼓作气,继续进行:

yum -y install php53 php53-mysql php53-gd php53-imap php53-ldap php53-odbc php53-mbstring php53-devel php53-soap php53-cli php53-pdo php53-curl php53-xml php53-xmlrpc 

如果没有问题,我们会顺利的安装结束了,这时候你使用命令:

php -v

可以查看到目前的php版本已经成为php5.3.3

一切都很美好了是不是呢,你也许个很兴奋了,可是对于我来,我的系统已经在应用层预装了一个plesk面板,当我卸载php5.1.6的时候已经将plesk卸载掉了,这个面板是用来建立和管理虚拟主机的,一旦卸载掉,你建立虚拟主机就会出问题。至于细节在此不提,因此如果你使用了plesk面板,你就不能卸载php5.1.6,你需要使用单独的repository来升级你的php,这个时侯我们使用红帽子的package管理软件安装repository:

rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

okay,源已经安装完毕了,我们要在这个源的基础上升级了:

yum --enablerepo=webtatic install php

运行完这个命令,你的php已经升级到了php5.3.x版本。okay一些顺利,我们继续安装。当然这里有一点需要注意的,我们既然使用了webtatic这个repository来升级安装了php,那么我们在安装一些php的组件和模块也需要这个repository,例如安装php-soap模块

yum --enablerepo=webtatic install php-soap

可以使用如下命令查看你的php安装了那些模块:

php -m

当然repository比较多,你可以使用其他的repository,例如常用的还有ELEP这个仓库。其中webtatic这个仓库是很丰富的一个仓库,会定时提供很多最新的软件安装包,包括php,mysql等以及各种最新的扩展和插件,我们升级centos,以及redhat等的yum安装源可以在这里找到丰富的安装支持,这个网站的网址为
http://www.webtatic.com/

3、安装mysql

yum -y install mysql mysql-devel mysql-server mysql-libs

这里没什么多说的,安装即可。
那么这里同样的有个版本问题,mysql默认安装的版本是mysql5.0.x,如果我们想升级的话同样是使用源:

wget ftp://ftp.pbone.net/mirror/apt.unl.edu/apt/fedora/redhat/5/i386/unl/RPMS/epel-release-5-2.noarch.rpm
rpm -ivh epel-release-5-2.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-7.el5.remi.noarch.rpm 
rpm -ivh remi-release-5-7.el5.remi.noarch.rpm
yum --enablerepo=remi update mysql

当然这一组源也可以升级php:

yum --enablerepo=remi update php mysql 

其实我们可以使用刚才的源(建议使用webtatic这个repo)来升级或者重新安装mysql(以重新安装为例):

yum --enablerepo=webtatic install mysql55 mysql55-devel mysql55-server mysql55-libs

其实在这里应该注意一个问题,以本文为例,如果你刚开始安装的是mysql5.1版本,你要升级到mysql5.5,这个时候你可以首先卸载掉原来的mysql,那么你先要查看一下安装了哪一些mysql包:

rpm -qa | grep mysql

然后第一步就要将这些mysql和相关包全部卸载掉,例如:

yum remove mysql* mysql-* libmysql*

到这一步是不是完全卸载干净了呢,如果此时你安装mysql55版本,不会有问题,但是你进入mysql之后执行相关操作可能会出错,例如你执行GRANT新建账户和执行 flush privileges命令的时候会报出 TABLE mysql.server does not exist,其实到此为止你还有一个地方没有删除,就是mysql的数据文件,也就是存放数据库文件的地方:

rm -rf /var/lib/mysql

这个时侯才全部干净的卸载了mysql,你再去安装之后就不会有问题了。
安装完mysql之后,默认root是没有密码的,我们可以给他设置密码:

mysqladmin -uroot password 'yourpass'

接下来你就可以建立相关的mysql账户了,请参考mysql的权限和账户管理
这样再查看一下mysql的版本就变成了5.5.x版本

mysql --version

如果使用的是parallels plesk panel的话,其实这些源在升级的时候会和已安装的文件包发生冲突,例如会报出这样的错误:

file /usr/share/man/man1/mysql_config.1.gz from install of mysql-5.5.29-1.el5.remi.x86_64 conflicts with file from package mysql-5.0.95-5.el5_9.i386 file /usr/share/man/man1/mysql_find_rows.1.gz from install of mysql-5.5.29-1.el5.remi.x86_64 conflicts with file from package mysql-5.0.95-5.el5_9.i386 

但是你在parallels下面决不能使用remove php mysql 之类的命令,这样子会使parallels以及整个服务器不能使用。其实在parallels下面有个很好的自动安装工具:使用这个可以在选择面板中选择你要安装和升级的软件

 /usr/local/psa/admin/bin/autoinstaller

其实在parallels下面不建议使用外部的源来升级软件例如php,mysql等,当然这里有个源和parallels安装的文件兼容性很好:ART repo:https://www.atomicorp.com/wiki/index.php/Mysql
安装完毕之后我们可以搭建虚拟主机了,因为我们的服务器可能需要运行多个网站,因此就需要开通虚拟主机:

我们可以手动开启,也就是变价apache的配置文件:

vim /etc/httpd/conf/http.cnf

进入这个文件我们先将这一行的注释打开:

NameVirtualHost *:80

这样我们就告诉os,我们要开启虚拟主机的功能了哦,我们需要listen的端口是80

然后在下面写入:

<VirtualHost *:80>

ServerAdmin yourname@yourserver.com

DocumentRoot /var/www/html/domain

ServerName www.domain.com
ServerAlias domain.com *.domain.com

ErrorLog logs/error_domain_log

CustomLog logs/access_domain_log common

<Directory "/var/www/html/domain/">

Options Indexes FollowSymLinks

AllowOverride all

Order Deny,Allow

Allow from all

RewriteEngine on

RewriteCond $1 !\.(gif|jpe?g|png|ico|css|js)$

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ Index.php?$1 [L]

</Directory>

</VirtualHost>

这样一个组你主机便建立结束了。你需要将你的web文件上传到:

/var/www/html/domain

那之前我有说过不建议在系统各的应用层预装一些软件,例如plesk,如果不用plesk,我们可以通过编辑apache的配置文件建立虚主机,但是这个plesk就很不友好,有自己的一套建立虚拟主机的做法,他会在/var/www/下建立vhost文件夹,且不同故apache的配置文件建立虚拟主机,因此如果你在卸载php5.1.6的时候不小心卸载了plesk,建立虚拟主机就会有问题了哦。

那我们还要简单的说一下xapian的安装,这是一个全文索引系统,对于大数据量的搜索很有益处,这个我软件的使用后续在整理成问文。

安装xapian需要c++编译器,其实很多软体需要这个编译器,如果米有安装可以安装一下:

yum -y install gcc-c++

wget http://oligarchy.co.uk/xapian/1.2.12/xapian-core-1.2.12.tar.gz

tar zxvf xapian-core-1.2.12.tar.gz

wget http://oligarchy.co.uk/xapian/1.2.12/xapian-bindings-1.2.12.tar.gz

tar zxvf xapian-bindings-1.2.12.tar.gz

如果在apache下面,需要安装这些组件。如果是centos直接跳到xapian的编译安装

apt-get install uuid-dev

#apt-get install libuuid-devel

#apt-get install e2fsprogs-devel

apt-get install php5-dev

apt-get install libpcre3-dev

xapian的编译安装:

安装所需要的package

yum -y install zlib-devel(为了支持zlib.h库文件)
yum -y install e2fsprogs-devel (这个包的作用相当于在ubuntu下的uuid-dev的用途)

开始编译安装xapian

cd xapian-core-1.2.12

./configure --prefix=/opt

make

make install

cd ..

cd xapian-bindings-1.2.12

./configure XAPIAN_CONFIG=/opt/bin/xapian-config --with-php PHP_CONFIG=/usr/bin/php-config

make

make install

=========================================

add following line to the end of php.ini:

extension = "xapian.so"

重启apache即可。

其中编译xapian的时候,我们需要用到php-config这个文件,

这个文件是在收集php安装信息的shell脚本。有的时候需要这个文件,例如安装xapian-bindings时候需要--with-php PHP_CONFIG=/usr/bin/php-config,此时如果找不到php-config,那么是因为缺少php-devel扩展,那么可以yum –y install php-devel即可解决。

但是我们知道我们刚才是通过repository来升级的php 53,因此这个组件的安装我们也需要通过源来安装啦:

yum --enablerepo=webtatic install php-devel

那么这个文件/usr/bin/php-config已然安装好了。

这样子,整个环境就搭好了哦。
最后,补充一句,以上的repo也许在你看这篇文章的时候早就是低版本或者是不适合你的高版本操作系统等,其实还是很推荐这个自动安装的东西,安装之前先看看这个源中的软件版本是不是你需要的。
可以下载运行这个脚本:

wget -q -O - http://www.atomicorp.com/installers/atomic | sh

https://www.atomicorp.com/channels/atomic/
https://www.atomicorp.com/wiki/index.php/PHP

评论

0条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注