Linux+nginx+mysql+php Lnmp的环境搭建+宝塔命令面板的操作,nginxlnmp


一、配置CentOS 第三方yum源(CentOS默认的标准源里没有nginx软件包)

 

[root@localhost ~]# yum install wget  #安装下载工具wget
[root@localhost ~]#wget http://www.atomicorp.com/installers/atomic  #下载atomic yum源
[root@localhost ~]#sh ./atomic   #安装
[root@localhost ~]# yum check-update #更新yum软件包

二、安装开发包和库文件

 

[root@localhost ~]# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel

 

三、卸载已安装的apache、mysql、php

[root@localhost ~]# yum remove httpd
[root@localhost ~]# yum remove mysql
[root@localhost ~]# yum remove php

 

四、安装nginx

 

[root@localhost ~]# yum install nginx -y
[root@localhost ~]# service nginx start

 

五、安装mysql

 

 

[root@localhost ~]# yum install mysql mysql-server mysql-devel -y
[root@localhost ~]# service mysqld start

#为root账户设置密码
[root@localhost ~]#mysql_secure_installation  #初始化MySQL
Enter current password for root (enter for none):   <---输入现在的root密码,因为我们还没设置,直接回车
Set root password? [Y/n] Y                                    <---是否设定root密码,当然设置了,输入Y回车
New password:                                                      <---输入root密码,并回车,输入的过程中不会有任何显示
Re-enter new password:                                        <---再次输入root密码,并回车,输入的过程中不会有任何显示
Remove anonymous users? [Y/n] Y                      <---是否删除匿名用户,删除,输入Y回车
Disallow root login remotely? [Y/n] Y                     <---是否删禁止root用户远程登录,当然禁止,输入Y回车
Remove test database and access to it? [Y/n]      <---是否删除测试数据库test,看个人喜好
Reload privilege tables now? [Y/n] Y                    <---刷新权限,输入Y回车
最后出现:Thanks for using MySQL!
MySql密码设置完成,重新启动 MySQL:

[root@localhost ~]#/etc/init.d/mysqld start  #启动
[root@localhost ~]# /etc/init.d/mysqld status
[root@localhost ~]# chkconfig mysqld on

 

 

 

六、安装php

 

[root@localhost ~]# yum -y install php php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap 

 

安装php和所需组件使PHP支持MySQL、FastCGI模式

 

[root@localhost ~]# yum install  php-tidy php-common php-devel php-fpm php-mysql -y
[root@localhost ~]# service php-fpm start
Starting php-fpm:                                          [  OK  ]

 

 

 

七、配置nginx支持php

 

[root@localhost ~]# cp /etc/nginx/nginx.conf{,.bak}  #将配置文件改为备份文件

#修改nginx配置文件,添加fastcgi支持
vim /etc/nginx/nginx.conf  #编辑
user  nginx  nginx;  #修改nginx运行账号为:nginx组的nginx用户
:wq!    #保存退出

[root@localhost nginx]# cp /etc/nginx/conf.d/default.conf{,.bak}

[root@localhost nginx]# vim /etc/nginx/conf.d/default.conf 

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;   #增加index.php
    }
      location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

 

 

八、配置php

 

[root@localhost nginx]# cp /etc/php.ini{,.bak}
[root@localhost ~]# vim /etc/php.ini
expose_php = Off #禁止显示php版本的信息

 

九、重启nginx php-fpm

 

[root@localhost nginx]# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@localhost nginx]# service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:           

 

 

十、测试

 

[root@localhost ~]# cd /usr/share/nginx/html/  
[root@localhost html]# vim  index.php 
<?php
     phpinfo();
?>
[root@localhost html]# chown nginx.nginx /usr/share/nginx/html/ -R  #设置目录所有者

#配置防火墙,开启80端口、3306端口
[root@localhost ~]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 -mstate --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -mstate --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
######
[root@localhost ~]/etc/init.d/iptables restart  #最后重启防火墙使配置生效
 

 

 

nginx默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx/usr/share/nginx/html/ -R
MySQL数据库目录是:/var/lib/mysql
权限设置:chown mysql.mysql -R /var/lib/mysql

以上Lnmp环境搭建完成。

---------------------------------------------------------------------------------------------------------------------------------------------

接下来是centos宝塔面板的安装

只需在shell当中输入:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh 

回车完成安装,大概需要5-15分钟。

 

 

 

在安装完成后会提示第一次登陆的账号密码,一定要复制粘贴下来。

 

然后只需要在浏览器中输入服务器的ip地址:8888就可以进入宝塔面板页面

在宝塔中,我们可以进行网站配置

伪静态配置

   location / { 
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=/$1  last;
   break;
    }
 }

配置好后,在nginx配置文件中会显示你配置的结果

---------------------------------------

 

如果你已经配置完并且项目搭建完成,遇到了“mkdir() Permission denied”错误。

那么这个tp5的这个错误,你有很大概率会遇见它。

因为这跟文件的权限有关系,特别是自动生成的文件或者目录类的权限,linux服务器出于安全因素对于用户的权限有着严格的控制。

对于tp框架而言,自动生成的文件或者目录应该是runtime,public目录,所以在线部署代码的时候,开放此类目录的权限。

所以解决mkdir() premission denied 的问题最直接的方式,把runtime,public权限放开,让所有用户都可以创建它。


chmod -R 777 runtime,public

 

相关内容

    暂无相关文章