一、安装前
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参数如下:
其他配置参数暂时无需改动。
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服务:
查看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
有则卸载:
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
若是启动失败:
直接使用/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
/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
vim /usr/local/Nginx/conf/Nginx.conf
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是否已支持PHP,PHP是否已支持MysqL。
1 2 |
<?PHP
PHPinfo();
|
至此,LNMP搭建完成!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。