CentOS 6 yum install lnmp

13 年 ago jony CentOS 6 yum install lnmp已关闭评论

php    脚本 文件

环境CentOS 6.X  X86——64

安装第三方软件源(epel、nginx、remi)php

  1. rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  2. yuminstallhttp://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rp
  3. rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  4. rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum一键安装lnmp

  1. yum install nginx php mysql mysql-server php-fpm php-mysql php-cli php-eaccelerator php-gd php-imap php-xml php-xmlrpc php-mbstring php-mcrypt php-suhosin --enablerepo=epel,nginx,remi
  2. 如果这样安装出来的,不是最新版本,可以这样
  3. yum –enablerepo=remi,remi-test install mysql mysql-server  php    看到是最新版本,或者是自己想的版本,再安装下去

php参数配置

下面这些配置可以直接写成一个脚本文件,批量执行更简单。。。。。。。

  1. sed -i '/expose_php/{s/On/Off/g}' /etc/php.ini
  2. sed -i '/display_errors/{s/On/Off/g}' /etc/php.ini
  3. sed -i '/php_errors.log/{s/;//g}' /etc/php.ini
  4. sed -i '/file_uploads/{s/On/Off/g}' /etc/php.ini
  5. sed -i '/allow_url_fopen/{s/On/Off/g}' /etc/php.ini
  6. sed -i '/allow_url_include/{s/On/Off/g}' /etc/php.ini
  7. sed -i '/;date.timezone/{s/;//g;s/=/= Asia\/Shanghai/g}' /etc/php.ini
  8. sed -i '/cgi.fix_pathinfo\=/{s/;//g;s/1/0/g}' /etc/php.ini
  9. sed -i '/memory_limit/{s/128/64/g}' /etc/php.ini
  10. sed -i '/safe_mode/{s/Off/On/g}' /etc/php.ini

php-fpm配置

  1. sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
  2. sed -i '/request_terminate_timeout/{s/;//g;s/0/30/g}' /etc/php-fpm.d/www.conf

内核优化

  1. echo "net.ipv6.conf.all.disable_ipv6 = 1"       >> /etc/sysctl.conf
  2. echo "vm.swappiness = 25"           >> /etc/sysctl.conf
  3. echo "net.ipv4.route.max_size = 524288 "        >> /etc/sysctl.conf
  4. echo "net.core.somaxconn = 10240"           >> /etc/sysctl.conf
  5. echo "net.ipv4.tcp_max_syn_backlog = 204800"    >> /etc/sysctl.conf
  6. echo "net.core.netdev_max_backlog =  204800"    >> /etc/sysctl.conf
  7. echo "net.ipv4.ip_local_port_range = 1024   65535"   >> /etc/sysctl.conf

 

  1. echo "ulimit -SHn 65535" >> /etc/profile
  2. cat >> /etc/security/limits.conf <<EOF
  3. nginx               soft    nofile  65535
  4. nginx               hard    nofile  65535
  5. EOF

nginx基本优化

  1. sed -i '/worker_processes/{s/1/4/g}' /etc/nginx/nginx.conf
  2. sed -i '/worker_processes/a\ worker_rlimit_nofile 65535;' /etc/nginx/nginx.conf
  3. sed -i '/worker_connections/{s/1024/10240/g}' /etc/nginx/nginx.conf
  4. sed -i '/sendfile/a\ server_tokens off;' /etc/nginx/nginx.conf
  5. sed -i '/version/{s/\/\$nginx_version//g}' /etc/nginx/fastcgi_params
  6. sed -i '/events/a\    use epoll;' /etc/nginx/nginx.conf

手工修改:

/etc/nginx/conf.d/default.conf

nginx的fpm基本配置,找到FASTCGI选项,去掉注释,修改下面这样

  1. location ~ \.php$ {
  2.     root  /var/www/html;
  3.     fastcgi_pass  127.0.0.1:9000;
  4.     #fastcgi_pass  unix:/tmp/php-fpm.sock;
  5.     fastcgi_index  index.php;
  6.    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  7.     include  fastcgi_params;
  8. }

nginx页面设置

  1. mkdir -p /var/www/html
  2. sed -i 's#/usr/share/nginx/html#/var/www/html#g' /etc/nginx/nginx.conf
  3. sed -i 's/index.html/& index.php/' /etc/nginx/nginx.conf
  4. echo "<?php phpinfo();phpinfo(INFO_MODULES);?>" >/var/www/html/index.php

iptables防火墙,需要根据自己设置,下面仅仅是个示例

  1. cat >/root/firewall.sh <<EOF
  2. #!/usr/bin/env bash
  3. modprobe ip_tables
  4. modprobe iptable_filter
  5. modprobe ipt_REJECT
  6. iptables -F
  7. iptables -X
  8. iptables -Z
  9. iptables -P INPUT ACCEPT
  10. iptables -P FORWARD DROP
  11. iptables -P OUTPUT ACCEPT
  12. iptables -A INPUT -i lo -j ACCEPT
  13. iptables -A INPUT -p tcp -m multiport --dport 80,22 -j ACCEPTiptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
  14. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  15. iptables -P INPUT DROP
  16. iptables -A OUTPUT -m state --state INVALID -j DROP
  17. /etc/init.d/iptables save
  18. /etc/init.d/iptables restart
  19. EOF

启动服务

  1. chkconfig nginx on
  2. chkconfig php-fpm on
  3. chkconfig mysqld on
  4. /etc/init.d/php-fpm start
  5. /etc/init.d/mysqld start
  6. /etc/init.d/nginx start

测试:

做一个PHP测试页面:
<?php
phpinfo();
?>

通过浏览器访问系统IP应该就已经能够看到php信息了。