nginx +php + redis和 mysql 集群部署_CentOS安装配置LNMP(Linux+Nginx+PHP+MySQL)和Redis
準備篇
1、配置防火墻
開啟80端口、3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
然后保存:
#/etc/rc.d/init.d/iptables save
再查看是否已經有了:
/etc/init.d/iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num? target???? prot opt source?????????????? destination
1??? ACCEPT???? tcp? --? 0.0.0.0/0??????????? 0.0.0.0/0?????????? tcp dpt:3306
2??? ACCEPT???? tcp? --? 0.0.0.0/0??????????? 0.0.0.0/0?????????? tcp dpt:22
3??? ACCEPT???? tcp? --? 0.0.0.0/0??????????? 0.0.0.0/0?????????? tcp dpt:80
Chain FORWARD (policy ACCEPT)
num? target???? prot opt source?????????????? destination
Chain OUTPUT (policy ACCEPT)
num? target???? prot opt source?????????????? destination
重啟防火墻使配置生效
/etc/init.d/iptables restart
2、關閉SELINUX
vim /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加?重啟系統
shutdown -r now
3、安裝第三方yum源
安裝下載工具
yum install wget下載atomic源
wget http://www.atomicorp.com/installers/atomic安裝atomic源
sh ./atomic更新yum源
yum check-update
安裝篇
1、安裝nginx
yum remove httpd* php* #刪除系統自帶的軟件包
yum install nginx #安裝nginx 根據提示輸入y進行安裝
chkconfig nginx on #設置nginx開機啟動
service nginx start #啟動nginx
2、安裝MySQL
yum install mysql mysql-server啟動MySQL
/etc/init.d/mysqld start設為開機啟動
chkconfig mysqld on拷貝配置文件(注意:如果/etc目錄下面默認有一個my.cnf,直接覆蓋即可)
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf為root賬戶設置密碼
mysql_secure_installation回車,根據提示輸入Y,輸入2次密碼,回車,根據提示一路輸入Y,最后出現:Thanks for using MySQL!
MySql密碼設置完成,重新啟動 MySQL:
/etc/init.d/mysqld restart #重啟
3、安裝PHP5
yum install php php-fpm安裝PHP組件,使 PHP5 支持 MySQL,選擇安裝包進行安裝,根據提示輸入Y回車
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt設置php-fpm開機啟動
chkconfig php-fpm on啟動php-fpm
/etc/init.d/php-fpm start
4、安裝redis
centos默認的安裝源在官方centos.org上,而redis在第三方的yum源里,前面已經安裝過atomic了,所以直接:
yum install redis
5、安裝php-redis擴展
cd /tmp
wget https://github.com/nicolasff/phpredis/zipball/master -O php-redis.zip
unzip php-redis.zip解壓后的文件夾為nicolasff-phpredis-c1f862c
/usr/bin/phpize (如果這里出現Can’t find PHP headers in /usr/include/php,The php-devel package is required...,執行yum install php-devel)
./configure
make
make install確認一下so文件已經放置到正確目錄
ll /usr/lib/php/modules/redis.so
配置篇
1、配置nginx支持php
備份原有配置文件
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak編輯
vim /etc/nginx/nginx.conf
#修改nginx運行賬號為:nginx組的nginx用戶
user nginx nginx;
備份原有配置文件
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak編輯
vim /etc/nginx/conf.d/default.conf
#增加index.php
index index.php index.html index.htm;
#取消FastCGI server部分location的注釋,并要注意fastcgi_param行的參數,改為$document_root$fastcgi_script_name,或者使用絕對路徑
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
如果需要兼容pathinfo模式,要這么改:
location ~ \.php { #去掉$
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;#增加這一句
fastcgi_param PATH_INFO $fastcgi_path_info;#增加這一句
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重啟nginx
service nginx restart
2、php配置
vim /etc/php.ini
;修改時區
date.timezone = PRC
;列出PHP可以禁用的函數,如果某些程序需要用到某個函數,可以刪除,取消禁用
disable_functions =passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,ope
nlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdns
rr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,
posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty,
posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
;禁止顯示php版本的信息
expose_php = Off
;打開magic_quotes_gpc來防止SQL注入
magic_quotes_gpc = On
;支持php短標簽
short_open_tag = ON
;設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站,如果改了之后安裝程序有問題(例如:織夢內容管理系統),可以注銷此行,或者直接寫上程序的目錄
open_basedir = .:/tmp/
3、配置php-fpm
備份原有配置文件
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak編輯
vim /etc/php-fpm.d/www.conf
;修改用戶為nginx
user = nginx
;修改組為nginx
group = nginx
4、配置redis
備份原有配置文件
cp /etc/redis.conf /etc/redis.confbak編輯
vim /etc/redis.conf
#是否以后臺守護進程運行
daemonize yes
#如果以后臺進程運行的話,就需要指定pid,你可以在此自定義redis.pid文件的位置。
pidfile /var/run/redis/redis.pid
#指定log文件
logfile /var/log/redis/redis.log運行redis:
/usr/sbin/redis-server /etc/redis.conf
5、啟用php-redis擴展
vim /etc/php.ini
#加入
extension=redis.so
測試篇
編輯
cd /usr/share/nginx/html
vim index.php
phpinfo();
?>設置權限
chown nginx.nginx /usr/share/nginx/html -R重啟nginx
service nginx restart重啟php-fpm
service php-fpm restart在客戶端瀏覽器輸入服務器IP地址,可以看到相關的配置信息,說明lnmp配置成功!
總結
以上是生活随笔為你收集整理的nginx +php + redis和 mysql 集群部署_CentOS安装配置LNMP(Linux+Nginx+PHP+MySQL)和Redis的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python装饰器有几种_python几
- 下一篇: webservice java客户端_J