一、环境
系统:Red Hat Enterprise Linux Server release 6.4
所需软件包:
nginx-1.6.3.tar.gz
mysql-5.5.41.tar.gz
mysql-5.5.41.tar.gz
libiconv-1.14.tar.gz
libmcrypt-2.5.8.tar.gz
mhash-0.9.9.9.tar.gz
libevent-1.4.14b-stable.tar.gz
memcached-1.4.24.tar.gz
二、安装
1、nginx的安装
1)、编译安装
sduo groupadd nginx
sudo useradd -s /sbin/nologin -g nginx nginx
sudo yum -y install pcre* openssl*
tar zxf nginx-1.6.3.tar.gz
cd nginx-1.6.3
./configure \
--prefix=/usr/local/services/nginx-1.6.3 \
--sbin-path=/usr/local/services/nginx-1.6.3/sbin/nginx \
--conf-path=/usr/local/services/nginx-1.6.3/conf/nginx.conf \
--error-log-path=/usr/local/services/nginx-1.6.3/logs/error.log \
--pid-path=/usr/local/services/nginx-1.6.3/logs/nginx.pid \
--lock-path=/usr/local/services/nginx-1.6.3/logs/nginc.lock \
--http-fastcgi-temp-path=/usr/local/services/nginx-1.6.3/fastcgi_temp \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre
make&&make install
2)启动nginx服务
cd /usr/local/services
ln -sf nginx-1.6.3 nginx
sudo ./nginx/sbin/nginx
sudo netstat -antlp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4690/nginx
2、mysql的安装
1)、编译安装
sudo groupadd mysql
sudo useradd -s /sbin/nologin -g mysql mysql
sudo yum -y install ncurses-devel gcc gcc-c++ bison cmake
tar zxf mysql-5.5.41.tar.gz
cd mysql-5.5.41
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/services/mysql5.5.41 \
-DMYSQL_DATADIR=/usr/local/services/mysql5.5.41/var/data \
-DMYSQL_UNIX_ADDR=/usr/local/services/mysql5.5.41/var/data/mysql.sock \
-DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all -DWITH_DEBUG=0 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1
_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1
make&&make install
2)创建编译时所用目录,及常用命令链接
cd /usr/local/services/
ln -sf mysql5.5.41 mysql
cd mysql
sudo chown -R mysql.mysql ./*
sudo mkdir -p /data/tsp/mysql
ln -s /data/tsp/mysql var
sudo mkdir -p /usr/local/services/mysql/var/{binlog,data,logs,redolog,relaylog}
sudo ln -sf /usr/local/services/mysql/bin/mysql /usr/local/bin/
sudo ln -sf /usr/local/services/mysql/bin/mysqldump /usr/local/bin/
sudo ln -sf /usr/local/services/mysql/bin/mysqlbinlog /usr/local/bin/
sudo ln -sf /usr/local/services/mysql/bin/mysqladmin /usr/local/bin/
sudo ln -sf /usr/local/services/mysql/include/ /usr/include/mysql
sudo chown -R mysql.mysql /usr/local/services/mysql/var
3)初始化
sudo vim /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/local/services/mysql/lib
sudo ldconfig -v
sudo scripts/mysql_install_db --user=mysql --datadir=/usr/local/services/mysql/var/data --basedir=/usr/local/services/mysql
4)服务开机启动,获取配置文件
cd support-files/
sudo cp mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
sudo chkconfig --add mysqld
sudo chkconfig mysqld on
sudo cp my-medium.cnf my.cnf
5)编辑配置文件
[client]
port = 3306
socket = /usr/local/services/mysql/var/data/mysql.sock
sudo chown user.group /etc/my.cnf
vim /etc/my.cnf
[mysqld]
bind-address = 0.0.0.0
port = 3306
socket = /usr/local/services/mysql/var/data/mysql.sock
pid-file = /usr/local/services/mysql/var/logs/mysql.pid
character-set-server = utf8
basedir = /usr/local/services/mysql
datadir = /usr/local/services/mysql/var/data
skip-external-locking
skip-name-resolve
lower_case_table_names = 1
log-bin-trust-function-creators = 1
max_connections = 6000
max_user_connections = 6000
max_connect_errors = 4000
wait_timeout = 86400
interactive_timeout = 86400
table_open_cache = 512
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 32M
#default-storage-engine = InnoDB
#sql_mode="STRICT_ALL_TABLES,NO_AUTO_CREATE_USER"
server-id = 1
log-short-format
log-error = /usr/local/services/mysql/var/logs/mysql.log
slow_query_log
long_query_time = 2
slow_query_log_file = /usr/local/services/mysql/var/logs/mysql-slow.log
log-bin = /usr/local/services/mysql/var/binlog/mysql-bin
log_bin_trust_function_creators=1
binlog_format = MIXED
expire_logs_days = 10
# INNODB Specific options
innodb_data_home_dir = /usr/local/services/mysql/var/data
innodb_log_group_home_dir = /usr/local/services/mysql/var/redolog
innodb_additional_mem_pool_size = 10M
innodb_buffer_pool_size = 2G
innodb_data_file_path = ibdata1:100M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 128M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 50
innodb_file_per_table = 1
# MyISAM Specific options
key_buffer_size = 384M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 1G
myisam_repair_threads = 1
myisam_recover
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
default-character-set = utf8
no-auto-rehash
socket = /usr/local/services/mysql/var/data/mysql.sock
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
6)启动mysql
sudo service mysqld start
Starting MySQL. [ OK ]
3、安装PHP的扩展插件
1)、安装libiconv
对文本进行编码间的转换,用它来处理中文各种编码之间的转换
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/services/libiconv-1.14
make&& make install
2)、安装libmcrypt 实现加密功能的库
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/services/libmcrypt-2.5.8
make&&make install
cd libltdl/
./configure --enable-ltdl-install
make
make install
3)、安装mhash
tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure --prefix=/usr/local/services/mhash-0.9.9.9
make&& make install
4)、对库文件做链接
sudo ln -sf /usr/local/services/libmcrypt-2.5.8/lib/libmcrypt* /usr/local/lib
sudo ln -sf /usr/local/services/mhash-0.9.9.9/lib/libmhash.* /usr/local/lib
sudo ln -sf /usr/local/services/libmcrypt-2.5.8/include/mcrypt.h /usr/include/mcrypt.h
sudo ldconfig -v
4、安装PHP
1)、编译安装
sudo yum -y install libxml2* libcurl* libjpeg* libpng* freetype* openldap*
sudo cp -frp /usr/lib64/libldap* /usr/lib/
tar zxf php-5.5.30.tar.gz
cd php-5.5.30
./configure \
--prefix=/usr/local/services/php-5.5.30 \
--with-config-file-path=/usr/local/services/php-5.5.30/etc \
--with-mysql=/usr/local/services/mysql \
--with-mysqli=/usr/local/services/mysql/bin/mysql_config \
--with-iconv-dir=/usr/local/services/libiconv-1.14 \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fastcgi \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-ldap \
--with-ldap-sasl \
--with-xmlrpc \
--enable-zip \
--enable-soap
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-production /usr/local/services/php/etc/php.ini
2)、配置
cd /usr/local/services/
ln -sf php-5.5.30 php
cd php/etc
cp php-fpm.conf.default php-fpm.conf
sudo groupadd www
sudo useradd -g www www
vim php-fpm.conf
[global]
pid=run/php-fpm.pid
error_log=log/php-fpm.log
log_level=error
daemonize=yes
[www]
user=www
group=www
listen=127.0.0.1:9000
pm=dynamic
pm.max_children=32
pm.start_servers=15
pm.min_spare_servers=5
pm.max_spare_servers=32
3)、启动PHP服务
cd php-5.5.30/sapi/fpm
sudo cp init.d.php-fpm /etc/init.d/php-fpm
sudo chmod +x /etc/init.d/php-fpm
sudo chkconfig --add php-fpm
sudo chkconfig php-fpm on
/etc/init.d/php-fpm start
ps -ef|grep php
4)、编辑nginx
vim /usr/local/services/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
5)、编译fastcgi_params
加入一行fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
vim /usr/local/services/nginx/conf/fastcgi_params
5、重启服务,进行测试
sudo /usr/local/services/nginx/sbin/nginx -s reload
/etc/init.d/php-fpm restart
vim /usr/local/services/nginx/html/index.php
<?php
phpinfo();
?>
测试数据库链接正常否
vim /usr/local/services/nginx/html/linkdb.php
<?php
$links=mysql_connect("localhost","root","");
if($links){
echo "link db ok!";
}
else{
echo "link db no!";
}
?>
6、memcached安装
1)
tar xf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
./configure --prefix=/usr/local/services/libs/libevent-1.4.14b
make
make install
cd /usr/local/services/libs/
test ! -h /usr/local/services/libs/libevent && ln -s libevent-1.4.14b libevent
tar xf memcached-1.4.24.tar.gz
cd memcached-1.4.24
./configure --prefix=/usr/local/services/memcached-1.4.24 --with-libevent=/usr/local/services/libs/libevent
make
make install
启动memcached
/memcached -l "192.168.9.87" -p 11211 -d -m 256 -c 65536 -d
2)
使用php自带的pecl安装程序
# /usr/local/services/php/bin/pecl install memcache
vim /usr/local/services/php/etc/php.ini 增加两行
extension_dir = "/usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/"
extension="memcache.so"
sudo /etc/init.d/php-fpm restart
验证 vim /usr/local/services/nginx/html/test.php
<?php
$memcache = new Memcache;
$memcache->connect('192.168.10.35', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>
显示结果:
Server's version: 1.4.24
Store data in the cache (data will expire in 10 seconds)
Data from the cache:
object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=> int(123) }
7、部署discuz
discuz防止路径为:/usr/local/services/bbs
vim nginx.conf
location ^~ /bbs/ {
root /usr/local/services;
fastcgi_split_path_info ^(.+\.php)(.*)$;
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
if ( $fastcgi_script_name ~ .*\.php($|/) ) {
fastcgi_pass 127.0.0.1:9000;
add_header Cache-Control "no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0";
add_header Pragma no-cache;
}
}
访问http://ip/bbs/install
根据提示就行设置
至此论坛就部署OK啦