首先先在Linux上安装相应的库文件

yum install -y zlib-devel pcre pcre-devel apr apr-devel libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel  libcurl-devel  libjpeg-devel libtool-ltdl-devel epel-release  libmcrypt-devel



mysql

   下载mysql然后解压

tar zxvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz


把mysql文件移动重命名到/usr/local/里面

mv mysql-5.1.73-linux-x86_64-glibc23 /usr/local/mysql(mysql的程序文件)


创建mysql用户

useradd -s /sbin/nologin mysql


进去mysql里面

cd /usr/local/mysql


创建目录和修改权限

mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql


初始化数据库

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql


复制配置文件 

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


复制启动文件

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


修改启动文件权限

chmod 755 /etc/init.d/mysqld


然后修改启动脚本的参数

vim /etc/init.d/mysqld “datadir=/data/mysql” 


加载系统服务里面去

chkconfig --add mysqld


设置开机启动

chkconfig mysqld on


启动mysql 

service mysqld start


配置文件里有log-bin=mysql-bin 这是mysql里面二进制的bin-log

如果打开的话他会在你更新数据查询数据读取数据的时候会记录相应的日志



安装Apache


下载解压

httpd-2.2.24.tar.bz2

 tar jxvf httpd-2.2.24.tar.bz2


进入

cd httpd-2.2.24


编译参数

./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre


是Apache这个软件要依赖的一个包可以支持httpd 他能跨平台去运作不管是linux还是Windows或者是unix都可以去运行 那么他需要一个底层的包去支持它就是apr

--with-included-apr


是正则相关的库

--with-pcre


make && make install 


启动

/usr/local/bin/apachectl start


可以查看模块

-M


可以把静态的模块列出来

-l


查看配置文件有没有错误

-t


重新加载用

graceful


Apache的工作模式

prefork worker event

prefork相当与子进程 主进程可以ps看一下

主进程下面派生了很多的子进程


worker

他有主进程也有子进程

每一个子进程下面还有线程 线程跟进程他们两者最主要的区别在于

线程是进程下面的派生出来的一些更小单位的一种方式 在线程下 我们一个进程的内存会共享给所有的线程去使用 这也就意味着进程下面的某一个线程 出现了故障 导致崩溃 那么这个进程线面的所有线程都会收到牵连 好处是他们可以共享一段内存 在高并发情况下http访问量特别特别打的时候 worker 这种线程的形式很占优势 占用很少的内存

但是prefork他是进程的形式 子进程 每一个子进程占有一个单用的内存 其中某个进程发生了故障 不会影响其他进程 但是在高并发的情况下占用的内存很明显要比worker形式大很多


event 是worker的升级版

也是线程的形式 它在性能上 比如长连接的时候event 会比worker好一些


编译的时候 

--with-mpm=worker

2.2默认是prefork

2.4默认是event



php 

下载安装

cd /usr/local/src


解压

tar zxvf php-5.3.27.tar.gz cd php-5.3.27


编译

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif


make && make install


帮助我们自动安装扩展模块 安装动态模块的时候要用到

--with-apxs2=/usr/local/apache2/bin/apxs


查看模块 -m


查看相关的配置 -i


复制配置文件

cp php.ini-production /usr/local/php/etc/php.ini



AddType application/x-httpd-php .php


<Directory />

 Options FollowSymLinks

deny form all改成

Allow from all


DirectoryIndex index.html index.htm index.php


ServerName localhost:80

启动Apache服务

/usr/local/apache2/bin/apachectl start


安装Discuz

mkdir /data/www

cd /data/www

unzip Discuz_X3.2_SC_GBK.zip

mv upload/* .


#Include conf/extra/httpd-vhosts.conf

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf


<VirtualHost *:80>

    DocumentRoot "/data/www"

    ServerName www.test.com

    #ServerAlias www.dummy-host.example.com

    #ErrorLog "logs/dummy-host.example.com-error_log"

   # CustomLog "logs/dummy-host.example.com-access_log" common

</VirtualHost>


/usr/local/apache2/bin/apachectl -t


/usr/local/apache2/bin/apachectl restart



/usr/local/mysql/bin/mysql -uroot

 create database discuz;

 grant all on discuz.* to 'aaa'@'localhost' identified by '123456';

 


cd /data/www

chown -R daemon:daemon data uc_server/data uc_client/data config