微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LNMP环境搭建

一、安装前

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://localhost

出现以下界面则表示可以成功访问:

8. 防火墙开放80端口(Nginx认使用80端口,可在Nginx.conf中配置,若无需进行远程访问则不需要开放端口)

永久开放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

注意:执行以上命令时若提示“FirewallD is not running”,请点此链接https://www.cnblogs.com/rxbook/p/8110143.html查看解决方

重启防火墙:

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包并解压(到/usr/local/src目录)

cd /usr/local/src

wget http://dev.MysqL.com/get/Downloads/mysql-5.6/mysql-5.6.22.tar.gz

tar -zxvf mysql-5.6.22.tar.gz

5. 编译安装(到/usr/local/MysqL目录)

cd mysql-5.6.22

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/usr/local/MysqL/data -DSYSconfdIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMysqL_UNIX_ADDR=/var/lib/MysqL/MysqL.sock -DMysqL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

make(此过程需花费大概20-30分钟)

make install

6. 配置MysqL

groupadd MysqL

useradd -M -g MysqL -s /sbin/nologin MysqL

chown -R MysqL:MysqL /usr/local/MysqL

7. 初始化配置

cd /usr/local/MysqL/scripts

./MysqL_install_db --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data --user=MysqL

8. 设置MysqL为系统服务

vim /lib/systemd/system/MysqL.service

文件内容

[Unit]

Description=MysqL

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/MysqL/support-files/MysqL.server start

ExecStop=/usr/local/MysqL/support-files/MysqL.server stop

ExecRestart=/usr/local/MysqL/support-files/MysqL.server restart

ExecReload=/usr/local/MysqL/support-files/MysqL.server reload

PrivateTmp=true

[Install]

WantedBy=multi-user.target

9. 设置MysqL服务开机自启动

systemctl enable MysqL.service

10. 启动MysqL

systemctl start MysqL.service

若是启动失败:

直接使用/usr/local/MysqL/support-files/MysqL.server restart启动可以看到详细错误原因:

若是这个原因,/var/lib/MysqL这个目录(用于存放MysqL.sock)不存在的话,手动创建就好了:

mkdir /var/lib/MysqL

chown -R MysqL:MysqL /var/lib/MysqL

再次启动,成功了!

查看是否启动成功:

ps aux | grep MysqL

11. 登录MysqL并设置root密码

/usr/local/MysqL/bin/MysqL -u root

set password=password('123456');

 

四、安装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,则需要手动编译安装,可以先在windows宿主主机中前往libmcrypt官网下载然后使用rz指令将包上传至centos7进行编译安装。我下载的包为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包并解压

我这里安装的是7.2.21版本,需要其他版本的可以去www.PHP.net网站上自行寻找想要的版本

cd /usr/local/src

wget https://www.PHP.net/distributions/PHP-7.2.21.tar.gz

tar -zxvf PHP-7.2.21.tar.gz

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

cd PHP-7.2.21

./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/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分钟)

make install

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”(设置运行账号的位置),但发现文件的最后一行:

所以:

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

 修改完成之后记得重启Nginx服务:

systemctl start Nginx.service

7. 设置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 start PHP-fpm.service

查看是否启动成功:

ps aux | grep PHP-fpm

10.写一个PHP脚本测试Nginx是否已支持PHPPHP是否已支持MysqL

1 2 <?PHP PHPinfo();

 

  至此,LNMP搭建完成!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