CentOS6yum方式安裝lnmp
本文打造易於複製貼上的lnmp安裝方法。
相比較其他編譯安裝的教程,本文解除了軟體版本鎖定,理論上,永遠安裝的是最新穩定版且支援軟體升級。
編譯教程在寫作時往往使用當時的最新穩定版軟體,但是稍過時日,新的漏洞出來,很快會將讀者帶入危險,因為軟體已經過時了。嚴重不建議新手使用編譯方法安裝lnmp。
環境CentOS 6.5 x64
安裝第三方軟體源(epel、nginx、remi)
1
2
3
|
rpm -ivh http: //download .fedora.redhat.com /pub/epel/6/x86_64/epel-release-6-8 .noarch.rpm
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
1
|
yum install nginx mysql mysql-server php-fpm php-mysql php-cli php-gd php-xml php-mbstring php-mcrypt php-zendopcache --enablerepo=epel,nginx,remi
|
php引數配置
1
2
3
4
5
6
7
8
9
10
|
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配置
1
2
|
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
|
核心優化
1
2
3
4
5
6
7
|
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
|
1
2
3
4
5
|
echo "ulimit -SHn 65535" >> /etc/profile
cat >> /etc/security/limits .conf <<EOF
nginx soft nofile 65535 nginx hard nofile 65535 EOF |
nginx基本優化
1
2
3
4
5
6
|
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
|
nginx的fpm基本配置,找到FASTCGI選項,去掉註釋,修改下面這樣
1
2
3
4
5
6
7
8
|
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頁面設定
1
2
3
4
|
mkdir -p /var/www/html
sed -i `s#/usr/share/nginx/html#/var/www/html#g` /etc/nginx/conf .d /default .conf
sed -i `s/index.html/& index.php/` /etc/nginx/nginx .conf
echo "<?php phpinfo();phpinfo(INFO_MODULES);?>" > /var/www/html/index .php
|
mysql配置
有條件的話,給mysql單獨分個區作為datadir
[mysqld]
datadir=/data
其他引數可以參考/usr/share/mysql下的示例檔案
mysql基本加固,(設定密碼,限制訪問等)
1
|
mysql_secure_installation |
iptables防火牆,需要根據自己設定,下面僅僅是個示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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 icmp -m icmp --icmp- type 8 -m limit --limit 1 /sec -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.1.0 /24 --dport 22 -m recent -- set --name ssh --rsource
iptables -A INPUT -p tcp -s 192.168.1.0 /24 --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 10 --name ssh --rsource -j ACCEPT
iptables -P INPUT DROP iptables -A OUTPUT -s 224.0.0.0 /8 -j DROP
iptables -A OUTPUT -d 224.0.0.0 /8 -j DROP
iptables -A OUTPUT -s 255.255.255.255 /32 -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP /etc/init .d /iptables save
/etc/init .d /iptables restart
EOF |
啟動服務
1
2
3
4
5
6
|
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
|
通過瀏覽器訪問系統IP應該就已經能夠看到php資訊了。
本文轉自 紫色葡萄 51CTO部落格,原文連結:http://blog.51cto.com/purplegrape/936692,如需轉載請自行聯絡原作者
相關文章
- [LNMP]安裝NginxLNMPNginx
- LNMP 環境安裝LNMP
- CentOS 7 安裝 lnmpCentOSLNMP
- 安裝LNMP環境LNMP
- lnmp安裝指令碼LNMP指令碼
- macOS 安裝 LNMP 環境MacLNMP
- brew lnmp 環境安裝LNMP
- LNMP安裝shell指令碼LNMP指令碼
- LNMP一鍵安裝包LNMP
- 10分鐘安裝lnmp-基本docker安裝LNMPDocker
- LNMP--mysql php安裝配置LNMPMySqlPHP
- lnmp環境安裝詳細LNMP
- LNMP—Nginx的編譯安裝LNMPNginx編譯
- LNMP編譯安裝配置+discuzLNMP編譯
- LNMP 原始碼安裝搭建薦LNMP原始碼
- PJzhang:centos7上LNMP方式安裝dvwa漏洞測試環境CentOSLNMP
- 通過兩種方式來安裝WordPress網站(LNMP+寶塔皮膚)網站LNMP
- Magento2 LNMP 環境安裝LNMP
- ubuntu 16.04安裝LNMP環境UbuntuLNMP
- LNMP部署laravel與xhprof安裝使用LNMPLaravel
- LNMP之PHP安裝操作步驟LNMPPHP
- Docker 下安裝配置 lnmp 環境DockerLNMP
- Ubuntu20 LNMP 環境安裝UbuntuLNMP
- zabbix一鍵安裝lnmp環境LNMP
- [LNMP]Nginx-1.6.3編譯安裝LNMPNginx編譯
- lnmp一鍵安裝包下載地址LNMP
- Nginx 實踐案例(原始碼編譯安裝方式):利用LNMP搭建wordpress站點Nginx原始碼編譯LNMP
- mac brew 安裝 lnmp環境 代替MampMacLNMP
- LNMP網站框架搭建(編譯安裝)LNMP網站框架編譯
- centos7下編譯安裝lnmpCentOS編譯LNMP
- lnmp環境安裝-原始碼編譯LNMP原始碼編譯
- centos6.2LNMP環境安裝(yum)CentOSLNMP
- LNMP一鍵自動安裝指令碼LNMP指令碼
- lnmp 一鍵安裝包部署ThinkPHP5LNMPPHP
- CentOS7 快速高效,簡單安裝 lnmpCentOSLNMP
- centos7使用yum安裝lnmp環境CentOSLNMP
- Linux 下使用 Docker 安裝lnmp環境LinuxDockerLNMP
- 【Linux】LNMP 環境搭建(上):安裝篇LinuxLNMP