全新Linux服务器安装Nginx&PHP&MySQL环境

来源:互联网 发布:淘宝我的发票在哪里看 编辑:程序博客网 时间:2024/06/08 01:26

1、Nginx环境安装

最简单的方式——通过yum安装:

yum install nginx

这种方式的缺点是,安装完成后Nginx相关的文件并不会统一放置在一个目录中,而是按照RPM默认安装路径分散放置。

RPM默认安装路径如下:

路径 说明 /etc 一些设置文件放置的目录如/etc/crontab /usr/bin 一些可执行文件 /usr/lib /usr/lib64 一些程序使用的动态函数库 /usr/share/doc 一些基本的软件使用手册与帮助文档 /usr/share/man 一些man page文件


通过下面两个命令查找Nginx安装位置:

rpm -qa | grep nginx //查找Nginx完整包名rpm -ql nginx-1.12.2-1.el7_4.ngx.x86_64 //查找Nginx安装位置

结果如下,通常我们安装程序是把同一程序的文件放在一起,而不管它们的功能是否一致;这里是把相同功能的文件放在一起,而不管是不是同一程序。

Nginx主程序在/usr/sbin/nginx,配置文件在/etc/nginx/nginx.conf,日志文件在/var/log/nginx。

这里写图片描述

启动方式有两种:

  • 执行主程序文件来启动Nginx:
/usr/sbin/nginx -c /etc/nginx/nginx.conf //-c参数用来指定配置文件
  • 以服务方式启动Nginx:
service nginx start

这里会提示:Redirecting to /bin/systemctl start nginx.service,那就按照它的提示,执行该命令后Nginx启动。

同理停止/重启/重新加载配置命令为:/bin/systemctl [stop]|[restart]|[reload] nginx.service


2、PHP环境安装

从PHP官网(http://php.net)上找到下载地址,通常会找到国内镜像:http://cn2.php.net/get/php-7.1.11.tar.gz/from/this/mirror

在linux上使用wget命令下载

wget http://cn2.php.net/get/php-7.1.11.tar.gz/from/this/mirror

看到URL被302重定向到真实地址:http://cn2.php.net/distributions/php-7.1.11.tar.gz
等待下载完成即可。

这里写图片描述

下载到的mirror文件实际上是.tar.gz格式的文件,重命名该文件 mv mirror php-7.1.11.tar.gz,然后解压 tar -zxf php-7.1.11.tar.gz

(安装教程参考官方文档 http://php.net/manual/zh/install.unix.nginx.php)
(中文版个别命令有误,以英文版为准。如配置PHP时,应当执行 ./configure --enable-fpm --with-mysqli

在PHP文件目录下执行:./configure --enable-fpm --with-mysqli,可能会遇到以下问题,解决后重新执行该命令,直到出现“Thank you for using PHP”和“License”,
安装遇到的问题:

  • configure: error: no acceptable C compiler found in $PATH

    即没有C编译器,所以要先安装GCC:yum install gcc

  • configure: error: xml2-config not found. Please check your libxml2 installation

    找不到xml2-config,还要先安装libxml2和libxml2-devel:yum install libxml2 libxml2-devel

继续执行 makemake install

复制配置文件到指定位置:

cp php.ini-development /usr/local/php/php.inicp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.confcp sapi/fpm/php-fpm /usr/local/bin

配置php.ini文件:cgi.fix_pathinfo=0

但是按照官网提示配置/usr/local/etc/php-fpm.conf文件时,文件中并没有user、group相关的字段配置!

user = www-datagroup = www-data

执行/usr/local/bin/php-fpm时,报错:failed to load configuration file ‘/usr/local/etc/php-fpm.conf’

这里写图片描述

按照报错提示找到php-fpm.conf的125行:“include=NONE/etc/php-fpm.d/*.conf”。

本文件是主配置文件,除了主配置文件之外,还可以加载其他配置文件,所以这句话含义是指定其他引入的配置文件位置。

那就可以去掉路径中的NONE/(注意/符号也要去掉,否则就不是相对路径,变成绝对路径了),即读取/usr/local/etc/php-fpm.d/路径下的*.conf文件。

然后去/usr/local/etc/php-fpm.d/下面找,看到底有没有conf文件,发现有一个www.conf.default文件,将其重命名为www.conf,打开后发现user、group是在这里配置!按照官网指导,将user、group改为www-data。

此时如果尝试启动php-fpm会报错:ERROR: [pool www] cannot get uid for user ‘www-data’。

原因是当前Linux系统中并没有www-data的用户和用户组,所以新建用户和用户组:

groupadd www-datauseradd -g www-data www-data

此时执行/usr/local/bin/php-fpm,启动php-fpm没有任何报错,执行ps -ef | grep php命令可以看到php-fpm已经运行

这里写图片描述


注意这里的用户:

php-fpm分为主进程和子进程,由于本次是在root用户下执行的/usr/local/bin/php-fpm,所以master进程用户为root。

由于之前在/usr/local/etc/php-fpm.d/www.conf配置文件中配置了子进程的user和group为www-data,所以子进程的用户为www-data。

阅读全文
0 0
原创粉丝点击