CentOS 6 yum install lnmp
13 年 ago jony CentOS 6 yum install lnmp已关闭评论
php 脚本 文件
环境CentOS 6.X X86——64
安装第三方软件源(epel、nginx、remi)php
- rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
-
yuminstallhttp://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rp - rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
- rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum一键安装lnmp
- 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
- 如果这样安装出来的,不是最新版本,可以这样
- yum –enablerepo=remi,remi-test install mysql mysql-server php 看到是最新版本,或者是自己想的版本,再安装下去
php参数配置
下面这些配置可以直接写成一个脚本文件,批量执行更简单。。。。。。。
- sed -i '/expose_php/{s/On/Off/g}' /etc/php.ini
- sed -i '/display_errors/{s/On/Off/g}' /etc/php.ini
- sed -i '/php_errors.log/{s/;//g}' /etc/php.ini
- sed -i '/file_uploads/{s/On/Off/g}' /etc/php.ini
- sed -i '/allow_url_fopen/{s/On/Off/g}' /etc/php.ini
- sed -i '/allow_url_include/{s/On/Off/g}' /etc/php.ini
- sed -i '/;date.timezone/{s/;//g;s/=/= Asia\/Shanghai/g}' /etc/php.ini
- sed -i '/cgi.fix_pathinfo\=/{s/;//g;s/1/0/g}' /etc/php.ini
- sed -i '/memory_limit/{s/128/64/g}' /etc/php.ini
- sed -i '/safe_mode/{s/Off/On/g}' /etc/php.ini
php-fpm配置
- sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
- sed -i '/request_terminate_timeout/{s/;//g;s/0/30/g}' /etc/php-fpm.d/www.conf
内核优化
- echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
- echo "vm.swappiness = 25" >> /etc/sysctl.conf
- echo "net.ipv4.route.max_size = 524288 " >> /etc/sysctl.conf
- echo "net.core.somaxconn = 10240" >> /etc/sysctl.conf
- echo "net.ipv4.tcp_max_syn_backlog = 204800" >> /etc/sysctl.conf
- echo "net.core.netdev_max_backlog = 204800" >> /etc/sysctl.conf
- echo "net.ipv4.ip_local_port_range = 1024 65535" >> /etc/sysctl.conf
- echo "ulimit -SHn 65535" >> /etc/profile
- cat >> /etc/security/limits.conf <<EOF
- nginx soft nofile 65535
- nginx hard nofile 65535
- EOF
nginx基本优化
- sed -i '/worker_processes/{s/1/4/g}' /etc/nginx/nginx.conf
- sed -i '/worker_processes/a\ worker_rlimit_nofile 65535;' /etc/nginx/nginx.conf
- sed -i '/worker_connections/{s/1024/10240/g}' /etc/nginx/nginx.conf
- sed -i '/sendfile/a\ server_tokens off;' /etc/nginx/nginx.conf
- sed -i '/version/{s/\/\$nginx_version//g}' /etc/nginx/fastcgi_params
- sed -i '/events/a\ use epoll;' /etc/nginx/nginx.conf
手工修改:
/etc/nginx/conf.d/default.conf
nginx的fpm基本配置,找到FASTCGI选项,去掉注释,修改下面这样
- location ~ \.php$ {
- root /var/www/html;
- fastcgi_pass 127.0.0.1:9000;
- #fastcgi_pass unix:/tmp/php-fpm.sock;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
nginx页面设置
- mkdir -p /var/www/html
- sed -i 's#/usr/share/nginx/html#/var/www/html#g' /etc/nginx/nginx.conf
- sed -i 's/index.html/& index.php/' /etc/nginx/nginx.conf
- echo "<?php phpinfo();phpinfo(INFO_MODULES);?>" >/var/www/html/index.php
iptables防火墙,需要根据自己设置,下面仅仅是个示例
- cat >/root/firewall.sh <<EOF
- #!/usr/bin/env bash
- modprobe ip_tables
- modprobe iptable_filter
- modprobe ipt_REJECT
- iptables -F
- iptables -X
- iptables -Z
- iptables -P INPUT ACCEPT
- iptables -P FORWARD DROP
- iptables -P OUTPUT ACCEPT
- iptables -A INPUT -i lo -j ACCEPT
-
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
-
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables -P INPUT DROP
- iptables -A OUTPUT -m state --state INVALID -j DROP
- /etc/init.d/iptables save
- /etc/init.d/iptables restart
- EOF
启动服务
- chkconfig nginx on
- chkconfig php-fpm on
- chkconfig mysqld on
- /etc/init.d/php-fpm start
- /etc/init.d/mysqld start
- /etc/init.d/nginx start
测试:
做一个PHP测试页面:
<?php
phpinfo();
?>
通过浏览器访问系统IP应该就已经能够看到php信息了。