LAMP论坛搭建

LInux系统下的“3P”语言:PHPPerlPython

优化:分为硬件优化、策略优化、配置优化

硬件优化:更换更好的硬件

策略优化:Linux:尽量保持内核新一些,不长修改的页面,以静态方式展示。尽量不要在WEB服务器上面运行X-Windows,并且关掉无用进程,如果有图片,尽量减小图片尺寸、大小,负载均衡

集群加Squid缓冲

apache:建议使用更多的静态页面,少量PHP脚本,以减少查询

PHP安装时加装一个缓冲套件,提高速度

配置优化:主要修改配置文件,修改一些内置的参数,提高效率

使用LAMP架构搭建一个Discuz论坛:Linux+apache+mysql+php+Discuz


1,首先需要安装httpdapache软件包)

[root@CentOS ~]# tar fxj httpd-2.2.11.tar.bz2解压软件包


[root@CentOS ~]# cd httpd-2.2.11进入解压后的文件夹

apache这个源码包进行编译并且安装

[root@CentOS httpd-2.2.11]# ./configure --with-mpm=prefork --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-nonportable-atormics --enable-mods-shared=most --enable-so && make && make install

测试是否正确安装(执行文件在安装目录下)

[root@CentOS httpd-2.2.11]# /usr/local/apache2/bin/apachectl -k start启动

[root@CentOS httpd-2.2.11]# netstat -an |grep 80检查端口

[root@CentOS httpd-2.2.11]# /usr/local/apache2/bin/apachectl -k stop停止

[root@CentOS httpd-2.2.11]# netstat -an |grep 80

[root@CentOS httpd-2.2.11]# /usr/local/apache2/bin/apachectl -k restart重启

[root@CentOS httpd-2.2.11]# netstat -ant | grep 80

这样安装的apache执行命令太长,为其制作启动脚本,首先关闭apache,httpd

/etc/init.d/目录下创建个执行文件,并且编辑内容

[root@CentOS ~]# vim /etc/init.d/apache

#!/bin/bash

APACHE=/usr/local/apache2/bin/apachectl

start() {

$APACHE -k start

}

stop() {

$APACHE -k stop

}

restart() {

$APACHE -k restart

}

case $1 in

start)

start;;

stop)

stop;;

restart)

restart;;

*)

echo "start|stop|restart"

;;

esac

为所创建的这个执行文件添加一个执行的权限

[root@CentOS ~]# chmod +x /etc/init.d/apache

测试一下所设置的可执行文件

[root@CentOS ~]# service apache restart

[root@CentOS ~]# service apache stop

[root@CentOS ~]# netstat -ant | grep 80

2,安装mysql数据库软件包

首先定义变量

[root@CentOS ~]# unset CFLAGS

[root@CentOS ~]# CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer"

[root@CentOS ~]# CXXFLAGS="-O6 mpentiumpro -fomit-rame-pointer -felide-constructors -fno-exceptions -fno-rtti"

创建mysql使用所需要的用户组及用户

[root@CentOS ~]# groupadd mysql

[root@CentOS ~]# useradd -g mysql mysql

安装GCC编译器

[root@CentOS ~]# yum install gcc gcc-c++ ncurses-devel libtool openssl-devel -y

解压mysql数据包,并且编译安装

[root@CentOS ]# tar fxz mysql-5.5.3-m3.tar.gz

[root@CentOS ]# cd mysql-5.5.3-m3

[root@CentOS mysql-5.5.3-m3]# ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase --enable-static --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static && make && make install

修改系统变量文件,将mysqllib文件加载到系统变量中

[root@CentOS ]# vim /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/mysql/lib/mysql

重新加载一下所更改的这个变量文件到系统中

[root@CentOS ]# ldconfig

查看变量文件中是否已经启用

[root@CentOS ]#ldconfig -v | grep mysqlcd

做权限的修改,默认是用root装的,所以权限只是root.对其更改

[root@CentOS ~]# chown -R mysql.mysql /usr/local/mysql/

拷贝mysql配置文件

[root@CentOS ~]# cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf

编辑my.cnf里面的字段

[root@CentOS ~]# vim /etc/my.cnf

datadir = /usr/local/mysql/data[mysqld]

# thread_concurrency = 8cpu根据需要的可以改,不需要的可以注视掉

建立数据库文件夹

[root@CentOS ~]# mkdir /usr/local/mysql/data

[root@CentOS ~]# chown mysql.mysql /usr/local/mysql/data/

执行初始化命令

[root@CentOS ~]# /usr/local/mysql/bin/mysql_install_db --user=mysql

mysql启动执行文件拷贝到系统init.d下,并且启动

[root@CentOS ~]# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/

[root@CentOS ~]# service mysql.server start

创建一个mysql的执行脚本并且启动在/etc/init.d/目录下创建个执行文件,并且编辑内容

[root@CentOS ~]# vim mysql.sh

ln -s /usr/local/mysql/bin/*/usr/local/bin

ln -s /usr/local/mysql/libexec/*/usr/local/libexec

ln -s /usr/local/mysql/share/man/man1/*/usr/share/man/man1

ln -s /usr/local/mysql/share/man/man8/*/usr/share/man/man8

