云服务器centos8搭建网站 apache+php+mysql

news2024/11/15 16:27:15

由于对数据库容量要求比较大,年费用300左右的普通虚拟主机只能提供500M-1G的数据库,不能满足要求,故寻找到同样费用的云服务器单核、1G内存、系统盘50G,缺点是只提供基本系统centos,其他要自己搭建,经过一周摸索终于能正常运行。

全部安装完成后占用硬盘8G左右,包括2G的扩充虚拟内存。原机提供的1G内存很容易用完(mysql占用40%-60%内存),这样系统会杀死一些进程,使得网站可能不能正常使用。所以要扩充虚拟内存。

这里使用的是HK的云服务器,有些服务商安装初始系统时已经给配置了虚拟内存,用 free -h 查看swap情况。

这里系统软件选择的是centos8

*****************************每部分间隔*****************************************

0、前期准备

a、一般通过SSH协议终端模拟器软件远程操作服务器,所以要下载相关软件,这里用Xshell,软件下载、使用都很简单的,这里就不介绍了。

b、由于要经常使用vi编辑文件,vi默认没有显示行号,下面先增加行号显示

echo 'set nu' >> /etc/virc

//没有行号无所谓的可以略过

c、为了传文件方便,安装上传下载软件,可以不装
yum install lrzsz -y

d、关闭防火墙,如果没开就略过

systemctl stop firewalld

*****************************每部分间隔*****************************************

1、扩充虚拟内存

如果服务商已经扩充了虚拟内存,可跳到第2步。

使用dd命令创建名为swapfile 的swap交换文件(文件名和目录任意)1m*2048=2G ,内存大小根据需要来定。
dd  if=/dev/zero  of=/var/swapfile  bs=1m  count=2048 

对交换文件格式化并转换为swap分区
mkswap  /var/swapfile

挂载并激活分区
swapon   /var/swapfile

//如果不能正常开通,就增加权限  chmod -R 0600 /var/swapfile

开机启动设置
echo  "/var/swapfile   swap  swap  defaults  0  0" >>  /etc/fstab

vi /etc/sysctl.conf
//在最后一行加上“vm.swappiness=30”  一般是60,
或 echo "vm.swappiness = 30"  >>  /etc/sysctl.conf

//开关wsap
swapoff  /var/swapfile
swapon  /var/swapfile

free -h 检查swap

*****************************每部分间隔*****************************************

2、安装Apache

Web服务器软件之一,Apache HTTP Server ,简称Apache,也可安装其他服务器软件,自己搜索

a、安装apache
yum install httpd -y

查看httpd安装位置
rpm -ql httpd

b、修改配置文件httpd.conf
vi /etc/httpd/conf/httpd.conf

//vi操作,按字母i开始修改增加文件内容,完成后按ESC退出编辑模式(不是退出vi), :wq!  保存文件并退出vi 

106行   128
AllowOverride None 全部修改为 AllowOverride All  #修改前看看相关文章,也可以不改


167行  增加默认启动文件,排前面的有优先权
在 DirectoryIndex index.html 后面加上 index.htm default.php index.php index.shtml

c、启动apache

----------额外提示开始--------------

//注意:空格,有时候复制的命令不能正确执行原因是空格(空格可能是非英文的空格)造成的。辨别方法,复制这个命令粘贴到Notepad++ 空白文件里,尽量放大,观察空格的形态,如果空格里有个淡橙色的小点,说明空格是正确的,如果空格区域说明都没有,那这个空格就不是纯英文的空格,注意图中2个空格对比。

 

 //比如执行这个命令systemctl enable httpd.service 

//会出行错误提示-bash: systemctl enable httpd.service: command not found

---------------额外提示结束---------------

systemctl start httpd.service     //systemctl start httpd 也可以

systemctl enable httpd.service      //开机自启apache服务器

提示:如果启动失败,很有可能是因为80端口被占用。此时,需要修改监听端口。

vi /etc/httpd/conf/httpd.conf,找到 Listen 80,修改为 Listen 8080。

*****************************每部分间隔*****************************************

3、尝试访问网站

