说明:
centos6.2
nginx-1.2.4
php-5.4.7
APC-3.1.9
Percona-Server-5.5.27-rel28
作者:敖士伟 ikmb@163.com
一、给centos6.2安装yum源
====================
安装epel
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
yum install yum-priorities
安装rpmforge
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.i686.rpm
或者
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-7.noarch.rpm
x86_64:
http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el3.rf.x86_64.rpm
二、安装各个库,依次是libiconv,libmcrypt,mhash, mcrypt 和pcre
============================================================
yum install make gcc gcc-c++ ncurses ncurses-devel bison
yum install curl curl-devel
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local
make
make install
cd ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
tar zxvf pcre-8.30.tar.gz
cd pcre-8.30
./configure
make && make install
cd ../
tar zxf cmake-2.8.5.tar.gz
cd cmake-2.8.5
./bootstrap
make
make install
yum install libaio-devel
三、安装percona
============
tar -zxvf Percona-Server-5.5.27-rel28.1.tar.gz
cd Percona-Server-5.5.27-rel28.1
mkdir -p /data/usr/percona
INSTALL_PATH=/data/usr/percona #设置安装路径
useradd -r -M -s /sbin/nologin mysql
编译安装:
cmake . \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBUILD_CONFIG=mysql_release \
-DFEATURE_SET=community \
-DWITH_EMBEDDED_SERVER=OFF \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PATH \
;
make && make install
chown -R mysql:mysql /data/usr/percona
cd /data/usr/percona
sh scripts/mysql_install_db --user=mysql --datadir=/data/usr/percona/data
chown -R root /data/usr/percona
chown -R mysql:mysql /data/usr/percona/data
cp support-files/my-medium.cnf /etc/my.cnf
配置mysql的service服务:
cp support-files/mysql.server /etc/init.d/mysql.server
chmod a+x /etc/init.d/mysql.server
chkconfig --add mysql.server
启动mysql
/data/usr/percona/bin/mysqld_safe --user=mysql &
验证启动是否成功:
netstat -tunlp|grep 3306
修改mysql的root密码:
/data/usr/percona/bin/mysqladmin -u root -p password 'ikmb'
Mysql允许远程连接
登录
/data/usr/percona/bin/mysql -uroot -pikmb
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ikmb' WITH GRANT OPTION;
exit
开放端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
四、安装PHP
==============
32位
ln -s /data/usr/percona/lib/libmysqlclient.so.18 /usr/lib/
64位
ln -s /data/usr/percona/lib/libmysqlclient.so.18 /usr/lib64/
不然会出现error while loading shared libraries: libmysqlclient.so.18
另外:在编译的时候,不写mysql的路径,而使用mysqlnd代替,也可解决该问题的出现。
useradd -r -M -s /sbin/nologin www
bzip2 -d php-5.4.7.tar.bz2
tar -xvf php-5.4.7.tar
cd php-5.4.7
mkdir -p /usr/local/webserver/php
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/data/usr/percona --with-mysqli=/data/usr/percona/bin/mysql_config --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-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-pdo-mysql=/data/usr/percona/ --with-mysql-sock=/tmp/mysql.sock
成功会出现Thank you for using PHP.没有出现去掉--enable-pcntl --enable-sockets
make ZEND_EXTRA_LIBS='-liconv'
make test
make install
cp php.ini-production /usr/local/webserver/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #因为php5.3开始自带fpm,使用自带的管理脚本
chmod +x /etc/init.d/php-fpm
chkconfig php-fpm on #设置开机自启动
cp /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf
然后修改php-fpm.conf,将pid改成以下,并将user和group改成www
vi /usr/local/webserver/php/etc/php-fpm.conf
pid = run/php-fpm.pid
user = www
group = www
chown -R www:www /usr/local/webserver/php
查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./",修改为extension_dir = "/usr/local/webserver/php/include/php/ext/",
此路径为刚刚的输出路径。再查找; cgi.fix_pathinfo=0,修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞
启动命令
/etc/init.d/php-fpm start
/etc/init.d/php-fpm stop
/etc/init.d/php-fpm reload
五、安装Nginx
====================
groupadd www
useradd -s /sbin/nologin -g www www #www用户不能login
mkdir -p /home/wwwroot #此路径是用于存放各域名的root路径
chmod +w /home/wwwroot
mkdir -p /home/wwwlogs
chmod 755 /home/wwwlogs
chown -R www:www /home/wwwroot
tar zxvf nginx-1.2.4.tar.gz
cd nginx-1.2.4/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make && make install
mkdir /usr/local/webserver/nginx/conf/vhost/ #用于配置各域名
cd /lib
ln -s libpcre.so.0.0.1 libpcre.so.1
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
修改Nginx的配置文件
mv /usr/local/webserver/nginx/conf/nginx.conf /usr/local/webserver/nginx/conf/nginx.conf.bak
vi /usr/local/webserver/nginx/conf/nginx.conf
输入以下内容
user www www;
worker_processes 1;
error_log /home/wwwlogs/nginx_error.log crit;
pid /usr/local/webserver/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
#log format
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
include vhost/*.conf;
}
这是基本的nginx配置,接着是设定每个域名的配置信息
cd /usr/local/webserver/nginx/conf/vhost
vi domain.com.conf
输入以下内容,这样nginx就可以支持php了。注意,请根据自身需要设定domain.com
server
{
listen 80;
server_name www.domain.com domain.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/domain.com/www;
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/domain.com.access.log;
}
然后为刚刚的域名创建root目录
mkdir -p /home/wwwroot/domain.com/www/
chown -R www:www domain.com/
六、编译安装apc
=============
tar -zxvf APC-3.1.9.tgz
cd APC-3.1.9
/usr/local/webserver/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/webserver/php/bin/php-config
make
make test
make install
mv /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/apc.so /usr/local/webserver/php/include/php/ext
vi /usr/local/webserver/php/etc/php.ini,添加apc模块
extension = "apc.so"
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32M
apc.ttl = 3600
apc.user_ttl = 3600
apc.num_files_hint = 0
apc.write_lock = On
centos6.2
nginx-1.2.4
php-5.4.7
APC-3.1.9
Percona-Server-5.5.27-rel28
作者:敖士伟 ikmb@163.com
一、给centos6.2安装yum源
====================
安装epel
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
yum install yum-priorities
安装rpmforge
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.i686.rpm
或者
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-7.noarch.rpm
x86_64:
http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el3.rf.x86_64.rpm
二、安装各个库,依次是libiconv,libmcrypt,mhash, mcrypt 和pcre
============================================================
yum install make gcc gcc-c++ ncurses ncurses-devel bison
yum install curl curl-devel
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local
make
make install
cd ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
tar zxvf pcre-8.30.tar.gz
cd pcre-8.30
./configure
make && make install
cd ../
tar zxf cmake-2.8.5.tar.gz
cd cmake-2.8.5
./bootstrap
make
make install
yum install libaio-devel
三、安装percona
============
tar -zxvf Percona-Server-5.5.27-rel28.1.tar.gz
cd Percona-Server-5.5.27-rel28.1
mkdir -p /data/usr/percona
INSTALL_PATH=/data/usr/percona #设置安装路径
useradd -r -M -s /sbin/nologin mysql
编译安装:
cmake . \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBUILD_CONFIG=mysql_release \
-DFEATURE_SET=community \
-DWITH_EMBEDDED_SERVER=OFF \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PATH \
;
make && make install
chown -R mysql:mysql /data/usr/percona
cd /data/usr/percona
sh scripts/mysql_install_db --user=mysql --datadir=/data/usr/percona/data
chown -R root /data/usr/percona
chown -R mysql:mysql /data/usr/percona/data
cp support-files/my-medium.cnf /etc/my.cnf
配置mysql的service服务:
cp support-files/mysql.server /etc/init.d/mysql.server
chmod a+x /etc/init.d/mysql.server
chkconfig --add mysql.server
启动mysql
/data/usr/percona/bin/mysqld_safe --user=mysql &
验证启动是否成功:
netstat -tunlp|grep 3306
修改mysql的root密码:
/data/usr/percona/bin/mysqladmin -u root -p password 'ikmb'
Mysql允许远程连接
登录
/data/usr/percona/bin/mysql -uroot -pikmb
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ikmb' WITH GRANT OPTION;
exit
开放端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
四、安装PHP
==============
32位
ln -s /data/usr/percona/lib/libmysqlclient.so.18 /usr/lib/
64位
ln -s /data/usr/percona/lib/libmysqlclient.so.18 /usr/lib64/
不然会出现error while loading shared libraries: libmysqlclient.so.18
另外:在编译的时候,不写mysql的路径,而使用mysqlnd代替,也可解决该问题的出现。
useradd -r -M -s /sbin/nologin www
bzip2 -d php-5.4.7.tar.bz2
tar -xvf php-5.4.7.tar
cd php-5.4.7
mkdir -p /usr/local/webserver/php
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/data/usr/percona --with-mysqli=/data/usr/percona/bin/mysql_config --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-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-pdo-mysql=/data/usr/percona/ --with-mysql-sock=/tmp/mysql.sock
成功会出现Thank you for using PHP.没有出现去掉--enable-pcntl --enable-sockets
make ZEND_EXTRA_LIBS='-liconv'
make test
make install
cp php.ini-production /usr/local/webserver/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #因为php5.3开始自带fpm,使用自带的管理脚本
chmod +x /etc/init.d/php-fpm
chkconfig php-fpm on #设置开机自启动
cp /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf
然后修改php-fpm.conf,将pid改成以下,并将user和group改成www
vi /usr/local/webserver/php/etc/php-fpm.conf
pid = run/php-fpm.pid
user = www
group = www
chown -R www:www /usr/local/webserver/php
查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./",修改为extension_dir = "/usr/local/webserver/php/include/php/ext/",
此路径为刚刚的输出路径。再查找; cgi.fix_pathinfo=0,修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞
启动命令
/etc/init.d/php-fpm start
/etc/init.d/php-fpm stop
/etc/init.d/php-fpm reload
五、安装Nginx
====================
groupadd www
useradd -s /sbin/nologin -g www www #www用户不能login
mkdir -p /home/wwwroot #此路径是用于存放各域名的root路径
chmod +w /home/wwwroot
mkdir -p /home/wwwlogs
chmod 755 /home/wwwlogs
chown -R www:www /home/wwwroot
tar zxvf nginx-1.2.4.tar.gz
cd nginx-1.2.4/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make && make install
mkdir /usr/local/webserver/nginx/conf/vhost/ #用于配置各域名
cd /lib
ln -s libpcre.so.0.0.1 libpcre.so.1
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
修改Nginx的配置文件
mv /usr/local/webserver/nginx/conf/nginx.conf /usr/local/webserver/nginx/conf/nginx.conf.bak
vi /usr/local/webserver/nginx/conf/nginx.conf
输入以下内容
user www www;
worker_processes 1;
error_log /home/wwwlogs/nginx_error.log crit;
pid /usr/local/webserver/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
#log format
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
include vhost/*.conf;
}
这是基本的nginx配置,接着是设定每个域名的配置信息
cd /usr/local/webserver/nginx/conf/vhost
vi domain.com.conf
输入以下内容,这样nginx就可以支持php了。注意,请根据自身需要设定domain.com
server
{
listen 80;
server_name www.domain.com domain.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/domain.com/www;
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/domain.com.access.log;
}
然后为刚刚的域名创建root目录
mkdir -p /home/wwwroot/domain.com/www/
chown -R www:www domain.com/
六、编译安装apc
=============
tar -zxvf APC-3.1.9.tgz
cd APC-3.1.9
/usr/local/webserver/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/webserver/php/bin/php-config
make
make test
make install
mv /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/apc.so /usr/local/webserver/php/include/php/ext
vi /usr/local/webserver/php/etc/php.ini,添加apc模块
extension = "apc.so"
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32M
apc.ttl = 3600
apc.user_ttl = 3600
apc.num_files_hint = 0
apc.write_lock = On

被折叠的 条评论
为什么被折叠?



