手动部署LNMP开发环境
作为刚刚购置了一个ECS的新手玩家来说,自己动手搞定开发环境成就感还是蛮高的,本篇主要源自阿里云控制台自带的LNMP环境部署教程。但是有些命令和代码可能因为时间的原因,在我部署的时候已经用不了了。所以自己在实验的同时把自己遇到的坑和解决的方法记录一下,方便以后查看。
我今晚的实验还有最后一步没有解决,如果有大佬看到,希望能够指导一下!跪谢~
一、远程连接ECS
1.登录阿里云后台,找到ECS实例列表,选择想要连接的服务器实例,点击远程连接。
2.阿里云提供三种方式进行远程连接——workbench、VCN、云助手。(个人比较喜欢workbench)。对于新的ECS实例来说,连接时需要密码。其本身是有默认密码的,可以重置为自己可记住的密码。操作方式同样是在实例列表找到要重置实例,在首列复选框选中后,点击【重置实例密码】。此时修改密码为自己能记住的密码即可。
3.输入密码,远程连接ECS实例。
workbench提供中文支持,页面字体用起来也很舒服。推荐一波。
二、安装MySQL数据库
1.在远程终端中输入以下三行代码。
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm #下载MySQL5.7版本到本地。
yum -y install mysql57-community-release-el7-10.noarch.rpm #安装Mysql
yum -y install mysql-community-server #安装Mysql服务(这一行指令为阿里教程里的指令,
#但是测试无效。按照本条指令输入的话,系统会提示:“No match:mysql-community-server”。
#可将指令更换为:
yum -y install mysql-server
注:具体的错误原因我也不清楚是为什么。
2.执行以下命令,启动MySQL数据库(在阿里提供的教程里面这里缺失了一段代码。有点尴尬!)
这个时候应该在远程终端上输入以下命令。
systemctl start mysqld
3.执行以下命令,查看MySQL初始密码。(可跳过,因为最新安装MySQL后默认没有密码,可直接启动MySQL)
grep "password" /var/log/mysqld.log
但是执行该命令之后你会发现,系统找不到这个文件。原因是现在的系统将mysqld.log
这个文件放到了var/log/mysql/mysqld.log
这里。所以应该执行以下命令:
grep "password" /var/log/mysql/mysqld.log
4.执行以下命令,登录数据库
mysql -u root -p
输入password之后回车就登录到MySQL数据库了。
5.执行以下命令,修改MySQL默认密码。
set global validate_password_policy=0;
#修改密码安全策略为低(只校验密码长度,至少8位)。
#对MySQL完全小白,被提示错误之后直接省略这一步了。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
修改密码的MySQL语法为:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';
6.执行以下命令,授予root用户远程管理权限。(遇到了一个问题。系统提示我的语法不对,在IDENTIFIED BY
这个地方。
原命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
应该写成:
GRANT ALL ON *.* TO 'root'@'%';
//语法
GRANT 权限1 权限2... ON 数据库.* TO 'username'@'IP地址'
//*.*代表所有数据库;'root'@'%'代表所有以root用户登录的IP地址。
问题补充:因为我是新装MySQL,刚运行的Mysql。所以在我输入了正确的语法后,系统提示:
You are not allowed to create a user with GRANT.
我尼玛!还不被允许创建用户。太恶心了。只好继续查问题了。看一下用户列表先:
mysql> select user, host from user;
系统提示:
no database selected
因为没有选择数据库,所以不显示用户表。执行下面的命令,使用mysql数据库后再查看用户列表
use mysql
找到问题产生原因:当前user表中没有root - %记录; 可以更新root - localhost 为 root - %。
执行下面的命令:
update user set host='%' where user='root' and host='localhost';
flush privileges; //刷新一下。
最后再执行:
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
搞定!打完收工!
7.输入exit
退出数据库。
三、安装Nginx服务
1.安装Nginx运行所需要的插件。
a.安装gcc编译器。
yum -y install gcc
b.安装pcre。Nginx的HTTP模块使用pcre来解析正则表达式。
yum install -y pcre pcre-devel
c.安装zlib。zlib是一个文件压缩和解压缩的库,Nginx使用zlib对HTTP数据包进行gzip压缩和解压。
yum install -y zlib zlib-devel
2.下载Nginx安装包。
wget http://nginx.org/download/nginx-1.17.10.tar.gz
3.解压Nginx安装包。
tar -zxvf nginx-1.17.10.tar.gz
4.编译安装Nginx。
cd nginx-1.17.10
./configure
make && make install
5.启动Nginx。
cd /usr/local/nginx/
sbin/nginx
6.测试Nginx启动。
在浏览器地址栏输入ECS服务器的公网IP,例如123.123.123.123,出现如下界面表示安装启动成功。如果有域名的话,通过解析后的域名也可以查看到如下界面。
注意:需要打开80端口,才能成功的在浏览器内连接到公网IP。否则会连接超时。
顺利完成,没有出幺蛾子。就一个字:爽!
安装PHP环境
1.安装PHP
yum -y install php php-mysql php-fpm
php-mysql
同样无法匹配。
使用yum seach php-mysql
命令查找到php-mysqlnd
,安装:
yum -y install php php-mysqlnd php-fpm
2.在nginx.conf文件中增加对PHP的支持。
vim /usr/local/nginx/conf/nginx.conf
进入Vim编辑器后,按下i键进入编辑模式,在server的根路由配置中新增index.php。
location / {
root html;
index index.html index.htm index.php;
}
并在根路由下面新增以下配置。
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
location ~ .*\.php(\/.*)*$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
fastcgi_index index.php;
}
修改后的nginx.conf文件如下图所示。
按下ESC键,输入:wq保存并退出Vim编辑器。
来自萌新的哔哔:确定是这样的?你让我加进去的东西,和你截图的东西明显少着一行的好嘛!!!算了,接着搞下去看看。
3.重启php-fpm服务
systemctl restart php-fpm
4.重启Nginx服务。
/usr/local/nginx/sbin/nginx -s reload
5. 检查PHP安装。
a.在Nginx的网站根目录下创建PHP探针文件phpinfo.php。
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/phpinfo.php
b.访问PHP探针页面。在浏览器地址栏输入xx.xx.xx.xx/phpinfo.php(请将xx.xx.xx.xx替换为ECS服务器的公网IP地址),出现如下页面表示PHP环境配置成功。
很明显,我没有成功!!!我就知道肯定会出幺蛾子的!
查了一下error.log
之后发现是(111:Connection refused)
问题。
为什么要拒绝我!是我不够舔狗么!
暂时解决不了这个问题了,等大佬明天回复看看要咋弄。
正确的显示应该是这个:
如果显示了上面图片的内容,说明整个LNMP环境已经搭建完成咯。恭喜你!迈出了上云的第一步!
安全起见,删除一些东西!
rm -rf /usr/local/nginx/html/phpinfo.php