十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一.关wdOS系统以及LAMP环境的介绍:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、海原网站维护、网站推广。wdOS是一个基于CentOS的精简版Linux系统,是针对web服务器应用的优化和精简,主要是去除了大部分不常用软件包,筛选了系统基本包和web应用基础包,并进行了更新和优化.同时增加一些较常用的工具包,如iptraf,nmap,sysstat,strace,tcpdump,curl等,便于日常维护中使用和排错,同时,还可以集成功能强大的服务器及虚拟主机管理系统wdcp等。
LAMP指的Linux(操作系统)、ApacheHTTP服务器,MySQL(数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立的web服务器。使用LAMP软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。
本文这里介绍的是在wdOS的纯系统中源码编译安装LAMP环境,最后提一下编译安装顺序的问题:应该要先安装apache,然后安装mysql,最后安装php,因为php的编译会用到apache的apxs模块以及mysql的部分,否则就需要多次编译安装php,这样会很麻烦。
二.安装过程:
第一步:安装前准备工作
创建存放源代码的目录:mkdir/usr/local/src
创建apache的安装目录:mkdir/usr/local/apache
创建php的安装目录:mkdir/usr/local/php
创建mysql的安装目录:mkdir/usr/local/mysql
第二步:准备安装apache(与前面文档中apache的安装过程一样)
1.先下载apache源代码到目录/usr/local/src下:(我这里下载的apache版本为2.2.22)
wget-chttp://apache.etoak.com/httpd/httpd-2.2.22.tar.gz
(网速不稳定的情况下建议你在wget后面加个参数c)
下载完成之后开始解压缩:(这里给出部分截图)
tar-zxvfhttpd-2.2.22.tar.gz
进入解压缩后的httpd-2.2.22这个目录下,设定编译时的参数:
./configure--prefix=/usr/local/apache----将apache安装在这个目录下
--enable-vhost-alias----支持虚拟主机的功能
--enable-rewrite-----允许重写
--enable-info
开始进行编译:make
编译完进行安装:makeinstall
在当前目录下,复制apache的初始化文件到/etc/init.d目录下,并命名为httpd,修改其权限:
cpbuild/rpm/httpd.init/etc/init.d/httpd
设置Apache开机自启动:(我这里使用的是方法一)
方法一:输入下列命令:
chconfig--addhttpd
chkconfig--level345httpdon
方法二:
编辑vi/etc/init.d/httpd
找到chkconfig:这句,添加345
找到description:这句,添加Apachehttpd
设置完之后你可以输入chkconfig--list|grephttpd检查一下3,4,5是否为on:
修改apache服务器的配置文件:
vi/usr/local/apache/conf/httpd.conf,找到ServerName那一行,去掉前面的注释
为了适应启动脚本,我们创建一些符号链接:
重启一下apache服务器:
/etc/init.d/httpdstart
第三步:源码安装mysql5.5.25a
为mysql数据库添加用户和用户组:(我这里假设为mysql用户以及mysql用户组)
安装mysql之前先检查系统是否安装了编译mysql所需要的工具包gcc、gcc-c++,ncurses-devel和camke(mysql5.5版本后不使用configure安装,而是使用cmake来安装)
我们使用rpm-qa|grepgcc和rpm-qa|grepncurses-devel进行检查:
也就是说,wdOS系统中还没有安装ncurses-devel,所以我们可以使用yum命令进行安装
下载cmake源代码到/usr/local/src下:
wgethttp://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
解压缩:tarzxvfcmake-2.8.4.tar.gz
进入/usr/local/src/cmake-2.8.4这个目录下设置,
./bootstrap
gamke:
gmakeinstall
下载mysql源代码:
wget-chttp://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz
tarxvfmysql-5.5.25a.tar.gz进行解压缩:
设置编译时的环境参数:
cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-----指定mysql的安装目录
编译make:
安装:makeinstall
在当前目录下,建立配置文件:
cpsupport-files/my-medium.cnf/etc/my.cnf
说明:在展开的源码包目录中的“support-files”文件夹下,提供了多个MySQL服务器的配置文件,分别适用于不同负载的数据库服务器,一般选择my-medium.cnf文件即可,该配置文件适用于中等负载的数据库,可以满足大多数企业的应有需求。
设置软连接使mysql和mysqladmin的bin命令能在shell中直接运行:
创建用于存放mysql数据和日志的目录,并修改目录所有者和属组为mysql:
现在到/etc/my.cnf配置文件下,做下面的修改:
进入mysql安装目录下的脚本目录下的脚本目录:/tmp/mysql-5.5.25a/scripts
先修改mysql_install_db这个文件的权限:
然后,利用mysql_install_db脚本生成新的mysql授权表:
./mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/var/mysql/data&
添加启动脚本:
cp/usr/local/src/mysql-5.5.25a/support-files/mysql.server/etc/rc.d/init.d/mysqld
修改启动脚本:添加basedir以及datadir的路径:
修改启动脚本的权限:
启动数据库:
检查数据库的默认侦听端口3306是否开启:
第三步:源码安装php5.3.10
yum-yinstalllibeventlibevent-devellibxml2libxml2-devellibmcryptlibmcrypt-devellibmcryptlibmcrypt-develcurl-devellibpng-devellibtool-ltdl-devel(这是php编译所需的包)
同样的,先把源代码下载到/usr/local/src这个目录下:(我这里下载的是php版本为5.3.10)
wgethttp://cn.php.net/get/php-5.3.10.tar.gz/from/this/mirror
下载完成进行解压缩:tarzxvfphp-5.3.10.tar.gz
压缩完成后,进入到php-5.3.10这个目录下配置编译时的参数:(注意:with和enable前面是两个-,另外你可以根据需要来添加所需的编译参数)
./configure--prefix=/usr/local/php--指定php安装目录
--with-apxs2=/usr/local/apache/bin/apxs--指定Apache服务器提供的apxs模块支持程序的文件位置
--with-config-file-path=/usr/local/php/etc---指定php配置文件的目录
--with-mysql=/usr/local/mysql----:设置MySQL服务器程序的安装目录
--with-apxs2=/usr/local/apache/bin/apxs--指定Apache服务器提供的apxs模块支持程序的文件位置
--enable-mbstring----设置php支持多字节字符串
--with-iconv-dir=/usr/local/libiconv
--enable-xml
--with-curl
--with-curlwrappers
--with-mhash
--with-mcrypt
--with-gd
--enable-gd-native-ttf
--with-xmlrpc
–with-zlib
如果没有意外,你会看到Thankyouforusingphp这样的字样
下面就可以进行编译了:make成功的话你会看到buildcomplete这样的字样
编译完成后就可以进行安装了:makeinstall
安装完成后把/usr/local/src/php-5.3.10这个目录下的php.ini-development复制到/usr/local/lib/这个目录下,并重命名为php.ini(php.ini文件为php的初始化文件,我这里不作设置)
(备注:php5.0版本之后文件的名字发生了改变,其中php.ini-production对应于php.ini-recommended;而php.ini-development对应于php.ini-dist。php.ini-dist适合开发程式使用(也就是测试使用),php.ini-recommended拥有较高的安全性设定,适合上线当产品使用)
第四步:整合apache和php
为了让Apache能够直接解析php,我们还要进行一些配置:
首先,进入apache的配置文件目录vi/usr/local/apache/conf/httpd.conf在之后添加:AddTypeapplication/x-httpd-php.php(在apache服务器中添加对php类型的网页文件的识别)
然后,在LoadMoudule下面手动添加这句:
LoadModulephp5_modulemodules/libphp5.so
(LoadModule配置项可以加载PHP程序对应的模块,让apache服务器支持PHP页面解析功能。少了这句在测试的时候可能会提示下载这个php页面)
最后就是在/usr/local/apache/htdocs这个目录下,新建一个文件(我这里命令为test.php),在这个文件内写入测试php的代码:
phpinfo();
?>
完成后,重启apache服务器:servicehttpdrestart
三.测试结果:
1.还没安装php5.3.10之前,针对apache服务器的测试:
在本地浏览器输入http://(虚拟机的ip地址),我这里就输入http://192.168.1.102,回车就会看到这个测试页面:
2.在apache整合php之后,重新在浏览器输入http://192.168.1.102/test.php你就可以看到经典的php测试页面:
3.安装好mysql之后,刷新原来的php测试页面:会看到增加了mysql功能模块:
另外,为了验证php是否能和mysql协同工作,我们在/usr/local/apache/hotdocs这个目录下的php的测试文件(test.php)中加入简单的mysql数据库连接测试语句:
保存该文件退出,重启apache服务器,刷新之前的测试页面你会看到成功连接数据库的提示:
四.可能会遇到的问题的解决方案:
1.在编译php时,出现undefinedreferenceto`php_ob_gzhandler_check\'这样的错误提示:
解决的方法为:cd/usr/local/进入这个目录下添加一个新目录mkdirlibiconv