一、系统约定 软件源代码包存放位置 源码包编译安装位置(prefix) 脚本以及维护程序存放位置 MySQL 数据库位置 Apache 网站根目录 Apache虚拟主机日志根目录 Apache 运行账户 二、系统环境部署及调整 1. 检查系统是否正常
# more /var/log/messages (检查有无系统级错误信息) # dmesg (检查硬件设备是否有错误信息) # ifconfig(检查网卡设置是否正确)
# ping www.163.com (检查网络是否正常)
2. 关闭不需要的服务 # ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭: atd crond
irqbalance 合理的调配使用各个CPU核心
microcode_ctl 可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程 network portmap sendmail sshd syslog
3. 重新启动系统 # init 6
4. 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步 # crontab -e 加入一行:
1 */6 * * * ntpdate 210.72.145.44 > /dev/null 2>&1
注:以上为公网条件下;若在内网则需要自己搭建时间同步服务器。
/usr/local/src /usr/local/software_name(software_name为软件名) /usr/local/sbin /data/mysql(默认为/var/lib/mysql,可按情况设置,此处/data分区为最大的分区) /data/www/wwwroot(可按情况设置,此处/data分区为最大的分区) /data/www/logs(可按情况设置,此处/data分区为最大的分区) www:www 5. 源码编译安装所需包(Source) (2) LibXML2
# cd /usr/local/src # tar zxvf libxml2-2.6.32.tar.gz # cd libxml2-2.6.32 # ./configure --prefix=/usr/local/libxml2 # make # make install
(3) LibMcrypt # cd /usr/local/src # tar xjvf libmcrypt-2.5.8.tar.bz2 # cd libmcrypt-2.5.8
# ./configure --prefix=/usr/local/libmcrypt
# make # make install
(4) Apache日志截断程序
# cd /usr/local/src
# tar xzvf cronolog-1.7.0-beta.tar.gz # cd cronolog-1.7.0-beta
# ./configure --prefix=/usr/local/cronolog # make
# make install
(5)其他兼容包
# yum install ntp gd gd-devel libpng libpng-devel libjpeg libjpeg-devel compat-libstdc sysstat libtool-ltdl libtool-ltdl-devel pam-devel autoconf automake –y
(1)禁用 SSH V1 协议 vim /etc/ssh/sshd_config #Protocol 2,1 改为: Protocol 2
(2)禁用 DNS 域名反解 找到:
#UseDNS yes 改为: UseDNS no
最后,确认修改正确后重新启动 SSH 服务 # service sshd restart # ssh -v
确认 OpenSSH 以及 OpenSSL 版本正确。
三、编译安装L.A.M.P环境 1. 下载软件
# cd /usr/local/src httpd-2.2.11.tar.gz
mysql-5.1.34-linux-i686-icc-glibc23.tar.gz php-5.2.9.tar.gz
eaccelerator-0.9.5.3.tar.bz2 memcache-2.2.3.tgz
ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
2. 安装MySQL
# tar xzvf mysql-5.1.34-linux-x86_64-icc-glibc23.tar.gz
# mv mysql-5.1.34-linux-x86_64-icc-glibc23 /usr/local/
# ln –s /usr/local/ mysql-5.1.34-linux-x86_64-icc-glibc23 /usr/local/mysql # useradd mysql –s /sbin/nologin –M –u 504 # chown -R mysql:root /usr/local/mysql/
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql
# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld # chown root:root /etc/rc.d/init.d/mysqld # chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 3 mysqld on
# cp ./support-files/my-huge.cnf /etc/my.cnf # cp /usr/local/mysql/data /data/mysql –r # chown -R mysql:mysql /data/mysql/ # vi /etc/my.cnf 修改以下内容:
在 [mysqld] 段增加或修改: datadir = /data/mysql skip-innodb wait-timeout = 5
max_connections = 512
max_connect_errors = 10000000 thread_concurrency = CPU个数×2
将 log-bin 注释(如果需要使用mysql的主从备份功能,需要log-bin参数打开,不能注释)
# bin/mysqladmin -u root password 'password_for_root'
(注:password_for_root为mysql的root帐户的密码,用户自行设定)
针对大型用户mysql优化的参数设置(供参考):
[mysqld] port = 3306 socket = /tmp/mysql.sock
datadir = /data/mysql skip-locking
skip-name-resolve skip-innodb
skip-symbolic-links local-infile=0
low_priority_updates=1 back_log = 300 key_buffer = 256M
max_allowed_packet = 16M thread_stack = 128K table_cache = 1024 sort_buffer_size = 4M read_buffer_size = 256K join_buffer_size = 4M record_buffer = 2M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M thread_cache_size = 64 query_cache_size = 32M tmp_table_size = 196M max_connections = 1600
max_connect_errors = 10000000000000 wait_timeout = 5
thread_concurrency=16
long_query_time = 1
log-slow-queries = /data/mysql/slow.log
3. 编译安装Apache # cd /usr/local/src
# tar xjvf httpd-2.2.9.tar.bz2 # cd httpd-2.2.9 # ./configure \\
\ \ \
\
\ \ \ \ # make
# make install
# echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local
4. 编译安装PHP
在编译安装PHP之前,我们首先关闭selinux,以免编译时出现错误。
# vi /etc/selinux/config
找到:SELINUX=enforcing 改为:SELINUX=disabled
# echo '0' > /selinux/enforce
开始安装编译PHP:
# cd /usr/local/src
# tar xjvf php-5.2.6.tar.bz2 # cd php-5.2.6
#./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-mysql-sock=/tmp --with-libxml-dir=/usr/local/libxml2 --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-curl --with-mcrypt=/usr/local/libmcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-sockets --enable-exif --enable-zend-multibyte --disable-ipv6 --disable-cgi # make
# make install
# cp php.ini-dist /usr/local/php/etc/php.ini
5. 安装Eaccelerator
# cd /usr/local/src
# tar jxvf eaccelerator-0.9.5.3.tar.bz2 # cd eaccelerator-0.9.5.3 # /usr/local/php/bin/phpize # ./configure \\
--enable-eaccelerator=shared \\
--with-php-config=/usr/local/php/bin/php-config \\ --with-eaccelerator-shared-memory \\ --with-eaccelerator-sessions \\
--with-eaccelerator-content-caching # make
# make install
# mkdir /usr/local/php/ext
# cp modules/eaccelerator.so /usr/local/php/ext/
# 安装为Zend扩展
# vim /usr/local/php/etc/php.ini 插入
zend_extension=\eaccelerator.shm_size=\
eaccelerator.cache_dir=\eaccelerator.enable=\eaccelerator.optimizer=\eaccelerator.check_mtime=\eaccelerator.debug=\eaccelerator.filter=\
eaccelerator.shm_max=\eaccelerator.shm_ttl=\
eaccelerator.shm_prune_period=\eaccelerator.shm_only=\eaccelerator.compress=\
eaccelerator.compress_level=\
# mkdir /tmp/eaccelerator && chmod 0777 /tmp/eaccelerator
6. 安装memcache扩展
# wget http://pecl.php.net/get/memcache-2.2.3.tgz
# tar zxvf memcache-2.2.3.tgz # cd memcache-2.2.3
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config # make
# make install
# cp modules/memcache.so /usr/local/php/ext/
7. 安装Zend Optimizer # cd /usr/local/src
# tar xzvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz # ./ ZendOptimizer-3.3.3-linux-glibc23-x86_64/install.sh 安装过程中需要指定php.ini的路径即/usr/local/php/etc 最后暂时先不要选择重启Apache。
8. 整合Apache与PHP
修改PHP配置文件:
# vim /usr/local/php/etc/php.ini 找到:
extension_dir = \改为:
extension_dir = \找到:
;extension=php_zip.dll 在该行下添加
extension=memcache.so
修改完成后保存退出。
修改Apache配置文件:
# vim /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz 在该行下面添加
AddType application/x-httpd-php .php
找到:
DirectoryIndex index.html 将该行改为
DirectoryIndex index.php index.html index.htm
找到:
User daemon Group daemon 改为: User www
Group www
找到:
Options FollowSymLinks AllowOverride None Order deny,allow Deny from all
将其中的Deny from all改为Allow from all
找到: #Include conf/extra/httpd-mpm.conf #Include conf/extra/httpd-info.conf #Include conf/extra/httpd-vhosts.conf #Include conf/extra/httpd-default.conf 去掉前面的“#”号,取消注释。 注意:以上 4 个扩展配置文件中的设置请按照相关原则进行合理配置! 修改完成后保存退出。 添加www用户,用来运行Apache # useradd www –s /sbin/nologin –M –u 505 重启Apache # /usr/local/apache2/bin/apachectl restart 根据虚拟主机中网站路径的设置(例如/data/www/wwwroot),测试是否配置成功 # cd /data/www/wwwroot # vi phpinfo.php Phpinfo (); ?> 退出并保存。 访问http://IP地址/phpinfo.php,检查phpinfo中的各项信息是否正确。 注:有时无法访问是因为系统开启了防火墙,建议关闭,设置自己的防火墙策略(例如“三 服务器安全设置”中的设置),或者使用硬件防火墙。 9. 提升PHP安全性 在 php.ini 中进行设置提升 PHP 安全性。 vim /usr/local/php/etc/php.ini 找到并修改以下几处设置为: upload_tmp_dir = /tmp expose_php = Off display_errors = Off disable_functions = phpinfo,putenv,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server 10. 提升Apache安全性及优化 进入Apache配置文件目录/usr/local/apache2/conf/extra # cd /usr/local/apache2/conf/extra 编译部分配置文件: # vi httpd-mpm.conf 找到并更更改以下内容: 注:添加ServerLimit这行参数,根据网站的访问量相应的调整ServerLimit和MaxClients两项参数,MaxClients值不能大于ServerLimit的值。 # vi httpd-default.conf KeepAlive Off 注:此处默认为Off,用户可根据前端负载均衡器的配置中是否保持会话连接来选择开启或关闭,建议一般用户设置为Off 修改以下参数为: ServerTokens Prod ServerSignature off vim /usr/local/apache2/conf/extra/httpd-info.conf 将配置文件中下面一段修改为如下: ExtendedStatus On 修改以上PHP与 Apache相关设置后需要重启Apache服务器。 三、服务器安全性设置 1. 设置系统防火墙 # vi /usr/local/sbin/fw.sh 将以下脚本命令粘贴到 fw.sh 文件中。 #!/bin/bash # Stop iptables service first service iptables stop # Inital chains default policy /sbin/iptables -F -t filter /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT # Enable Native Network Transfer /sbin/iptables -A INPUT -i lo -j ACCEPT # Accept Established Connections /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # ICMP Control /sbin/iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT # WWW Service /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT # SSH Service /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT # chmod 755 /usr/local/sbin/fw.sh # echo '/usr/local/sbin/fw.sh' >> /etc/rc.local # /usr/local/sbin/fw.sh 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LAMP优化部署文档在线全文阅读。
相关推荐: