目录
在html下创建index.php,看一下是否可以网页中访问得到它
中间件
web服务器:nginx(前端网页)+php
数据库服务器:mysql
思路:
先安装中间件nginx,nginx要采用源码安装。安装按之后启动,可以访问到一个静态初始页面;然后安装php(超文本预处理器,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中),他的源码要用rpm安装,执行环境用yum;最后安装mysql数据库。全部完成后就可以进行连接了。
yum -y install gcc-c++ pcre-devel zlib-devel
安装完之后,可以看到下面有六个包,其中devel是开发包(看到让我们选择那种安装包的话,一般都选devel)
①yum安装相当与于一键安装,自动帮你解析安装,解决一切问题
②源码安装相当于手动安装,路劲什么的都需要自己下载
③源码安装没有写入系统,启动的时候不能用systemctl来执行
wget https://nginx.org/download/nginx-1.22.1.tar.gz #获取源码
#wget是获取网上的安装包
tar -zxvf nginx-1.22.1.tar.gz #解压安装包
#-z是对应后面的.gz。如果只是单纯的tar,就不用z
获取解压完源码之后就可以看到在家目录下面出现了这两文件
知识点:
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。其中--prefix选项是配置安装的路径。
如果不配置 --prefix 选项,安装后:
可执行文件默认放在/usr /local/bin,
库文件默认放在/usr/local/lib,
配置文件默认放在/usr/local/etc,
其它的资源文件放在/usr /local/share,
进入到nginx目录中可以看到下面存在一个配置文件和一个可执行文件。其中,conf是配置文件,configure是可执行文件(用来进一步生成可编译执行文件(makefile))
第一步:指定编译安装目录
./configure --prefix=/usr/local/nginx #指定安装目录为/usr/local/nginx
#默认情况下不指定安装路径的话是默认安装在/usr/local下
执行完configure,在我们指定路径下进行查看,并没有看到生成的文件夹,因为这个时候只是生成可编译文件(makefile)而已,并没有开始进行编译
可以看到nginx目录下生成了一个makefile
&&/;连续执行的区别
&&:先成功执行前面的语句,再执行后续语句
;:不管前面的语句是否执行成功都执行后面的语句
第二步:编译与安装
make&&make install #进行编译并且生成编译文件
#前面的make就是自动对c语言文件进行编译,后面是生成编译文件
要注意进行编译的路径
编译完成后,在/usr/local中进行查看,可以看到多了一个nginx文件夹
对nginx文件夹进行查看,可以下面还有四个文件
conf:nginx的配置文件(如果用yum安装的话就是在/etc/conf目录下)
html:默认是nginx的网站根目录(要看配置文件的内容,可在配置文件中进行更改)
logs:日志文件
sbin:下面存放着可执行命令字nginx(本应该放在/目录下面的sbin文件夹,但是他是使用源码安装的,所以sbin放在我们指定的目录下)
nginx的主配置文件
路径:/usr/local/nginx/conf/nginx.conf
#pid logs/nginx.pid; #这个是询问是否开启nginx的pid,如果报错的话再进行开启
#配置文件分为两部分,一部分是http,一部分是https
#http
http {
include mime.types; #文件拓展名与文件类型映射表
default_type application/octet-stream; #默认文件下载类型
sendfile on; #支持文件发送下载
keepalive_timeout 65; #连接保持超时时间
server {
listen 80; #对应http使用的80端口
server_name localhost; #网站的名称
location / {
root html; #网站的根目录,对应前面看到的文件夹
index index.html index.htm; #网站主页
}
另外的编译生成文件方法(不建议)
如果不用make进行编译安装的话,我们需要在/root/nginx-1.22.1/src/core 下对他的所有c语言带啊吗进行一行一行的安装,很麻烦
第三步:执行开启nginx
这时候执行nginx指令,用tab键发现不能补齐,说明这个指令不能被系统所获取。(按理说ngxin是sbin下面的可执行命令字,是可以执行的。但是采用的是源码安装,这个命令字并没有存放在根目录下的sbin中,所以要让系统进行获取这个指令)
配置环境变量
路径:/etc/profile
export NGINX_PATH=/usr/local/nginx/sbin
export PATH=$PATH:$NGINX_PATH
重新加载环境变量文件:source /etc/profile
nginx
-v 查看版本
-s stop 强制退出
-s quit 正常退出
-s reload 重新加载
-s reopen 重新打开
两种启动nginx方式:
①直接到sbin目录下对nginx进行启动
②nginx -c /usr/local/nginx/conf/nginx.conf
//指定主配置文件并开启服务(标准启动方式)
在网页上跟上服务器的ip地址就可以访问的到这个基础网页
可能出现的问题
1.启动完之后就可以进行网页的访问。再访问的时候出现访问不到的情况,就是防火墙和selinx没关掉,应影响到网页的访问
2.如果是搭建在云服务器上面的话,就要在安全组中打开对应的端口
PHP-fpm //主机成管理器,在5.多版本就融入到php中间
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#获取安装包
yum -y install epel-release-latest-7.noarch.rpm
#安装源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#下载他的源码
yum -y install php72w-cli php72w-common php72w-devel php-mysqli php72w-fpm php72w php72w-cli php72w-fpm php72w-curl php72w-gd php72w-mysql php72w-xml php72w-mbstring
# php72w-cli: 这是用于PHP 7.2版本的命令行接口(CLI),它允许你在命令行中运行PHP脚本和命令。
# php72w-common: 这个软件包包含了PHP 7.2版本的共享文件和共享库,它提供了PHP运行所需的一些基本组件。
# php72w-devel: 这个软件包包含了PHP 7.2版本的开发所需的头文件和静态库,它用于编译和构建PHP扩展或自定义PHP模块。
# php-mysqli: 这是一个提供PHP与MySQL数据库连接功能的扩展,它使用MySQLi(MySQL Improved)API,支持更多的功能和特性,包括面向对象的接口、预处理语句、事务处理等。
# php72w-fpm: 这是用于PHP 7.2版本的FastCGI进程管理器(FPM),它提供了一种高性能的方式来处理PHP请求,并与Web服务器(如Nginx或Apache)配合使用。
# php72w-curl: 这个软件包包含了PHP 7.2版本的CURL扩展,它允许PHP与URL进行交互,支持HTTP、HTTPS、FTP等协议,用于发送和接收数据。
# php72w-gd: 这个软件包包含了PHP 7.2版本的GD图像处理库的扩展,它提供了一组函数来创建、操作和处理图像,包括缩放、裁剪、添加水印等功能。
# php72w-mysql: 这是一个提供PHP与MySQL数据库连接功能的扩展,它使用原始的mysql函数库进行连接和操作。它在旧版本的PHP中很常见,但在较新的PHP版本中已被弃用,推荐使用MySQLi或PDO扩展。
# php72w-xml: 这个软件包包含了PHP 7.2版本的XML扩展,它提供了一组函数来处理XML数据,包括解析XML、创建XML、操作XML节点等。
# php72w-mbstring: 这个软件包包含了PHP 7.2版本的多字节字符串处理扩展,它提供了一组函数来处理多字节字符集,包括字符串截取、编码转换、字符长度计算等。
#PHP72w-mysql和php-mysql区别
#前者是CentOS/RHEL系列的软件包,后者是Debian/Ubuntu的软件包
#php72w-mysql和php72w-mysqli区别
#mysql是旧版,mysqli是新版本,是mysql的更新版,功能更加齐全
short_open_tag = On #若不开启,则无法识别php函数
systemctl start php-fpm
<?php
phpinfo()
?>
这时候发现网页加载不出来
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
#如果不能索引到就加上他的路径
include fastcgi_params;
}
#在nginx配置文件中把php的#都取消掉,这是为了让ngxin可以使用php语言
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
nginx -s reload
systemctl restart php-fpm.service
正常可访问
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar #获取安装包
tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar #解压安装包
rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm #安装server版
#用rpm安装的时候解决不了环境依赖问题,在安装server的时候会进行报错。缺少什么环境就进行安装什么环境。
在安装的时候报错缺少环境,就直接后面加上所需要的包就可以(tab补齐) 可以同时安装多个包
安装的时候报错启用或者冲突,直接卸载启用文件就可以
没有报错,安装完成
阿里云服务器要安装
yum install libaio
要实现站库分离就要使用两台服务器,将会mysql服务器与另外两个分开
systemctl start mysqld
#启动服务
grep “password” /var/log/mysqld.log
#查看初始随机生成的密码
mysql -u root –p
#连接数据库
use mysql
#要先使用数据库才能进行查询
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
#初次使用数据库的时候会报错,要求你修改密码
alter user 'root'@'localhost' identified by 'zhss@0121Lin';
#初次需要修改密码
show databases;
#查看数据库
select user,host from mysql.user;
#查询账户信息;
update user set host='%' where user='root';
#将表的host登陆方式从localhost(本地登录)更新成%(任意方式)
#第一个user代表user表,第二个是表中的user字段
在nginx服务器的网站根目录的index.php中进行编辑
<?php
$servername = "192.168.100.150";
$username = "root";
$password = "root";
$conn = mysqli_connect($servername,$username,$password);
if($conn->connect_error){
die("lianjieshibai:".$conn->connect_error);
}
echo "success";
phpinfo();
?>
#或者
#(那三行是用来显示报错信息的,做调试用。映射到公网的话建议删掉)
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$servername = "localhost";
$username = "root";
$password = "root";
$database = "cms";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
die(" ~^ ~N 失败 ~Z" . mysqli_connect_error());
}
echo " ~^ ~N ~H~P ~J~_";
// ~I ~L ~U ~M ~S ~S~M ~\...
mysqli_close($conn);
?>
这一步做完就可以连接到数据库
第一种
问题:出现这个情况就是密码复杂度问题,需要在mysql进行修改
alter user 'root'@"%' identified with mysql_native_password by 'yourpassword";
#修改身份验证插件
第二种
问题:Fatal error: Uncaught Error: Call to undefined function mysql_connect()
出现这个问题的原因是由于php7以后已经不支持mysql连接了,解决的办法也很简单,更换mysqli/PDO连接(替换mysql_connect()为mysqli_connect())或者更干脆降低php版本
可以先查看下PHP环境中有没有装上MySQL扩展,如果没输出的话就是没装上
php -m | grep mysqli
然后发现没输出东西,发现是我的mysql没装上,重新安装
yum -y install php72w-mysqli
如果在安装的时候出现这情况,就是已经存在了并且冲突了
网站源码(cms)导入(从我的windows桌面导入,直接拉进去也行)
sudo scp /mnt/c/Users/Administrator/Desktop/PHPCMS.tar 192.168.100.110:/root/
#后面的:/root/ 是指定传入的路径,也可以跟ssh一样在ip前面加上 用户@ 指定传输用户
#通过子系统ubuntu从桌面传到centenos,也可以直接拉进去
将源码解压到网站根目录
#解压cms压缩包
tar -xvf PHPCMS.tar
#移动到/usr/local/nginx/html/
mv PHPCMS /usr/local/nginx/html/
修改PHPCMS/includes/db.php
<?php
$db['db_host'] = "localhost"; //数据库服务器地址
$db['db_user'] = "root"; //账户
$db['db_pass'] = "root"; //密码
$db['db_name'] = "cms";
将cms.sql传给数据库服务器 ,这一步是为了在mysql中创建一个cms数据库,并且查看一下数据库是否创建成功
scp PHPCMS/cms.sql [email protected]:/root/
#scp 文件 账户@IP地址:路径
mysql -u 账户名 -p < cms.sql
#导入数据库
然后到这一步,就可以在看到的自己搭建的网站了,如果还是不能查看的到,就要在nginx的配置文件中对php的配置进行修改,网站的相对路径改为绝对路径,然PHPCMS可以被索引的到
在这里可以跟上PHPCMS的绝对路径,一般到html就可以,如果还是索引不到的话,在跟上PHPCMS
这是网站搭建的最终效果
文章浏览阅读3.8k次。1、将下载好的萤石js插件,添加到SoringBoot项目中。位置可参考下图所示。(容易出错的地方,在将js插件在html页面引入时,发生路径错误的问题)所以如果对页面中引入js的路径不清楚,可参考下图所示存放路径。2、将ezuikit.js引入到demo-live.html中。(可直接将如下代码复制到你创建的html页面中)<!DOCTYPE html><html lan..._ezuikit 测试的url
文章浏览阅读322次。第二步,在弹出的对话框选择,设备驱动—>PLC—>莫迪康—>ModbusRTU—>COM,根据配置软件选择的协议选期期,这里以此为例,然后点击“下一步”。第四步,把使用虚拟串口打勾(GPRS设备),根据需要选择要生成虚拟口,这里以选择KVCOM1为例,然后点击“下一步”设备ID即Modbus地址(1-255) 使用DTU时,为下485接口上的设备地址。第六步,Modbus的从机地址,与配置软件相同,这里以1为例,点击“下一步“第五步,Modbus的从机地址,与配置软件相同,这里以1为例,点击“下一步“_组态王ua
文章浏览阅读9.4k次,点赞22次,收藏19次。安装npm相当于安装node.js,Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西_npm安装配置
文章浏览阅读748次,点赞21次,收藏26次。大家好,小编来为大家解答以下问题,python基础训练100题,python入门100例题,现在让我们一起来看看吧!宝子们还在新手村练级的时候,不单要吸入基础知识,夯实自己的理论基础,还要去实际操作练练手啊!由于文章篇幅限制,不可能将100道题全部呈现在此除了这些,下面还有我整理好的基础入门学习资料,视频和讲解文案都很齐全,用来入门绝对靠谱,需要的自提。保证100%免费这不,贴心的我爆肝给大家整理了这份今天给大家分享100道Python练习题。大家一定要给我三连啊~
文章浏览阅读1k次。 为了在 Linux ( Ubuntu) 上安装sublime,一般大家都会选择常见的教程或是 sublime 官网教程,然而在国内这种方法可能失效。为此,需要用安装包安装。以下就是使用官网安装包安装的教程。打开 sublime 官网后,点击右上角 download, 或是直接访问点击打开链接,即可看到各个平台上的安装包。选择 Linux 64 位版并下载。下载后,打开终端,进入安装..._ubuntu 安装sumlime text打不开
文章浏览阅读563次,点赞13次,收藏6次。CrossOver24是一款类虚拟机软件,专为macOS和Linux用户设计。它的核心技术是Wine,这是一种在Linux和macOS等非Windows操作系统上运行Windows应用程序的开源软件。通过CrossOver24,用户可以在不购买Windows授权或使用传统虚拟机的情况下,直接在Mac或Linux系统上运行Windows软件和游戏。该软件还提供了丰富的功能,如自动配置、无缝集成和实时传输等,以实现高效的跨平台操作体验。
文章浏览阅读1.7k次。一个用聊天的方式让ChatGPT帮我写的线程安全的环形List_为什么gpt一写list就卡
文章浏览阅读336次。我们在前面的文章里曾写过Web应用中乱码产生的原因和处理方式,旧文回顾:深度揭秘乱码问题背后的原因及解决方式其中我们提到可以通过Filter的方式来设置请求和响应的encoding,来解..._filterconfig selectencoding
文章浏览阅读651次。转自:http://www.jb51.net/article/36480.htmencodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以encodeURI把非英文字符转化为英文编码,decodeURI可以用来把字符还原回来_js encodeur decodeurl
文章浏览阅读1.9w次,点赞6次,收藏3次。前言在日常的Android开发当中,我们肯定要打包apk。但是今天我打包的时候遇到一个很奇怪的问题Android The destination folder does not exist or is not writeable,大意是目标文件夹不存在或不可写。出现问题的原因以及解决办法上面有说报错的中文大意是:目标文件夹不存在或不可写。其实问题就在我们的打包界面当中图中标红的Desti..._the destination folder does not exist or is not writeable
文章浏览阅读94次。一、配置代码编辑区的样式 <1>打开Eclipse,Help —> Install NewSoftware,界面如下: <2>点击add...,按下图所示操作: name:随意填写,Location:http://eclipse-color-th..._ecplise高大上设置
文章浏览阅读2.8k次。一,下载mysql:http://dev.mysql.com/downloads/mysql/; 打开页面之后,在Select Platform:下选择linux Generic,如果没有出现Linux的选项,请换一个浏览器试试。我用的谷歌版本不可以,换一个别的浏览器就行了,如果还是不行,需要换一个翻墙的浏览器。 二,下载完后解压缩并放到安装文件夹下: 1、MySQL-client-5.6.2_linux mysql 安装 mysql-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle