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
继续执行 make
、make install
复制配置文件到指定位置:
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
配置php.ini文件:cgi.fix_pathinfo=0
但是按照官网提示配置/usr/local/etc/php-fpm.conf文件时,文件中并没有user、group相关的字段配置!
user = www-data
group = 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-data
useradd -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。
3、MariaDB安装
CentOS官方源中提供MariaDB,直接执行:
yum install mariadb-server
yum install mariadb
直接执行 mysql_secure_installation 按需初始化 MariaDB,通过服务方式启动MariaDB:
systemctl start mariadb
(注:在CentOS 7之后服务管理使用 systemctl 命令)