一、Apache安裝
1、安裝依賴包
#yum install -y pcre pcre-devel apr apr-devel zlib-devel gcc openssl-devel expat-devel
2、創(chuàng)建相應(yīng)文件夾
#mkdir -pv /app/{httpd24,libmemcached,memcached,php}
#mkdir /root/src
#mkdir -pv /data/{www,logs}
3、下載apr和apr-util編譯安裝
#cd /src
#wget https://mirrors.aliyun.com/apache/apr/apr-1.6.3.tar.gz
#wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
#tar zxf apr-util-1.6.1.tar.gz
#tar zxf apr-1.6.3.tar.gz
#編譯安裝apr
#cd apr-1.6.3
#./configure --prefix=/usr/local/apr
#make && make install
#編譯安裝apr-util
#cd apr-util-1.6.1
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make && make install
4、下載編譯安裝Apache2.4.34
#wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.34.tar.gz
#tar -zxf httpd-2.4.34.tar.gz
#cp -rf apr-1.6.3 httpd-2.4.34/srclib/apr
#cp -rf apr-util-1.6.1 httpd-2.4.34/srclib/apr-util
#cd httpd-2.4.34
#./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
#make
#make install
5、配置Apache
# echo "export PATH=$PATH:/app/httpd24/bin" > /etc/profile.d/httpd.sh
#source /etc/profile.d/httpd.sh
#cp /app/httpd24/bin/apachectl /etc/init.d/httpd
#chmod +x /etc/init.d/httpd
#vim /etc/init.d/httpd #在第二行(#!/bin/sh)下面添加
#chkconfig: 2345 80 90
#description: Apache Web Server
#chkconfig --add httpd #添加服務(wù)到chkconfig
#firewall-cmd --zone=public --add-port=80/tcp --permanent
#groupadd www && useradd -g www -s /sbin/nologin -M www
#chown -R www:www /app/httpd24/
#chown -R www:www /data/www/
6、配置httpd.conf
# vim /app/httpd24/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.s #去掉注釋,開啟偽靜態(tài)模塊
LoadModule php5_module modules/libphp5.so #添加php庫
找到AddType application/x-gzip .gz .tgz添加如下兩行,讓Apache支持PHP擴(kuò)展
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
找到#ServerName www.example.com:80改成ServerName localhost #否則重啟會(huì)報(bào)錯(cuò)httpd: Could not reliably determine the server's fully qualified domain name, using xxxx. Set the 'ServerName' directive globally to suppress this message
末尾添加,隱藏Apache版本號
ServerTokens ProductOnly
ServerSignature Off
更改用戶和組為www
User www
Group www
7、啟用虛擬機(jī)
注釋DocumentRoot "/app/httpd24/htdocs"
找到#Include /etc/httpd/extra/httpd-vhosts.conf
改成Include conf/vhost/*.conf
#mkdir /app/httpd24/conf/vhost
#vim /app/httpd24/conf/vhost/vhosts1.conf
<VirtualHost *:80>
ServerAdmin admin@admin.com
DocumentRoot "/data/www"
ServerName 192.168.10.80 #頂級域名
ServerAlias 192.168.10.80 #二級域名
ErrorLog "/data/logs/vhost1-error.log"
CustomLog "/data/logs/vhost1-access.log" combined
<Directory "/data/www">
# SetOutputFilter DEFLATE
Options FollowSymlinks #禁止目錄遍歷
AllowOverride All #支持偽靜態(tài).htaccess
Order allow,deny
Allow from all
DirectoryIndex index.php index.html
Require all granted
</Directory>
</VirtualHost>
#/etc/init.d/httpd restart
二、PHP安裝
1、安裝相關(guān)依賴包文件
#yum install gcc gcc+ gcc-c++ bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel libpng-devel libjpeg-devel freetype-devel libtool -y
#部分依賴無法yum安裝需手動(dòng)下載安裝
#wget https://mirrors.aliyun.com/epel/7/x86_64/Packages/l/libmcrypt-2.5.8-13.el7.x86_64.rpm
#https://mirrors.aliyun.com/epel/7/x86_64/Packages/l/libmcrypt-devel-2.5.8-13.el7.x86_64.rpm
#rpm -ivh libmcrypt-2.5.8-13.el7.x86_64.rpm libmcrypt-devel-2.5.8-13.el7.x86_64.rpm
或者直接添加阿里云epel源:
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
然后再執(zhí)行yum install libmcrypt-devel libmcrypt -y
2、下載并編譯安裝PHP
# wget http://cn.php.net/distributions/php-5.6.37.tar.gz
#groupadd php && useradd -g php -s /sbin/nologin -M php
#tar -zxf php-5.6.37.tar.gz
#cd php-5.6.37
#./configure --prefix=/app/php --with-config-file-path=/app/php --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-apxs2=/app/httpd24/bin/apxs --with-fpm-user=php --with-fpm-group=php --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-freetype-dir --with-jpeg-dir --with-png-dir --with-libpng --with-gd --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline
#make
#make test
#make install
3、配置PHP
#cp /root/src/php-5.6.37/php.ini-development /app/php/php.ini
#cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf
#cp /root/src/php-5.6.37/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
#echo "export PATH=$PATH:/app/php/bin" > /etc/profile.d/php.sh
#source /etc/profile.d/php.sh
#chkconfig --add php-fpm #添加服務(wù)到chkconfig
三、安裝memcached
1、安裝依賴
#yum install -y libevent-devel libevent
2、下載編譯安裝
#wget http://www.memcached.org/files/memcached-1.4.24.tar.gz
# tar zxvf memcached-1.4.24.tar.gz
#cd memcached-1.4.24
#./configure --prefix=/app/memcached
#make && make install
3、配置memcache
#echo "export PATH=$PATH:/app/memcached/bin" > /etc/profile.d/memcached.sh
#source /etc/profile.d/memcached.sh
#groupadd memcached
#useradd memcached -g memcached -s /sbin/nologin #創(chuàng)建運(yùn)行用戶
#memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid #命令啟動(dòng)
創(chuàng)建啟動(dòng)腳本vim /etc/init.d/memcached
#!/bin/bash
#
# Init file for memcached
#
# chkconfig: 2345 86 14
# description: Distributed memory caching daemon
#
# processname: memcached
# config: /etc/sysconfig/memcached
. /etc/rc.d/init.d/functions
## Default variables
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
RETVAL=0
prog="/app/memcached/bin/memcached"
desc="Distributed memory caching"
lockfile="/app/memcached/memcached.pid"
start() {
echo -n $"Starting $desc (memcached): "
daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}
stop() {
echo -n $"Shutting down $desc (memcached): "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
return $RETVAL
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $desc ($prog): "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e $lockfile ] && restart
RETVAL=$?
;;
reload)
reload
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
# chmod +x /etc/init.d/memcached
# chkconfig --add memcached
#/etc/init.d/memcached start
四、安裝PHP擴(kuò)展
1、編譯安裝memcache擴(kuò)展庫
# wget http://pecl.php.net/get/memcache-3.0.8.tgz
#tar -zxf memcache-3.0.8.tgz
#cd memcache-3.0.8
#phpize
#./configure --with-php-config=/app/php/bin/php-config
#make
#make test
#make install
2、編譯安裝libmemcached-擴(kuò)展庫
#wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
#tar zxvf libmemcached-1.0.18.tar.gz
#cd libmemcached-1.0.18
#./configure --prefix=/app/libmemcached
#make && make install
3、編譯安裝memcached擴(kuò)展庫
# wget http://pecl.php.net/get/memcached-2.2.0.tgz
#tar zxvf memcached-2.2.0.tgz
#cd memcached-2.2.0
#phpize
#./configure --with-php-config=/app/php/bin/php-config --with-libmemcached-dir=/app/libmemcached --disable-memcached-sasl
#make
#make test
#make install
4、編譯安裝phpredis擴(kuò)展庫
#git clone https://github.com/phpredis/phpredis
#cd phpredis/
#phpize
#./configure --with-php-config=/app/php/bin/php-config
#make
#make test
#make install
5、編譯安裝gd擴(kuò)展庫
#cd /root/src/php-5.6.37/ext/gd
# phpize
#./configure --with-php-config=/app/php/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd
#make
#make install
6、配置php.ini
#時(shí)區(qū)修改
# sed -i 's/expose_php = On/expose_php = Off/' /app/php/php.ini #隱藏版本號
#vim /app/php/php.ini 里面修改時(shí)區(qū)
date.timezone = "Asia/Shanghai"
extension=memcache.so
extension=memcached.so
extension=redis.so
extension_dir="/app/php/lib/php/extensions/no-debug-non-zts-20131226/"
五、系統(tǒng)優(yōu)化
1、內(nèi)核參數(shù)優(yōu)化
# vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
kernel.exec-shield = 1
kernel.randomize_va_space = 1
fs.file-max = 65535
kernel.pid_max = 65536
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_max_tw_buckets = 4096
net.ipv4.tcp_keepalive_time = 20
net.ipv4.ip_forward = 0
net.ipv4.tcp_mem = 192000 300000 732000
net.ipv4.tcp_rmem = 51200 131072 204800
net.ipv4.tcp_wmem = 51200 131072 204800
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_orphans = 2000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
vm.min_free_kbytes=409600
vm.vfs_cache_pressure=200
vm.swappiness = 40
vm.dirty_expire_centisecs = 1500
vm.dirty_writeback_centisecs = 1000
vm.dirty_ratio = 2
vm.dirty_background_ratio = 100
# sysctl -p
#vim /etc/security/limits.conf
把下面兩項(xiàng)都設(shè)置為65535
* soft nofile 65535 #每個(gè)用戶可用的最大進(jìn)程數(shù)量(軟限制)
* hard nofile 65535 #單個(gè)用戶可用的最大進(jìn)程數(shù)量(硬限制)
#立即生效執(zhí)行:
#ulimit -n 65535 #允許每個(gè)進(jìn)程可以同時(shí)打開文件數(shù)
#ulimit -u 65535 #每個(gè)用戶最大進(jìn)程使用數(shù)
2、Apache優(yōu)化
#vim /app/http24/conf/httdp.conf
找到#Include conf/extra/httpd-mpm.conf
改成Include conf/vhost/httpd-mpm.conf
找到#Include conf/extra/httpd-default.conf
改成Include conf/vhost/httpd-default.conf
#cp /app/httpd24/conf/extra/httpd-default.conf /app/httpd24/conf/vhost/
#sed -i 's/KeepAlive On/KeepAlive Off/g' /app/httpd24/conf/vhost/httpd-default.conf #關(guān)閉keeplive,如果不關(guān)閉設(shè)置timeout時(shí)間短一些
#vim /app/httpd24/conf/vhost/httpd-mpm.conf
<IfModule mpm_prefork_module>
StartServers 5 #啟動(dòng)時(shí)進(jìn)程數(shù)
MinSpareServers 5 #最小空閑進(jìn)程
MaxSpareServers 10 #最大空閑進(jìn)程
ServerLimit 1500 #最大進(jìn)程數(shù)
MaxRequestWorkers 1000 #最大并發(fā)進(jìn)程數(shù)
MaxConnectionsPerChild 4000 #每個(gè)子進(jìn)程最大連接數(shù), 0不限制
</IfModule>
2018年11月3日 上午10:08 沙發(fā)
學(xué)無止境,認(rèn)真拜讀!
2018年11月12日 上午8:00 板凳
來看看,因?yàn)?,總能學(xué)到東西!