高可用 LAMP Web应用框架
1. 部署物联网管理平台
第一章 Ubuntu 部署 LAMP
安装 apache2
sudo apt update
sudo apt-get -y install apache2
查看 Apache 版本
apache2 -v
启动 Apache 服务并设置服务开机自启动。
sudo systemctl start apache2
sudo systemctl enable apache2
查看 Apache 服务状态
sudo systemctl status apache2
安装 Mysql
apt -y install mysql-servermysql -V
启动 Mysql 服务
sudo systemctl start mysql
设置开机启动 Mysql
systemctl enable mysql
systemctl daemon-reload
配置 Mysql
进入 Mysql
sudo mysql
设置 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by
'mynewpassword';
退出 Mysql 数据库
exit;
对 Mysql 进行安全型配置
mysql_secure_installation
输入 Y,设置密码验证策略
测试登录 Mysql 数据库
mysql -u root -p
安装 PHP
apt-get install -y software-properties-commonadd-apt-repository ppa:ondrej/php
apt-get install -y php8.3 php8.3-fpm libapache2-mod-php8.3
php -v
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
打开 apache 配置文件
vim /etc/apache2/apache2.conf
添加下列配置信息
DirectoryIndex index.html index.php
<FilesMatch \.php$>
SetHandler application/x-httpd-php
查看 apache 网站根目录的路径信息
sudo cat /etc/apache2/sites-available/000-default.conf
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
sudo systemctl restart apache2
http://192.168.43.133/phpinfo.php
第二章 物联网管理平台部署
PHP 连接 MYSQL
sudo apt install php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl
2.1 下载代码
拉取项目
git clone https://gitee.com/Swordup/iotplatform.git
2.2 配置 LAMP/WAMP 环境,并设置网站根目录为 public 目录
在放置 web 服务器的目录/var/www/html/创建 web 应用名称的文件夹
cd /var/www/htmlmkdir iotpt
cp -r /home/xiaocai/iotplatform /var/www/html/iotpt
修改 apache2 的配置文件,增加 web 应用文件夹的权限
vim /etc/apache2/apache2.conf
新建 web 应用或网站的虚拟机
cd /etc/apache2/sites-available
cp 000-default.conf iotplatform.conf(新建的 web 应用或网站名称.conf)
vim iotplatform.conf
\#增加 web 应用名称文件夹
DocumentRoot /var/www/html/iotpt/iotplatform/public
\#端口:8090
保存退出
cd sites-enabled
ln -s /etc/apache2/sites-available/web 应用或网站名称.conf web 应用或网站名称.conf
\#将 sites-available 中的 iotplatform.conf 映射到 sites-enable 中
cd ..vim ports.conf
Listen 8090
保存后重启 apache2
systemctl restart apache2
2.3 创建 MySQL 数据库并导入项目根目录下的 data.sql 数据库
\#进入 mysql
mysql -u root -p;
create database data;
\#创建的数据库名称记得与拉取项目中的数据库名称一致
use data.sql;
source /home/xiaocai/iotplatform/data.sql;
2.4 配置 application 目录下的 datebase.php 文件中的相关属性
vim /var/www/html/iotpt/iotplatform/application/database.php
2.5 PHP 版本大于等于 7.2,小于 7.4
由于应用兼容性问题
下载 php7.2 版本,并替换 8.3
apt-get install php7.2
apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip
php7.2-mysql php7.2-xml
sudo a2enmod php7.2
sudo a2dismod php8.3
sudo a2enmod rewrite
修改 apache2.conf
将 iotplatform AllowOverride none AllowOverride All
重启 apache systemctl restart apache2
在 public 目录下创建.htaccess
cd /var/www/html/iotpt/iotplatform/public/
vim .htaccess
内容如下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
在 php.ini 文件中找到 extension=pdo_mysql 配置项,将前面注释的分号去掉
cd /etc/php/7.2/apache2
vim php.ini
extension=pdo_mysql
重启 apache systemctl restart apache2
如上已然配置完毕,接下来访问网站 192.168.43.133:8090*
2.集群部署物联网平台
第一章 部署两台同样的物联网平台
步骤同上
第二章 部署集群
修改 nginx 服务器中的/etc/nginx/nginx.conf
cd /etc/nginx
cd ./sites-available
sudo vim default
增加
upstream iotcluster {
server 192.168.80.251:8090 weight=3;
server 192.168.80.133:8090 weight=2;
}
在 80 端口 server 中增加 proxy_pass http://iotcluster;
server
{
\#监听端口
listen 80;
location / {
proxy_pass http://iotcluster;
}}