环境准备:
虚拟机软件:vmware workstation 14 (试用版,有条件请支持正版)
系统镜像:Centos 7 minal x86_64 iso (从国内镜像源下载的,阿里云开源镜像网站)
我们都知道linux下安装软件主要有三种方式:
1.源码编译安装,即下载软件源代码,利用gcc g++ make 等编译工具进行编译安装;
此方式的优点:可以指定软件版本,可选择性好;编译时可以手动指定需要加载的模块;管理的自由度大,可以修改源代码;
此方式的缺点:软件包之间的依赖关系不好解决,必须要匹配的依赖包;编译过程时间长,出错的地方和几率大,出错不好解决;
2.二进制包安装,比如redhat/centos/opensuse/fedora系列下的rpm 包,debian/ubuntu系列下的deb包,需要用到一些rpm dpkg等包管理器的命令安装;
此种方式的优点:已经编译后的二进制包,安装方便快捷;比编译方式更简单;报错信息更容易理解;
此种方式缺点:依赖关系不好解决,某些情况下一个软件包会依赖多个软件包;
3.使用发行版的包管理命令安装,比如redhat系列下的yum , debian系列下的apt等;
此种方式的优点:依赖关系自动解决,方便快捷;
此种方式的缺点:需要具备软件源,比如网络源,本地源,和网络环境有比较大的关系
以上就简单地介绍到此,接下来我们就使用第三种方式来搭建nginx+mysql+php+linux 环境。
第一步:安装nginx,搭建web服务器:
#将nginx的软件源添加到centos 7 系统中:
yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#安装nginx软件:
yum install nginx -y
#启动nginx服务并加入开机启动项:
systemctl start nginx && systemctl enable nginx
第二步:安装mysql数据库,此处我们安装5.7版本:
#将mysql5.7软件源添加到系统中
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
#安装数据库:
yum install mysql-community-server mysql-community-devel -y
#启动数据库服务并加入开机启动项
systemctl start mysqld && systemctl enable mysqld
#查看数据库运行状态:
systemctl status mysqld
#查看mysql5.7的临时密码:
grep 'password' /var/log/mysqld.log
此步很容易出现问题,对于没有初始化生成临时密码的情况,请在/etc/my.cnf下的mysqld下添加skip-grant-tables字段,然后重启服务,进行密码的修改和设置
#使用临时密码登陆数据库:
mysql -u root -p
#修改root用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
flush privileges;
quit;
第三步:安装PHP已经扩展:
#添加php的软件源到系统中,此处安装php7.2
yum localinstall https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#安装php软件已经扩展:
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
#安装redis以及PHP的扩展:
yum install redis git -y
cd /usr/local/src/
git clone https://github.com/phpredis/phpredis.git
或者
git clone https://gitee.com/mirrorgit/phpredis.git
cd phpredis
phpize
./configure
make && make install
此处使用了克隆源码编译安装,在此过程中也是比较容易出错的,很容易报错出现php加载不了此扩展,网上很多说直接修改php的配置文件/etc/php.ini,添加内容,然而并不好使,直接编译加载即可
或者配置/etc/php.d/redis.ini extension=redis.so行
#启动php-fpm服务:
systemctl start php-fpm
#查看下版本:php -v
此处没有报错的话,PHP的扩展都已经加载
第四步:整合nginx,使其支持解析我们的php程序:
#编辑nginx配置文件:
vim /etc/nginx/conf.d/default.conf
#内容如下所示:
server {
listen 80; #监听端口号
server_name localhost; #主机名或域名或ip
root /www; #网站根目录
index index.php index.html; #支持解析的文件类型
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; #代理到本机的9000端口,解析php程序
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
第五步:测试lnmp环境是否成功:
vim /www/index.php
<?php
phpinfo();
?>
此处使用了php的一个探针函数,此时就可以访问curl -I localhost 如果返回状态码200,并有一段网页代码,就OK 了
当然直接访问Centos 7系统的ip 地址,即可看到phpinfo所展示出来的内容。
可以看到,使用yum方式搭建lnmp环境还是很简单的。