> CentOS > CentOS服务器 > 环境配置 >

lnmp配置(linux(centos7).ngnix.mariadb.php(php-fpm,phpmyadmin))

LNMP(linux,nginx,mariadb,php),此处以centos7为例,root权限操作,以yum方式安装。几点说明:

  • 域名解析。如果后续需要使用域名测试安装情况,务必提前进行解析设置,如某些域名供应商或主机供应商提供解析功能。如果使用Ip测试可以忽略。
  • mariadb即是mysql的开源社区版,遵循GPL;
  • centos7使用systemd管理服务,使用如下:
    systemctl enbale/is-enable/disable/start/restart/stop/status/reload/--failed  servicename.service

自启enbale/查询自启状态is-enable/禁止自启disable/立即启动start/立即重启restart/立即停止stop/状态查询status/重载配置reload/查询启动失败项目--failed

服务名(servicename)后也可不加.service。

  • 本示例以nano编辑器编辑,常用操作方法:

nano xx    打开名为xx的文件 如果不存在则创建名为xx的文件
ctl+x  退出并询问(修改过内容时才询问)-n不保存且退出  y保存并问是否改名  c取消此操作
ctrl+o保存  ctrl+w查找


安装

安装nmp(nginx-mariadb-php,以及一些php插件)

yum install nginx mariadb mariadb-server php php-fpm phpmyadmin php-mysql php-mcrypt php-xml php-gd php-pear php-imap php-ladap php-mbstring php-odbc php-bcmath php-mhash libmcrypt libjpeg*
 php-xmlrpc 

设置开机启动并立即启动服务:

systemctl enable nginx mariadb php-fpm && systemctl start nginx mariadb php-fpm

 


配置

1.mariadb配置:输入>

mysql_secure_installation

回车>根据提示输入Y>输入2次密码>回车>根据提示一路输入Y>最后出现:Thanks for using MariaDB!

 

2.php配置:

编辑php.ini,找到session.save_path这一行,去掉注释(去掉行首分号),修改如下:

session.save_path = "/var/lib/php/session"

查看php要写入的session文件(/var/lib/php/session)是否存在(一般是存在的):

ls /var/lib/php/session
如果返回结果提示不存在,则手工创建
mkdir /var/lib/php/session

为确保nginx有权限写入session,修改目录权限:

chown nginx:nginx /var/lib/php/session/ -R

 

3.phpmyadmin配置(以下方法选其一):

  • 复制:复制phpMyAdmin目录到nginx主目录,以/usr/share/nginx/html/为例(centos以yum安装的phpmyadmin在/usr/share下)>
cp /usr/share/phpMyAdmin/ /usr/share/nginx/html/

××为了方便,可将phpMyAdmin改为phpmyadmin或者其他名字(为了安全,建议更改名字)。如果更改了名字,那么nginx的配置(/usr/share/conf.d/下的conf文件)要改为相应的目录名称,下同。

  • 别名:先按复制方法复制,再利用alis,在ngninx的conf配置中(位于/etc/nginx/conf.d/下)location /phpMyAdmin { 的下一行添加>
alias phpmyadmin="/usr/share/nginx/html/phpMyAdmin/"; #phpmyadmin可以是自定义的任何名字
  • 软链接:软链接至主目录(个人喜好并推荐,phpmyadmin通过yum升级后也不用重新复制)>
ln -sf /usr/share/phpMyAdmin/ /usr/share/nginx/html/phpmyadmin

 

4.php-fpm配置:

编辑/etc/php-fpm.d/www.conf如下:

user = nginx #修改用户为nginx
group = nginx #修改组为nginx


5.nginx配置:
如果/etc/nginx/conf.d/中没有任何conf文件,则复制一份(此处以dfault为名举例):

cp /etc/nginx/nginx.conf.default /etc/nginx/conf.d/default.conf

或者直接在/etc/nignx/conf.d/下新建(如果conf.d/下不存在任何conf文件)一个conf文件,内容如下:

 
server {
  listen 80;
#此处server_name后填写域名
  server_name 1wei.cc www.1wei.cc;
#ngnix默认的主目录,可根据具体情况修改
  root /usr/share/nginx/html;
  

  location / {
  #添加index.php
  index index.php index.html index.htm;
  }
  
#phpmyadmin的目录,根据情况更改
  location /phpMyAdmin {
  index index.php;
  }
  

  location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
}
 

 
*权限问题nginx主目录的权限要求文件权限644,文件夹755,所有者为nginx的执行用户(默认是nginx组的nginx),以根目录为/srv/web为例:

1 chown -R nginx.nginx /usr/share/nginx/html/
2 find /srv/web/ -type f -exec chmod 644 {} \;
3 find /srv/web/ -type d -exec chmod 755 {} \;

1使nginx根目录的所有者变为nginx组的nginx,2则搜索nginx根目录下文件赋予权限644,3则搜索nginx根目录下文件授予权限755。
可以将3条命令写入bashrc以alias方式存储方便执行,如写进/etc/bashrc,nano.bashrc,再文件末尾写入:

alias webroot='chown -R nginx.nginx /srv/web/ && find /srv/web/ -type d -exec chmod 755 {} \; && find /srv/web/ -type f -exec chmod 644 {} \;'

保存并执行source /etc/bashrc 使其生效。以后只要执行webroot就可以啦。


 

测试

配置完后,测试前重启所有服务:

systemctl restart nginx mariadb php-fpm
  • nginx测试:登录网站测试,根据具体情况,在浏览器打开域名或IP,如www.1wei.cc。
  • 测试php解析:

添加phpinfo测试文件:

nano /usr/share/nginx/html/phpinfo.php

在phpinfo.php内添加以下代码:

<?php
phpinfo();
?>

打开(以1wei.cc为例)1wei.cc/phpinfo.php,可以看到php详情页面。

  • phpmyadmin测试,以将phpMyAdmin改为了phpmyadmin为例,打开 1wei.cc/phpmyadmin



(责任编辑:IT)