准备篇:
1、配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
添加好之后防火墙规则如下所示:
#########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
/etc/init.d/iptables restart #最后重启防火墙使配置生效
2、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
3、配置CentOS 6.2 第三方yum源(CentOS默认的标准源里没有nginx软件包)
yum install wget #安装下载工具wget
wget http://www.atomicorp.com/installers/atomic #下载atomic yum源
sh ./atomic #安装
yum check-update #更新yum软件包
#############################################################################
安装篇:
一、安装nginx
yum install nginx #安装nginx,根据提示,输入Y安装即可成功安装
service nginx start #启动
chkconfig nginx on #设为开机启动
/etc/init.d/nginx restart #重启
rm -rf /usr/share/nginx/html/* #删除ngin默认测试页
二、安装MySQL
1、安装mysql
yum install mysql mysql-server #询问是否要安装,输入Y即可自动安装,直到安装完成
/etc/init.d/mysqld start #启动MySQL
chkconfig mysqld on #设为开机启动
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
shutdown -r now #重启系统
2、为root账户设置密码
mysql_secure_installation
回车,根据提示输入Y
输入2次密码,回车
根据提示一路输入Y
最后出现:Thanks for using MySQL!
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
MySql密码设置完成,重新启动 MySQL:
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #启动
service mysqld restart #重启
三、安装PHP
1、安装PHP
yum install php #根据提示输入Y直到安装完成
2、安装PHP组件,使PHP支持 MySQL、PHP支持FastCGI模式
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 libmcrypt-devel php-fpm #根据提示输入Y回车
/etc/init.d/mysqld restart #重启MySql
/etc/init.d/nginx restart #重启nginx
/etc/rc.d/init.d/php-fpm start #启动php-fpm
chkconfig php-fpm on #设置开机启动
#############################################################################
配置篇
一、配置nginx支持php
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak #备份原有配置文件
vi /etc/nginx/nginx.conf #编辑
user nginx nginx; #修改nginx运行账号为:nginx组的nginx用户
:wq! #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #备份原有配置文件
vi /etc/nginx/conf.d/default.conf #编辑
index index.php index.html index.htm; #增加index.php
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
# 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;
}
#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
二、配置php
vi /etc/php.ini #编辑
date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,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
#在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在432行 禁止显示php版本的信息
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入
open_basedir = .:/tmp/ #在380行,设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可注销此行,或者直接写上程序目录路径/var/www/html/www.osyunwei.com/:/tmp/
:wq! #保存退出
三、配置php-fpm
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak #备份原有配置文件
vi /etc/php-fpm.d/www.conf #编辑
user = nginx #修改用户为nginx
group = nginx #修改组为nginx
/etc/init.d/mysqld restart #重启MySql
/etc/init.d/nginx restart #重启nginx
/etc/rc.d/init.d/php-fpm restart #重启php-fpm
#############################################################################
测试篇
cd /usr/share/nginx/html/ #进入nginx默认网站根目录
vi index.php #新建index.php文件
<?php
phpinfo();
?>
:wq! #保存
chown nginx.nginx /usr/share/nginx/html/ -R #设置目录所有者
chmod 700 /usr/share/nginx/html/ -R #设置目录权限
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
#############################################################################
备注
nginx默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx /usr/share/nginx/html/ -R
MySQL数据库目录是:/var/lib/mysql
权限设置:chown mysql.mysql -R /var/lib/mysql
此教程目前(2012.2.14)安装Nginx+PHP+MySQL版本如下:
我自己没这样搞过,一直用一键包的,有空学学!
相互学习
非常感谢,我正在找一个详细LNMP资料
我想问一下,YUM安装,mysql安装是那个版本?
截止目前(2012.2.14)MySQL 5.5.20版本
因为yum源会随时更新!
学习了!
照着博主的做了,成功了
下次不看文章,自己做做看
不是说让你把配置文档都背下来
关键在于要理清思路,知道为什么这么做,这才是最重要的!
思想决定行为!
嗯,是的,
谢谢指导
呵呵 这就是过来人得经验吧 读书那会就是背配置文档
思想决定行为!
源码编译和yum安装有区别不?我照着你写的源码编译,死在mysql上了.打算用yum安装,楼主好像没有装zend额.
1、不是死在MySQL上,是你没有耐心的等待,MySQL编译安装的过程中,会有一段时间会比较慢,感觉像是卡死了一样!
特别注意:在执行make install编译的过程中,如果你看到屏幕上出现下面这一行,卡在那里,很久都过不去,千万别以为是编译错误了,或者服务器
卡住了,只需要坚持,耐心的等待几分钟,就会编译成功!Mysql编译安装告诉我们,任何事情,只要坚持下去,终会成功!
make[4]: Entering directory `/usr/local/src/mysql-5.1.59/mysql-test’
###################################################################
2、Zend安装教程:CentOS安装php加速软件Zend Guard
http://www.osyunwei.com/archives/577.html
3、CentOS安装php加速软件Zend Optimizer 3.3.9
http://www.osyunwei.com/archives/855.html
楼主,能不能讲下,怎么配置nginx,我网里面添加域名,网站会显示
The website you were trying to reach is temporarily unavailable.
Please check back soon.
If you are the owner of this website, please contact Technical Support as soon as possible.
/etc/nginx/conf.d/www.lankering.me.conf
server
{
listen 184.82.162.227:80;
server_name http://www.lankering.me *.lankering.me;
error_page 404 /404.html;
access_log logs/www.lankering.me.access.log;
location /{
root /www/lankering/;
index index.htm index.html index.php;
}
location ~/\.php{
deny all;
}
}
查看网站目录权限设置!
chown nginx.nginx /你的网站目录/ -R #设置目录所有者
chmod 700 /你的网站目录/ -R #设置目录权限
这个要设置下,不然会502bad gateway.谢谢楼主,我终于弄好了,
我源码编译报的不是那错,是mysql的密码设置,ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES).yum安装的时候也会,然后网站找到方法了.
5.5.X貌似没有这个问题了
Enter current password for root (enter for none):
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
设mysql会这样,
我原来已经安装好了PHP和MySQL。只是安装您的步骤安装了NGIX,然后安装步骤修改了相关参数。但是后来发现MySQL的服务无法启动了。请问是何原因。MySQL,PHP和NGIX都已经通过YUM update升级到了最新版本。
对了。为了启用NGIX,我把原来Apache给停了。请问,这样是否可以,直接按照步骤安装NGIX?
可以!或者apache默认端口80改一下!
按照你的另外一篇文章的做法,已经搞好了。只需停掉Httpd服务即可。
解决方法(切记,操作前,一定备份mysql数据库):
rm -fr /var/lib/mysql/* #删除目录
rm /var/lock/subsys/mysqld #删除目录
killall mysqld #结束mysql进程
service mysqld start #启动mysql
/etc/rc.d/init.d/mysqld status #查看mysql状态
mysql_secure_installation #重置Mysql数据库密码
Mysql的Worksbenche也可以远程操作了, 谢谢!
任何操作之前备份是个好习惯!
具体的错误信息是什么?请加群讨论!
安装完 LNMP之后,各个服务启动正常。MySQL的远程访问也正常。但是我在浏览器里面输入地址时,返回以下错误:
403 Forbidden
nginx/1.0.12
LNMP安装在VMware虚拟机,浏览时通过安装在宿主机的QQ浏览器。
如果提交这个的话(http://192.168.199.138/index.php), 返回如下:
请问这是什么原因?
谢谢!
nginx目录权限设置
是按照你的说明操作吗?
nginx默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx /usr/share/nginx/html/ -R
在客户端测试里显示File not Found怎么回事
目录权限、网站路径!
我也遇上这样的问题。最后朋友你是怎样解决的?
楼主,能说说怎么装perl吗?网站没法伪静态.
是pcre 我打错了
看教程,开启伪静态部分说明!!!
location ~ \.htm$ {
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;
}
楼主有没有试过这样?php解析htm文件,会把access denied的错误,怎么解决
nginx 修改了网站目录,访问不到是什么原因?依旧认到原目录。
检查目录是否修改正确
目录权限设置是否正确
请问下。我用centos5.8版本的可以用这个教程安装吗?
我用军哥的lnmp0.9版装在CentOS6.2上,网站用了CDN加速…把SHH默认端口改了其他,在防火墙上就没有加22端口只加了改了的端口,,还有80端口和禁止了一个IP段,,然后重启SHH和防火墙,发现并没有封掉我设置的IP段开始以为CDN问题导致,然后试着重启系统,悲剧就发生了,全球ping不通,就算我把SHH端口设置错误了,但我80端口还是开启了的,想想那次的折腾害我现在想改什么东西都用虚拟机搭建一个系统测试再上VPS上做….不过现在还没解决这个IP段的问题,博主可以解答一下吗?是否用了CDN不能封闭IP??但我看nginx日志时第一个IP是CDN 的IP,然后最后处是可以看到用户的IP的,比如百度蜘蛛的IP都是可以记录的,真想不明白啊……..
在虚拟机上装了centos6.2 ,但是重启centos 测试网页都打不开了,终于找到解决方法了,呵呵,
为什么我按照这里的安装了 我的php.ini只有二三十行
请问为什么要关团:SELINUX呢
非常好 ,按照教程来 一次成功
我的怎么没有成功啊 ,写入IP什么也没有
写得很详细