一般来说,这样就可以通过ip地址、域名(域名要解析到服务器的Ip,此时域名访问不能使用https://.....  方式访问,只能使用http://...... 访问)进行正常访问网站

域名解析如下图, 对应值是服务器的ip,各域名服务商可能不一样,大致差不多。

 其实只要安装了apache,启动apache,不做任何设置就可以通过ip来访问, http://服务器IP

注意:新安装的apache不支持 https://服务器ip  ,装了SSL证书才能用https://....  访问

*****************************每部分间隔*****************************************

4、安装SSL服务器证书

SSL 证书,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能,使用HTTPS访问网站。简单来说HTTPS是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。

在阿里云申请免费SLL,有效期一年,个人可以免费申请20张   申请免费DV单域名试用证书,  介绍说不支持为公网IP申请免费证书,我试过可以,可能要看服务器商提供IP情况。

域名注册服务商有的提供1元购买SSL,有效期也是一年,具体情况问自己的域名服务商。

将阿里的ssl文件解压,得到3个文件,为了省事(少敲键盘)把长文件名改了部分,ali是修改的,其他不没修改。

a、把3个文件上传到服务器,

cd /

mkdir cert

cd cert

rz -y  //上传文件,会出来一个对话框,找到下载的3个文件,点确定,上传结束后窗口会关闭

b、编辑ssl配置文件

vi /etc/httpd/conf.d/ssl.conf

//下面说的行号,可能会有小小不同,如果行号不对,就查找对应语句

第5行 看443是否打开监听,一般是去掉每行第一个字符#

#Listen 443 https  --> Listen 443 https

//阿里的免费 SSL,一定要把3个文件都加上
85   SSLCertificateFile /cert/ali_public.crt  #修改证书的保存位置
93   SSLCertificateKeyFile /cert/ali.key
102 SSLCertificateChainFile /cert/ali_chain.crt

//去掉#号,域名换你的域名,
43  DocumentRoot "/var/www/html"
44  ServerName www.example.com:443

然后保存退出

c、将http强制转换https

vi /etc/httpd/conf/httpd.conf

107行后加入    (<Directory>.....</Directory>中)

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

保存退出


重启apache
systemctl restart httpd.service   //apachectl restart

d、访问网站,一般就可以正常访问了
https://*****.com ,如果浏览器只显示缓存内容,按F5刷一下

*****************************每部分间隔*****************************************

5、安装PHP

查看是否安装过php旧版本
rpm -qa|grep php*   or  yum list installed |grep php

如果有就删除
yum remove php*

安装php

yum install php php-devel

php要使用mysql数据库,必须安装对应模块,否则无法对接mysql。如果不需要可以不装
a、yum search php  //查找安装源里与php相关的软件,找到php-mysq* 等软件名称,这里选的是        php-mysqlnd.x86_64
b、安装mtsql模块:yum -y install php-mysqlnd.x86_64
c、再安装常用的PHP模块,比如GD库,curl,mbstring,… ,也可以不装
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

------------php时区问题开始-------------------

关于php时区问题,由于服务器所处的位置,国家、地区不同,php默认的时区有可能不是北京时间,那么在时间读取上会有时差,所以要确认时区,如果已知时间正常可以不不=管时区的问题。

修改php时区,设置date.timezone =Asia/Shanghai,注意去掉该行排头的分号;
vi /exc/php.ini
902 date.timezone=Asia/Shanghai

重启php
ps -ef | grep php* //查询php进程,用来确定重启的文件名,不同版本php具体名称可能不同
systemctl restart php-fpm.service

------------php时区问题结束-------------------

重启apache 
systemctl restart httpd.service

---------------------
如果php不能执行,
你的apache 还不支持解析php
打开 httpd.conf 文件 找到 #AddType application/x-tar .tgz
在后面添加 AddType application/x-httpd-php .php
重启systemctl restart httpd.service

如果还不行,再检查 php.ini 的short_open_tags 选项是否打开 
---------------------------------------------

6、安装mysql

安装MySQL ,适合centos8的
yum install mysql mysql-server mysql-devel -y

#查看数据库版本
mysqladmin --version

启动mysql服务并设置为开机启动
systemctl enable --now mysqld

systemctl start mysqld //启动mysql 
systemctl stop mysqld   //


service mysqld restart //重启MySQL服务

systemctl status mysqld  //查看数据库状态

mysql -u root -p  //登录mysql,如果是新安装的直接按回车

进入mysql后,建立一个演示用的数据库,注意大写部分
CREATE DATABASE testdb;

显示数据库,就可以看到刚建立的数据库
show databases;

--------------mysql增加新用户及权限设置开始-------------------------------

php要操作mysql,必须要有一个用户名、密码、及相应的权限,直接用root也可以,但是不建议这么做。

1、生成新用户
CREATE USER 't123'@'localhost' IDENTIFIED BY '123456';  

2、给新用户增加权限,否则php无法访问数据库
GRANT ALL ON testdb.* TO 't123'@'localhost';  //只能本地用户t123访问testdb数据库

--------------mysql增加新用户及权限设置结束-------------------------------

 7、编写php代码,连接testdb数据库

<?php
header("content-type:text/html; charset=UTF-8");

$dbhost = 'localhost';  // mysql服务器主机地址
$dbuser = 't123';            // mysql用户名
$dbpass = '123456';          // mysql用户名密码
$dbname = "testdb";  //数据库名称
$conn=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (!$conn)
{
    die("连接失败,错误: " . mysqli_connect_error());
}else{
    die("连接成功!");
}
?>

运行代码,测试是否连接成功

至此,云服务器centos8搭建网站 apache+php+mysql 搭建过程全部完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05_openstack之Neutron网络管理

目录 一、环境准备 二、通过Horizon设置外部网络 1、创建外网网络 2、创建内网网络 3、创建路由 一、环境准备 部署openstack私有云环境&#xff1a;02_openstack私有云部署_桂安俊kylinOS的博客-CSDN博客 创建项目和用户&#xff1a;03_openstack之项目及用户管理_桂安…

fastTEXT论文解读并附实例代码

上一篇博文是入门使用级别&#xff0c;但对于面试来说则不够&#xff0c;毕竟领导一问三不知必定over&#xff0c;其基本原理还是要搞清楚&#xff0c;因而有此博文。paper在此 0&#xff0c;绪论 考虑紧致特征以减少存储空间&#xff0c;提出在PQ&#xff08; product quant…

三、CANdelaStudio入门-视图类型(View type)

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的各个视图类型:Standard View、Expert V…

Jmeter的使用教程(安装)

前言&#xff1a;之前在工作中未接触过Jmeter&#xff0c;只是知道这个Java语言开发的工具主要是测试接口的&#xff0c;还能做一些性能和压力的测试、并发什么的。目前市面上的有postman、apifox&#xff0c;request、swagger。 一、下载&#xff1a; 1、可以直接到官网下载&a…

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

在这里先声明一下&#xff0c;级联CESO由美国学者Rafal Madonski的论文 《Cascade extended state observer for active disturbance rejection control applications under measurement noise》提出&#xff0c;本人只是将他给的模型给中国学者研究&#xff0c; 模型适用于各…

做了几年“斜杠青年”,我在ZStack立志做国产云计算的研发

在浅黑科技《ZStack&#xff1a;这群做云的人有点“轴”》一文中&#xff0c;作者史中提到&#xff0c;这是一篇国产云计算佼佼者ZStack的创业史&#xff0c;文中记录了因为热爱而聚集起来的最早一批ZStacker&#xff0c;他们生活没有退路&#xff0c;但热爱未有止息。 实际上…

概率论与数理统计_第1章_几何概型

1 定义 若一个试验具有下列两个特征&#xff1a; &#xff08;1&#xff09;试验的所有可能结果是无限多个&#xff0c; 且全体结果可以用一个有度量的几何区域 Ω 来表示&#xff1b; &#xff08;2&#xff09;每个可能结果 都相同概率可能发生&#xff0c; 则该试验称为几何…

Pytorch:Torch数据类型学习整理与记录

文章目录前言一、Tensor数据类型简介Tensor数据类型是什么?Tensor数据类型有哪些指定调用的API生成相关数据类型dtype属性指定Tensor内置的简单数据类型二、Tensor数据类型的基本使用Tensor初始化基于list列表和nparrayTensor相关API基于指定Tensor类型进行初始化基于Randn生成…

postgres源码解析40 表创建执行全流程梳理--4

本文讲解非系统表的创建逻辑&#xff08;[<fontcolor0000dd>普通表和索引表]&#xff09;&#xff0c;其入口函数为heap_create&#xff0c;内部公共接口函数为RelationBuildLocalRelation和RelationCreateStorage相关知识回顾见&#xff1a; postgres源码解析38 表创建执…

Mac M1使用UTM安装centos7 x86_64虚拟机

一、环境说明 1. 宿主机环境 macbook m1 pro 16G 2. UTM版本 UTM是基于QEMU的系统模拟器和虚拟机主机&#xff0c;适用于iOS和macOS。 UTM is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU. 最新版下载地址&…

带你玩转序列模型之NLP与词嵌入(二)

目录 一.Word2Vec 二.负采样 三.GloVe词向量 四.情绪分类 五.词嵌入除偏 一.Word2Vec 在上个视频中你已经见到了如何学习一个神经语言模型来得到更好的词嵌入&#xff0c;在本视频中你会见到 Word2Vec算法&#xff0c;这是一种简单而且计算时更加高效的方式来学习这种类…

用于 Python 降维的主成分分析

减少预测模型的输入变量数称为降维。 较少的输入变量可以产生更简单的预测模型&#xff0c;该模型在对新数据进行预测时可能具有更好的性能。 也许机器学习中最流行的降维技术是主成分分析&#xff0c;简称PCA。这是一种来自线性代数领域的技术&#xff0c;可用作数据准备技术…

耗时大半个月收整全套「Java架构进阶pdf」

花了我大半个月时间收整了全套的「Java架构进阶pdf」&#xff0c;这一波下来&#xff0c;刷完你就会知道&#xff0c;真真香啊&#xff0c;我的心血果然&#xff0c;没白费&#xff01; 请注意&#xff1a;关于全套的「Java架构进阶pdf」&#xff0c;我会从面试-筑基-框架-分布…

【Android App】实战项目之仿微信的视频通话(附源码和演示 超详细必看)

需要源码请点赞关注收藏后评论区留言私信~~~ 虽然手机出现许多年了&#xff0c;它具备的功能也越来越丰富&#xff0c;但是最基本的通话功能几乎没有变化。从前使用固定电话的时候&#xff0c;通话就是听声音&#xff1b;如今使用最新的智能手机&#xff0c;通话仍旧是听声音。…

无刷三相直流电机电动工具驱动方案设计

电动工具是一种工具&#xff0c;其致动通过附加的动力源和机构比仅其他手工劳动与使用手工工具&#xff0c;电动工具用于工业、建筑、花园、做饭、清洁等家务劳动&#xff0c;以及在房子周围用于驱动&#xff08;紧固件&#xff09;、钻孔、切割、成型、打磨、研磨、布线、抛光…

【微服务】Java agent 使用详解

一、前言 于一个即将上线的应用来说&#xff0c;系统监控是必不可少的&#xff0c;为什么需要监控呢&#xff1f;应用是跑在服务器上的&#xff0c;应用在运行过程中会发生各自意想不到的问题&#xff0c;像大家熟知的OOM&#xff0c;mysql故障&#xff0c;服务器宕机&#xff…

cubeIDE开发,基于已有的STM32CubeMX (.ioc)创建工程文件

一、STM32Cube 生态系统 可以在其官网查看&#xff0c;支持中文。 STM32Cube - Discover the STM32Cube Ecosystem - STMicroelectronics ​ 截取官网的STM32Cube家族的软件工具描述&#xff1a; 【1】STM32CubeMX, 面向任意STM32设备的配置工具。这款简单易用的图形用户界面为…

ubuntu根目录清理

0.防范于未然&#xff08;就像给window电脑清理垃圾&#xff09; 清理ubuntu用不上的东西的常用命令 # 系统自带清理命令 sudo apt-get autoclean sudo apt-get clean sudo apt-get autoremove# 查看目录占用空间 sudo du -cks * | sort -rn | head -10 sudo du --max-depth1…

[附源码]计算机毕业设计JAVA血库管理系统

[附源码]计算机毕业设计JAVA血库管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Ma…

Effective C++条款24:若所有参数皆需类型转换,请为此采用non-member函数

Effective C条款24&#xff1a;若所有参数皆需类型转换&#xff0c;请为此采用non-member函数&#xff08;Declare non-member functions when type conversions should apply to all parameters&#xff09;条款24&#xff1a;若所有参数皆需类型转换&#xff0c;请为此采用no…