每个人有每个人的想法、做法,所以,搭建lnmp也有很多方法去搭建,我这只是其中一个方法
本人使用的源码包资源:
https://pan.baidu.com/s/1kvKP355MWOV0LCkOgPkkhg(没有提取码,直接下载即可)
准备环境
首先要先搭建好yum库,因为后面我们需要使用yum来安装一些环境。
搭建好yum后,用yum先安装gcc和gcc-c++,后面的操作基本都需要这两个环境
准备好nginx、mysql和PHP源码包(PHP源码包还需要其他的环境源码包,也要提前准备好)
用xshell等软件连接虚拟机
安装lrzsz:yum -y install lrzsz(这是用来在本机和虚拟机之间进行上传和下载文件包的)
在根目录与下创建data目录,在data目录下创建server(存放服务)目录和scripts(存放脚本)目录
在这里,我将所有的源码包都上传到了root目录下,所以在执行rz命令之前到要先移动到root目录下(cd ~或cd )
**
一、安装nginx*
1、rz上传nginx的tar包
2、解包
tar zxf nginx-1.11.5.tar.gz -C /usr/local/src (/usr/local/src目录是用来存放安装包的)
3、配置、编译、安装
cd /usr/local/src/nginx-1.11.5/(移动到该目录下进行后续操作)
./configure --prefix=/data/server/nginx(配置)
*到了这,如果报错,说明缺少环境,需要安装相应的环境
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
安装完这两个环境后,再次执行刚才的配置命令,配置完成。
make && make install(此处编译、安装可以使用“&&”符连接,执行完编译之后进阶着执行安装)
4、开启nginx
cd /data/server/nginx/sbin/(移动到此目录下)
./nginx(开启nginx)
在浏览器的网址位置输入虚拟机的IP地址进行访问(在本地浏览器访问记得关闭虚拟机的防火墙:systemctl stop firewalld),若出现下图显示的内容则表示nginx开启成功
**
二、安装mysql
**
1、rz上传mysql源码包
2、解包:
tar zxf mysql-5.5.22.tar.gz -C /usr/local/src/
3、安装cmake(mysql需要用cmake来执行配置命令)
yum -y install cmake
4、配置、编译、安装mysql
cd /usr/local/src/mysql-5.5.22/
cmake -DCMAKE_INSTALL_PREFIX=/data/server/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
*如果在这里报错,说明虚拟机里缺少相应的环境,需要先安装一下
yum -y install ncurses-devel
yum -y install bison
yum -y install boost
rm -fr CMakeCache.txt(此文件对于配置环节有一定影响,需要先删除一下,在配置完成后,该文件会自行编辑出现,无须担心)
配置完成后,进行编译、安装
make
make install(此处的编译、安装分开操作以防出错,另外提醒一下,此处的编译环节需要很长的时间,要耐心等待一下)
5、创建mysql运行用户
useradd -M -s /sbin/nologin mysql(不创建宿主目录,设置shell环境为/sbin/nologin以获得更多的保护以防骇客通过此处发起攻击)
6、修改属主和属组
chown -R mysql:mysql /data/server/mysql
chown -R mysql:mysql /data/server/mysql/data
7、开启mysql服务
cd /usr/local/src/mysql-5.5.22/
cp support-files/my-medium.cnf /etc/my.cnf
echo “PATH=$PATH:/data/server/mysql/bin” >> /etc/profile
. /etc/profile
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
/data/server/mysql/scripts/mysql_install_db --user=mysql --basedir=/data/server/mysql --datadir=/data/server/mysql/data
systemctl restart mysql
cd /data/server/mysql/support-files/
8、重启一下mysql
./mysql.server start
cd …/bin/
9、验证:进入mysql交互环境(\q为突出交互环境)
./mysql -u root -p
**
三、安装PHP
**
rz上传源码包
1、解包:
tar zxf php-7.2.26.tar.gz -C /usr/local/src/
*创建用户(安装完PHP再创建也一样,这里是个人习惯)
groupadd www
useradd -M -g www -s /sbin/nologin www
2、配置、编译、安装
./configure --prefix=/data/server/php --with-config-file-path=/data/server/php/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache=no --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-myspl=mysqlnd --with-mysqli-mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --with-gd
*这里一般来说是会报错,因为缺少一些依赖环境,需要进行安装一下
yum -y install libxml2-devel
yum -y install openssl-devel
yum -y install bzip2-devel
yum -y install libcurl-devel
yum -y install libpng-devel
yum -y install readline-devel(这是PHP-7.2.26版本在配置环节所需要的依赖环境,有兴趣的同学可以安装一个配置一次,你会发现最后的顺序基本跟我这是一样的)
再次执行之前的配置命令,配置成功!
编译、安装:
make && make install(如果你的电脑支持4核,并且虚拟机也是设置的4核,可以使用“make -j4 && make install”命令,这样编译、安装的时候会更快一些,如果不满足那两个条件也使用了该命令也没事,只是速度和不加“-j4”是一样的)
3、复制配置文件
cp php.ini-development /data/server/php/etc/php.ini
cp /data/server/php/etc/php-fpm.conf.default /data/server/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
cp /data/server/php/etc/php-fpm.d/www.conf.default /data/server/php/etc/php-fpm.d/www.conf
/etc/init.d/php-fpm start
4、修改相关配置文件
vim /data/server/nginx/conf/nginx.conf
按下图进行修改:
(在命令行模式下使用“:set nu”显示行数号,注意:65-72行行首之前有“#”号符,需要删掉。以上图片中显示的都是我修改完之后的结果)
5、重启配置文件
cd /data/server/nginx/sbin
./nginx -s reload
6、编辑环境测试页面
cd /data/server/nginx/html/
vim test.php(如下图,按图片中显示的内容进行编辑)
7、关闭防火墙
systemctl stop firewalld
8、验证
浏览器输入“IP/test.php”(显示下图时,表示成功)
(有些可能需要降低沙盒级别,视情况而定)