linux+apache+cgi(c++)+mysql架构介绍_源码安装架设基于Lamp(Linux+Apache+MySQL+PHP)构架的Web服务器...

lamp(linux+apace+mysql+php)一直都是最流行的Web构架,所有组成产品均是开源软件,是国际上成熟的架构构架。不过,最近几年有被性能更高的lnmp(linux+nginx+mysql+php)替代的趋势,lnmp的配置,可以参考Linux/Unix系统下nginx+php安装简明教程

一、安装MYSQL

1. 添加mysql用户和安装mysql依赖包

groupadd mysql

useradd -r -g mysql mysql

yum install gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel ncurses-devel cmake bison

2. 下载、解压mysql源码包

mkdir -p /data/temp

cd /data/temp

wget ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.18.tar.gz

tar -zxvf mysql-5.5.18.tar.gz

cd mysql-5.5.18

3. 使用cmake编译mysql

cmake . \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_USER=mysql

make

make install

cd /usr/local/mysql

chown -R mysql .

chgrp -R mysql .

scripts/mysql_install_db --user=mysql

chown -R root .

chown -R mysql data

cp support-files/my-medium.cnf /etc/my.cnf

bin/mysqld_safe --user=mysql &

cp support-files/mysql.server /etc/init.d/mysqld

cd /usr/local/bin

ln -fs /usr/local/mysql/bin/mysql mysql

4. 把mysql添加为系统启动服务

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

cd /etc/rc.d/init.d

chkconfig --add mysqld

service mysqld start/stop

二、安装Apache

1. 安装apache:

wget http://www.apache.org/dist/httpd/httpd-2.2.21.tar.gz

tar -zxvf httpd-2.2.21.tar.gz

cd httpd-2.2.21

./configure --enable-modules=so --enable-rewrite

make && make install

2. 安装apache扩展:

cd srclib/apr

make

make install

cd ../apr-util/

./configure --with-apr=../apr

make

make install

三、安装PHP5

1. 安装php5依赖包:

libcurl:

wget http://curl.haxx.se/download/curl-7.23.1.tar.gz

tar -zxvf curl-7.23.1.tar.gz

cd curl-7.23.1/

./configure

make && make install

cd ..

libxml2:

wget ftp://xmlsoft.org/libxml2/libxml2-2.7.6.tar.gz

tar -zxvf libxml2-2.7.6.tar.gz

cd libxml2-2.7.6

./configure

make && make install

cd ..

libxslt:

wget ftp://xmlsoft.org/libxml2/libxslt-1.1.24.tar.gz

tar -zxvf libxslt-1.1.24.tar.gz

cd libxslt-1.1.24

./configure

make && make install

cd ..

freetype:

http://download.savannah.gnu.org/releases/freetype/freetype-2.4.6.tar.gz

tar -zxvf freetype-2.4.6.tar.gz

cd freetype-2.4.6

./configure

make && make install

cd ..

libpng:

wget "http://prdownloads.sourceforge.net/libpng/libpng-1.5.6.tar.gz?download"

tar -zxvf libpng-1.5.6.tar.gz

cd libpng-1.5.6

./configure

make && make install

cd ..

libjpeg:

wget http://ijg.org/files/jpegsrc.v8c.tar.gz

tar -zxvf jpegsrc.v8c.tar.gz

cd jpeg-8c/

./configure

make && make install

cd ..

2. 安装PHP:

wget http://cn2.php.net/get/php-5.2.17.tar.bz2/from/hk.php.net/mirror

cat php-5.2.17.tar.bz2 |bunzip2 | tar xvf -

cd php-5.2.17

./configure --with-apxs2=/usr/local/apache2/bin/apxs \

--with-curl \

--enable-calendar \

--with-xsl \

--with-libxml-dir \

--enable-ftp \

--with-gd \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--enable-mbstring \

--with-zlib \

--enable-shared \

--with-mysql

make && make install

cd ..

3. 让apache加载php模块:

vim /usr/local/apache2/conf/httpd.conf

#确保下面三行在httpd.conf配置文件中存在

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

4. 启动HTTP服务及测试

/usr/local/apache2/bin/httpd -k restart

echo "<?php phpinfo(); ?>" > /usr/local/apache2/htdocs/index.php

#使用浏览器打开URL:http://ip/index.php

常见错误:

1. 现象:make install时报"dlname not found in /usr/local/apache2/modules/libphp5.la."

解答:这是由于apache与php的libtool版本不一致引起的。

/usr/local/apache2/build/libtool --version

ltmain.sh (GNU libtool) 1.5.26 (1.1220.2.492 2008/01/30 06:40:56)

./libtool --version

ltmain.sh (GNU libtool) 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)

解决方法:使php安装目录下的libtool与apache的libtool版本一致,再重新安装,操作如下:

cd /data/temp/

cp /usr/local/apache2/build/libtool .

make clean

make install

lamp构架相关文件、依赖包下载地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值