源码编译搭建LNMP平台
好久没有搭建LNMP环境了,最近用一台闲置的服务器用目前最新的版本搭建了一下比较基础LNMP环境,在此记录一下。
软件版本:NGINX-1.16.0,
MySQL-8.0.17,
PHP-7.3.8
NGINX
1 | wget wget http://nginx.org/download/nginx-1.16.0.tar.gz |
在我做这些的时候并没有抱任何错误,这里提醒一下,我用的是阿里的云主机,默认开启http服务,要启动NGINX需要关闭httpd服务。
1 | systemctl stop httpd |
到此nginx暂时告一段落
MySQL
MySQL我下载的是所有rpm包的那个压缩包。
1 | wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar |
此处说一下,启动完mysql,登录的时候会发现需要输入密码,它的密码实在日志文件里。
还要说的一点是由于mysql密码认证的问题,需要把mysql的配置文件中default-authentication-plugin=mysql_native_password
这个字段前面#去掉,否则的话在后面测试PHP连接MySQL会报一个关于密码认证的错误。像下面这样:
1 | mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] |
1 | systemctl restart mysqld |
到此mysql就算是基本完成了。
PHP
PHP这个版本已经集成了php-fpm这个模块了,编译安装的时候把这个模块加载上就可以了。不过这里需要安装一个依赖包。还有就是加载一下mysqli这个模块,后面测试连接mysql会用到。
1 | yum -y install libxml2-devel |
测试
- 修改nginx的配置文件
1 | vim /usr/local/nginx/conf/nginx.conf |
用浏览器访问一下看一下页面信息,我的是阿里云主机,所以需要在阿里控制台的安全规则下开放下80端口。 接下来测试一下PHP连接MySQL数据库执行一下sql查询。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
vim /usr/local/nginx/html/mysql.php
<?php
$mysqli = new mysqli('127.0.0.1','root','密码','mysql');
if (mysqli_connect_error()){
die('Unable to connect !'). mysql_connect_error();
}
$sql = "select * from user";
$result = $mysqli->query($sql);
while($row = $result->fetch_array()){
printf("Host:%s",$row[0]);
printf("</br>");
printf("Name:%s",$row[1]);
printf("</br>");
}
?>
wq //保存退出
用浏览器访问一下mysql.php出现下面这些值证明连接成功:
Host:localhost
Name:mysql.infoschema
Host:localhost
Name:mysql.session
Host:localhost
Name:mysql.sys
Host:localhost
Name:root
测试完成之后基本LNMP环境就算是搭建完成了,接下来就是优化了。