一、安装前
1. 更新系统软件:
yum update
2. 查看是否已安装wget:
rpm -qa wget
否则安装:
yum install wget
3. 查看是否已安装编译器:
rpm -qa gcc
否则安装:
yum install gcc gcc-c++
 
二、安装Nginx
1. 安装nginx依赖包
nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:
yum -y install pcre pcre-devel
nginx的各种模块中需要使用gzip压缩:
yum -y install zlib zlib-devel
安全套接字层密码库:
yum -y install openssl openssl-devel
2. 下载nginx包并解压(到/usr/local/src目录中)
cd /usr/local/src
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
3. 编译安装(到/usr/local/nginx目录中)
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
make
make install
4. 创建并设置nginx运行账号:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /usr/local/nginx/conf
vim nginx.conf
设置user参数如下:
user nginx nginx;
其他配置参数暂时无需改动。
5. 设置nginx为系统服务
vim /lib/systemd/system/nginx.service
文件内容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
6. 设置nginx开机自启动
systemctl enable nginx.service
7. 开启nginx服务:
systemctl start nginx.service
查看nginx是否启动成功:
ps aux | grep nginx
在浏览器中访问测试:
http://IP
出现
类似 welcome nginx!之类的页面反馈
表示可以成功访问到nginx
 
8. 防火墙开放80端口(nginx默认使用80端口,可在nginx.conf中配置,若无需进行远程访问则不需要开放端口)
永久开放80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:
firewall-cmd --reload
查看防火墙开启状态:
systemctl status firewalld
查看80端口是否开放成功:
firewall-cmd --zone=public --query-port=80/tcp
可在windows宿主主机浏览器直接访问虚拟机ip测试是否可以成功访问。
 
三、安装Mysql
1. 卸载已有mysql
查看是否已安装mysql:
rpm -qa mysql
有则卸载:
rpm -e --nodeps 文件名称
是否存在与mysql相关的文件或目录:
whereis mysql
是则删除。
查看是否存在mariadb:
rpm -qa | grep mariadb
存在则卸载:
rpm -e --nodeps 文件名 //文件名是上一个命令查询结果
存在/etc/my.cnf,则需要先删除:
rm /etc/my.cnf
2. 安装编译mysql需要的依赖包
yum install libevent* libtool* autoconf* libstd* ncurse* bison* openssl*
3. 安装cmake(mysql5.5之后需要用cmake支持编译安装)
查看是否已安装cmake:
rpm -qa cmake
没有则下载编译安装:
cd /usr/local/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
tar -xf cmake-2.8.12.1.tar.gz
cd cmake-2.8.12.1
./configure
make
make install
检查cmake是否安装成功:
cmake --version
4.MySQL安装之yum安装
  在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。下载并安装MySQL官方的 Yum Repository

 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。 yum -y install mysql57-community-release-el7-10.noarch.rpm
 下面就是使用yum安装MySQL了yum -y install mysql-community-server
 这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。5. MySQL数据库设置
 首先启动MySQLsystemctl start  mysqld.service
 查看MySQL运行状态,运行状态如图:systemctl status mysqld.service
 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
 上面标记的就是初始密码
 如下命令进入数据库:
mysql -uroot -p     # 回车后会提示输入密码
 输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库: mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
 这里有个问题,新密码设置的时候如果设置的过于简单会报错:原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
MySQL完整的初始密码规则可以通过如下命令查看:
mysql> SHOW VARIABLES LIKE 'validate_password%';
 +--------------------------------------+-------+
 | Variable_name                        | Value |
 +--------------------------------------+-------+
 | validate_password_check_user_name    | OFF   |
 | validate_password_dictionary_file    |       |
 | validate_password_length             | 4     |
 | validate_password_mixed_case_count   | 1     |
 | validate_password_number_count       | 1     |
 | validate_password_policy             | LOW   |
 | validate_password_special_char_count | 1     |
 +--------------------------------------+-------+
 rows in set (0.01 sec)  密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
 validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
  解决方法就是修改密码为规范复杂的密码:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'z?guwrBhH7p>';
 Query OK, 0 rows affected (0.00 sec)
  
 这时候我们要把密码规则改一下,执行下面sql就可以了: mysql> set global validate_password_policy=0;
 Query OK, 0 rows affected (0.00 sec)
  
 mysql> set global validate_password_length=1;
 Query OK, 0 rows affected (0.00 sec)
  
  设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如1234之类的。到此数据库的密码设置就完成了。修改数据库密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED BY 'sa123456';
 
 但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
 yum -y remove mysql57-community-release-el7-10.noarch
  配置算是完成了

 

可视化工具的登录授权:(如果授权不成功,请查看防火墙)
操作完成上面的,现在还不能用可视化的客户端进行连接,需要我们进行授权:

修改登录数据库密码
 grant all on *.* to root@'%' identified by 'sa123456';
   大功告成!!!四、安装PHP
1. 安装php依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
若提示yum中没有可用的软件包libmcrypt和libmcrypt-devel,则需要手动编译安装,我下载的包为libmcrypt-2.5.8.tar.gz:
cd /usr/local/src
wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
make
make install

2. 下载php包并解压

cd /usr/local/src

在windows上前往php官网
https://www.php.net/downloads.php 下载php-7.2.21包,然后使用rz指令将下载好的php安装包上传到centos7上,解压:

tar -zxvf php-7.2.21.tar.gz

3. 编译安装(到/usr/local/php目录)

cd php-7.2.21
###make clean 清理原编译安装的文件
./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/lib/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath
(注意:--with-mcrypt参数指定的是libmcrypt的安装目录。Php7不再使用mysql的库来支持mysql的连接,而是启用了mysqlnd来支持,所以php7的编译已经不再使用--with-mysql参数指定mysql的安装位置了,若想支持mysql,需要设置--enable-mysqlnd、--with-mysqli和--with-pdo-mysql=mysqlnd参数,--with-mysql-sock指定的是编译mysql时-DMYSQL_UNIX_ADDR参数指定的文件)
make  (此过程需花费大概20分钟)
echo  $?   (返回 0 说明编译成功)
make install
echo  $?   (返回 0 说明安装成功)
4. 将php包解压目录中的配置文件放置到正确位置(configure命令中的--with-config-file-path设置的位置)
cp php.ini-development /etc/php.ini
5. 创建并设置php-fpm运行账号
groupadd www-data
useradd -M -g www-data -s /sbin/nologin www-data
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
发现搜索不到“user”(设置运行账号的位置),但发现文件的最后一行:(include=/usr/local/php/etc/php-fpm.d/*.conf)
所以:
cd php-fpm.d
cp www.conf.default www.conf(否则include匹配不到文件)
vim www.conf
搜索“user”设置运行账号:
user=www-data
group=www-data
6. 配置nginx支持php
vim /usr/local/nginx/conf/nginx.conf
   修改
    location / {
             root   html;
             index index.php  index.html index.htm;
         }添加
 location ~ \.php$ {
                         root html; #指定php的根目录
                         fastcgi_pass 127.0.0.1:9000; #php-fpm的默认端口是9000
                         fastcgi_index index.php;
                         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                         include fastcgi_params;
                 }  修改完成之后记得重启nginx服务:
systemctl restart nginx.service
检查nginx启动情况
 /usr/local/nginx/sbin/nginx -t7. 设置php-fpm为系统服务:
vim /etc/systemd/system/php-fpm.service
文件内容:
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
PrivateTmp=True
[Install]
WantedBy=multi-user.target
8. 设置php-fpm服务开机自启动:
systemctl enable php-fpm.service
9. 启动php-fpm:
systemctl restart php-fpm.service
查看是否启动成功:
ps aux | grep php-fpm
10.写一个php脚本测试nginx是否已支持php,php是否已支持mysql。
 cd /usr/local/nginx/html
vim index.php
新增如下内容
<?php
 phpinfo();

如下图反馈 说明php-nginx连通成功

centos 7 nmcli安装 centos7安装lnmp环境_php


 

11.测试php-mysql连通性

cd /usr/local/nginx/html
vim php-mysql.php
新增如下内容
<?php
 $servername = "localhost";   //数据库ip
 $username = "root";             //数据库登录用户
 $password = "sa123456";      //数据库登录密码
  
 // 创建连接
 $conn = new mysqli($servername, $username, $password);
  
 // 检测连接
 if ($conn->connect_error) {
     die("连接失败: " . $conn->connect_error);
 } 
 echo "连接成功";
 ?>

如下图反馈 说明php-mysql连通成功

centos 7 nmcli安装 centos7安装lnmp环境_centos 7 nmcli安装_02


至此,LNMP搭建完成!

PHP扩展安装说明:

  若想安装一些PHP扩展,首先可以在PHP源码目录下的ext子目录中查找是否存在你想安装的扩展,不存在则下载,存在则直接进入扩展源码目录进行安装操作,下面以安装pcntl扩展为例进行说明。

首先编译源码安装pcntl扩展:
cd /usr/local/src/php-7.0.27/ext/pcntl   (进入扩展源码目录)
/usr/local/php/bin/phpize(取决于你安装php之后phpize文件的位置)
./configure --with-php-config=/usr/local/php/bin/php-config(取决于你安装php之后php-config文件的位置)
make
make install
然后修改php配置文件:
vim /etc/php.ini
extension=pcntl.so
最后重启php-fpm服务:
systemctl reload php-fpm.service