iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加 保存后要重启服务器
mkdir /soft
yum install wget
yum install pcre
yum install openssl*
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make
yum -y install gd gd2 gd-devel gd2-devel
yum -y remove mariadb*
yum install -y cmake libaio-* ncurses-devel ssl-* gcc gcc-c++ bison automake libtool tcp_wrappers*
wget http://nginx.org/download/nginx-1.14.0.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-5.7.24-1.el6.src.rpm
wget -O php-7.2.5.tar.gz http://hk1.php.net/get/php-7.2.5.tar.gz/from/this/mirror
wget -O libmcrypt-2.5.8.tar.gz http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
wget https://bitbucket.org/libgd/gd-libgd/get/gd-2.1.0.tar.gz
wget ftp://xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz
wget http://zlib.net/zlib-1.2.11.tar.gz
wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
wget -O freetype-2.7.1.tar.gz https://sourceforge.net/projects/freetype/files/freetype2/2.7.1/freetype-2.7.1.tar.gz/download
wget -O libpng-1.6.34.tar.gz https://sourceforge.net/projects/libpng/files/libpng16/1.6.34/libpng-1.6.34.tar.gz/download
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
cd /soft/
groupadd mysql
useradd -g mysql mysql -s /bin/false
rpm -ivh mysql-community-5.7.24-1.el6.src.rpm
cd /root/rpmbuild/SOURCES/
cp boost_1_59_0.tar.bz2 /data/soft/
cp mysql-5.7.24.tar.gz /data/soft/
tar -xvjf boost_1_59_0.tar.bz2
cp -rf boost_1_59_0 /usr/boost
tar zxvf mysql-5.7.24.tar.gz
cd mysql-5.7.24
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/data/mysql/ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_INNODB_MEMCACHED=ON -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=1 -DWITH_BOOST=/usr/boost/
make -j grep processor /proc/cpuinfo | wc -l
make install
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld on
vi /etc/my.cnf
[client]
character-set-server = utf8
port = 3306
socket = /tmp/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
#default-character-set = utf8
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
open_files_limit = 10240
transaction_isolation = READ-COMMITTED
max_allowed_packet = 32M
#innodb_doublewrite = 0
#loose-daemon_memcached_option=' -p 12001 -m 12288'
#daemon_memcached_enable_binlog= 1
#innodb_api_enable_binlog=1
#daemon_memcached_r_batch_size = 1
#daemon_memcached_w_batch_size = 1
# connction
max_connections = 500
max_connect_errors = 3000
max_user_connections=300
thread_cache_size = 128
thread_stack = 256K
back_log = 300
wait_timeout = 10800
interactive_timeout = 10800
#skip-name-resolve
# end of connction
# for MyISAM only
key_buffer_size = 16M
bulk_insert_buffer_size = 8M
# end of for MyISAM only
read_buffer_size = 1M
read_rnd_buffer_size = 1M
# io
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
sync_binlog = 0
# end of io
# innodb only
innodb_buffer_pool_size = 2G
innodb_log_buffer_size = 16M
innodb_data_file_path = ibdata1:12M:autoextend
innodb_thread_concurrency = 16
innodb_purge_threads = 2
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
# end of innodb
# binlog
log-bin = mysql-bin
binlog_cache_size = 4194304
binlog_stmt_cache_size = 32768
binlog_format = MIXED
max_binlog_cache_size = 128M
max_binlog_stmt_cache_size = 128M
max_binlog_size = 128M
expire_logs_days = 7
log_slave_updates = ON
#relay-log=scott-relay-bin
# end of binlog
# error_log / slow_log
log_error = /data/mysql/mysql_err.log
slow_query_log = OFF
slow_launch_time = 2
slow_query_log_file = /data/mysql/mysql_slow.log
# end of error_log / slow_log
# join / sort
sort_buffer_size = 512K
join_buffer_size = 512K
tmp_table_size = 256M
max_heap_table_size = 256M
# end of join / sort
# query cache
#query_cache_size = 16M
#query_cache_limit = 2M
#query_cache_min_res_unit = 2k
# end of query cache
# master / slave
server-id = 001
skip-slave-start
#read_only=on
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
# enf of master / slave
[mysqldump]
quick
max_allowed_packet = 32M
/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --explicit_defaults_for_timestamp --old_passwords=0
service mysqld start
ln /usr/local/mysql/bin/* /usr/bin
mysql -uroot -p
source /usr/local/mysql/share/innodb_memcached_config.sql
install plugin daemon_memcached soname "libmemcached.so"
service mysqld restart
cd /soft/
tar zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure --prefix=/usr/local/pcre
make && make install
cd /soft/
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
cd /soft/
groupadd www
useradd -g www www -s /bin/false
mkdir /usr/local/webserver
tar zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
./configure --prefix=/usr/local/webserver/nginx --user=www --group=www --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-pcre=/soft/pcre-8.38 --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module
make && make install
/usr/local/webserver/nginx/sbin/nginx
vi /etc/rc.d/init.d/nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /usr/local/webserver/nginx/conf/nginx.conf
# pidfile: /usr/local/webserver/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/webserver/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/webserver/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
chmod 775 /etc/rc.d/init.d/nginx
/etc/rc.d/init.d/nginx restart
chkconfig nginx on
cd /soft/
tar zxvf libxml2-2.7.2.tar.gz
cd libxml2-2.7.2
./configure --prefix=/usr/local/libxml2
make && make install
cd /soft/
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
make && make install
cd /soft/
tar zxvf libpng-1.6.34.tar.gz
cd libpng-1.6.34
./configure --prefix=/usr/local/libpng
make && make install
cd /soft/
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9/
./configure --prefix=/usr/local/jpeg9 --enable-shared --enable-static
make && make install
cd /soft/
tar zxvf freetype-2.7.1.tar.gz
cd freetype-2.7.1
./configure --prefix=/usr/local/freetype
make && make instal
cd /soft/
tar zxvf autoconf-latest.tar.gz
cd autoconf-2.69/
./configure
make && make install
cd /soft/
tar zxvf gd-2.1.0.tar.gz
cd libgd-gd-libgd-9f0a7e7f4f0f/
cmake .
make install
cd /soft/
tar zxvf php-7.2.5.tar.gz
cd php-7.2.5
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/var/lib/mysql/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd --with-libxml-dir=/usr/local/libxml2 --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg9 --with-freetype-dir=/usr/local/freetype --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-ctype
make && make install
cp php.ini-production /usr/local/webserver/php/etc/php.ini
rm -rf /etc/php.ini
ln -s /usr/local/webserver/php/etc/php.ini /etc/php.ini
cp /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf
pid = run/php-fpm.pid
cp /usr/local/webserver/php/etc/php-fpm.d/www.conf.default /usr/local/webserver/php/etc/php-fpm.d/www.conf
vi /usr/local/webserver/php/etc/php-fpm.d/www.conf
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod 775 /etc/rc.d/init.d/php-fpm
service php-fpm restart
vi /usr/local/webserver/php/etc/php.ini
#禁用函数
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#时区
date.timezone = PRC
#禁止显示php版本的信息
expose_php = OFF
cd /usr/local/webserver/nginx/conf/
vi nginx.conf
#首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/webserver/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
user www www;
#取消FastCGI server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#添加加载网站配置文件添加在最后一个大括号里面
include /usr/local/webserver/nginx/conf/vhost/*.conf;
mkdir /usr/local/webserver/nginx/conf/vhost/
service php-fpm restart
service nginx restart
service mysqld restart
chkconfig php-fpm on
chkconfig nginx on
chkconfig mysqld on
ln /usr/local/webserver/php/bin/* /usr/bin/
yum install zip unzip
cd /soft/
wget https://github.com/websupport-sk/pecl-memcache/archive/php7.zip
unzip php7.zip
cd pecl-memcache-php7/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
打开 /usr/local/webserver/php/etc/php.ini 查找 ; extension_dir = “ext”
在其后增加一行:
extension = memcache.so
sudo sysctl vm.nr_hugepages=128
vi /usr/local/webserver/php/etc/php.ini
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.huge_code_pages=1
opcache.file_cache=/tmp
cd /soft/
wget https://pecl.php.net/get/yaf-3.0.7.tgz
tar zxvf yaf-3.0.7.tgz
cd yaf-3.0.7
phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
打开 /usr/local/webserver/php/etc/php.ini 查找 ; extension_dir = “ext”
在其后增加一行:
extension = yaf.so
cd /soft/
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
wget https://pecl.php.net/get/memcached-3.0.4.tgz
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install
cd ..
tar zxvf memcached-3.0.4.tgz
cd memcached-3.0.4
phpize
./configure --enable-memcached --with-php-config=/usr/local/webserver/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
make && make install
打开 /usr/local/webserver/php/etc/php.ini 查找 ; extension_dir = “ext”
在其后增加一行:
extension = memcached.so
cd /soft/
wget https://pecl.php.net/get/redis-4.0.2.tgz
tar zxvf redis-4.0.2.tgz
cd redis-4.0.2/
phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
打开 /usr/local/webserver/php/etc/php.ini 查找 ; extension_dir = “ext”
在其后增加一行:
extension = redis.so