[root@CentOS ~]# chmod +x mysql.sh

[root@CentOS ~]# sh mysql.sh

安全清理

[root@CentOS ~]# /usr/local/mysql/bin/mysql_secure_installation

没有设置密码输入回车就行

接下来设置mysql里面root的密码,之后一路下一步

登录mysql测试,是否可以正常登录

[root@CentOS ~]# mysql -u root -p123

清空之前的变量(mysqul已经装完了。用不着了)

[root@CentOS ~]# unset CFLAGS

[root@CentOS ~]# unset CXXFLAGS

3,解压安装PHP

解压PHP需要的软件包1

[root@CentOS ]# tar fxz libiconv-1.13.1.tar.gz

进入解压后的文件夹,执行编译、安装

[root@CentOS ]# cd libiconv-1.13.1

[root@CentOS libiconv-1.13.1]# ./configure --prefix=/usr/local/ && make && make install

解压PHP需要的库

[root@CentOS ]# tar fxz libmcrypt-2.5.8.tar.gz

[root@CentOS ~]# cd libmcrypt-2.5.8

[root@CentOS libmcrypt-2.5.8]# ./configure && make && make install

更新函数库,让新安装的库起作用

[root@CentOS libmcrypt-2.5.8]#ldconfig

进入libltdl文件夹中执行二次安装

[root@CentOS libmcrypt-2.5.8]# cd libltdl/

[root@CentOS libltdl]# ./configure --enable-ltdl-install && make && make install

重新更新一下函数库

[root@CentOS libmcrypt-2.5.8]#ldconfig

解压PHP需要的软件包2,并且执行编译、安装

[root@CentOS ~]# tar fxz mhash-0.9.9.9.tar.gz

[root@CentOS tmp]# cd mhash-0.9.9.9

[root@CentOS mhash-0.9.9.9]# ./configure && make && make install

做链接库连接,保证可以找到这些文件

[root@CentOS ~]# ln -s /usr/local/lib/* /usr/lib/

[root@CentOS ~]# ls /usr/lib/libmcrypt*

安装一个加密解密的东西mcrypt

[root@CentOS ~]# tar fxz mcrypt-2.6.8.tar.gz

[root@CentOS~ ]# cd mcrypt-2.6.8

[root@CentOS mcrypt-2.6.8]# ./configure && make && make install

重新更新一下函数库

[root@CentOS mcrypt-2.6.8]# ldconfig

安装开发库

[root@CentOS ~]# yum install libxml2-devel curl-devel libpng-devel freetype-devel libjpeg-devel

解压PHP主包

[root@CentOS ~]# tar fxz php-5.2.14.tar.gz

进入解压后的文件夹,执行编译、安装

[root@CentOS ~]# cd php-5.2.14

[root@CentOS php-5.2.14]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs --with-iconv-dir=/usr/local/ --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf && make && make install

[root@CentOS php-5.2.14] # make ZEND_EXTRA_LIBS='-liconv' && make install

修改apache的配置文件让其支持php

[root@CentOS ~]# vim /usr/local/apache2/conf/httpd.conf

AddType application/x-httpd-php .php

<IfModule dir_module>

DirectoryIndex index.html index.php

</IfModule>

拷贝php/下的php配置文件模板(在软件包解压那文件夹中)

[root@CentOS php-5.2.14]# cp php.ini-dist /usr/local/php/etc/php.ini

编辑apahce主页文件

[root@CentOS php-5.2.14]# vim /var/www/html/index.php

<? phpinfo() ?>


重启apahce

[root@CentOS php-5.2.14]# service apache restart

URL中测试出现it work说明成功

4,解压安装PDO工具

[root@CentOS ~]# tar fxz PDO_MYSQL-1.0.2.gz

[root@CentOS ~]# cd /PDO_MYSQL-1.0.2

[root@CentOS PDO_MYSQL-1.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr/local/mysql/

[root@CentOS PDO_MYSQL-1.0.2]# make && make install

5,修改PHP配置文件

[root@CentOS ~]# vim /usr/local/php/etc/php.ini

; Directory in which the loadable extensions (modules) reside.

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"

extension = "pdo_mysql.so"

6,修改apahce配置文件,指定默认页面

[root@CentOS ~]# vim /usr/local/apache2/conf/httpd.conf

DocumentRoot "/usr/local/apache2/htdocs"

DocumentRoot "/var/www/html"

<Directory /var/www/html>

Options FollowSymLinks +Indexes

AllowOverride None

Order allow,deny

allow from all

</Directory>

重启apache,以便加载跟新的内容

[root@CentOS ~]# service apache restart

浏览器中测试,出现PHP Version 5.2.14页面,说明成功

7,安装论坛工具

[root@CentOS ~]# unzip phpwind.zip

进入解压后的目录,复制论坛程序到apapche2目录下,并且更改权限

[root@CentOS ~]# cd PHPWind_UTF8_7.3/

[root@CentOS PHPWind_UTF8_7.3]# cp -fr upload/ /var/www/html/bbs

[root@CentOS PHPWind_UTF8_7.3]# chmod -R 777 /var/www/html/bbs

重启apache在浏览器中访问,即可

http://192.168.18.61/bbs