这篇文章上次修改于 264 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

无论是从事电子的嵌入的PC端的移动端的物联网等等,撑握一下互联网的基本技能是有点需要的。
各种云什么服务,简单地说就是服务器提供的数据输入输出服务。
以本站为例:服务器操作系统为centos
一.安装nginx。
简单地把服务器当成一栋提供各式各样服务的大楼。
nginx就是大楼的看门员接待员引导员。
yum nginx update
yum install nginx
按提示完成安装
网站入口目录正常在/usr/share/nginx/目录下
配置文件正常在 /etc/nginx/nginx.conf
systemctl enable nginx 随系统自启动
systemctl start nginx systemctl start nginx service nginx stop service nignx start 手动停开命令
具体配置参数请找教程,最后会附上本站带的tomcat与php的样例配置。

二.安装最新的mysql8
https://dev.mysql.com/downloads/repo/yum/下载安装源rpm包 mysql80-community-release-el8-1.noarch.rpm
安装源 yum localinstall mysql80-community-release-el7-1.noarch.rpm
yum repolist enabled | grep "mysql.-community." 查看源包信息
vi /etc/yum.repos.d/mysql-community.repo 可以编辑设置安装的版本
安装yum install mysql-community-server
安装完后初始化

   mysqld --initialize;
   chown mysql:mysql /var/lib/mysql -R;
   systemctl start mysqld.service;
   systemctl enable mysqld;

通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码
初次需要 mysql -uroot -p 并且修改root密码
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY "youpassword";
退出后再次 mysql -u root -p就可以使用root账号
正常来说 使用一些UI界面的数据库管理软件 需要增加或修改root的作用范围 ,并开放防火墙 3306端口
配置root可远程登录:
use mysql;
update user set host='%' where user ='root';
flush privileges;
至此完成安装。

忘记了root账号密码的重置方法如下:
关闭mysql 在mysql my.cnf 中增加skip-grant-tables行 启动mysql
免密码登录 mysql -u root -p
use mysql; update user set authentication_string='' where user='root';账号root密码清空
退出mysql, 删除my.cnf文件的 skip-grant-tables 重启
免密码登录 mysql -u root -p
修改新密码ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'youpassword';

三. php安装..与typecho博客安装
由于是与nginx配套使用,可以不安装apache httpd 或停止httpd服务。
php安装 就是yum install -y php php-fpm php-curl php-gd* php-mysql
systemctl enable php-fpm.service随系统自启。

下载typecho 解压typecho build目录到一新目录 /usr/share/nginx/typecho 即可
然后把nginx 的root目录设为typecho 使typecho成为网站的初始页
再在nginx.conf上增加 typecho 的location:
location ~ ..php(/.)*$

 {     try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-70.sock; 
fastcgi_index index.php;
include fastcgi.conf; 

    #include pathinfo.conf;
    set $real_script_name $fastcgi_script_name;
    if ($fastcgi_script_name ~ "(.+?\.php)(/.*)") {
    set $real_script_name $1;
    set $path_info $2;
    }
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;
}

四. jdk tomcat的安装

1.首先下载最新的jdk 解压
在/etc/profile末尾插入环境配置:
JAVA_HOME=/usr/local/java/jdk1.8.0_161  你的解压目录
JRE_HOME=/usr/local/java/jdk1.8.0_161/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
source /etc/profile生效。 java -version验证jdk安装信息。

2.下载 最新tomcat包 解压。
#创建Tomcat8服务文件 使tomcat启动
 vi /usr/lib/systemd/system/tomcat.service  文件内容如下:

[Unit]
Description=tomcat
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

设置Tomcat开机启动

systemctl enable tomcat

启动tomcat服务

systemctl start tomcat

默认的tomcat是使用8080端口
因此需要在nginx上面增加tomcat的location
可以是不同域名或相同域名不同目录的内容由 php还是tomcat来处理。这需要nginx的配置知识。
更多的php或tomcat服务程序可以复制启动新的php2 tomcat2这样启动不同服务。均可由nginx分发代理。

五.https的支持.默认的各个服务程序均是http方式;
如果每个服务程序都自己配置https方式,管理起来麻烦。
在nginx配置https方式,可以统一处理。
nginx.conf 如下:
server {

        listen 80;
        listen 443;
        server_name xxx.com;
        ssl   on;
        ssl_certificate    /data/www-key/xxx.pem;
        ssl_certificate_key    /data/www-key/xxx.key;
        if ($scheme = http) {
        return 301 https://$host$request_uri;
        }
至此服务器的搭建基本成型。
简单备份与恢复

tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/tmp --xclude=/backup.tgz /
tar xvpfz backup.tgz -C /

最后各个服务在linux应该有自己的组与用户以隔离安全。
建立专用组和用户。
groupadd www
useradd -r -s /sbinlogin -g www tomcat
赋予专用用户权限:
chown -R tomcat:www /youtomcatdir....
chown -R tomcat:www /youtomcatdir....