centos安装python学习环境和部署web网站

news/2024/5/16 18:17:14/文章来源:https://blog.csdn.net/xiaodazi0723/article/details/108425356

### linux下安装软件的方式

yum安装或者直接下载源码编译安装都行。

yum和源码编译安装的区别?
1.路径区别-yum安装的软件是他自定义的,源码安装的软件./configure --preifx=软件安装的绝对路径
2.yum仓库的软件,版本可能比较低,而源码编译安装,版本可控
3.编译安装的软件,支持第三方功能扩展./configure 这里可以加上很多参数,定制功能

修改yum的镜像源并下载安装Nginx

1.修改yum镜像源

原来的镜像源的配置文件在etc/yum.repos.d/下,由于这个外国网站访问比较慢,所以就需要将这个给替换掉。

  • 备份原来的配置

新建一个文件夹,把原来的两个给移动进去

[root@zhangda yum.repos.d]# mkdir 备份原来的镜像元
[root@zhangda yum.repos.d]# mv CentOS-Base.repo 备份原来的镜像元/
[root@zhangda yum.repos.d]# mv epel.repo 备份原来的镜像元/           #这个文件树莓派好像没有
  • 下载新的配置 到这个文件夹下

一共是两个文件,一个是通用的,一个是第三方的

[root@zhangda yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo[root@zhangda yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  • 清除原来的yum缓存
[root@zhangda yum.repos.d]# yum clean all
  • 生成新的缓存
[root@zhangda yum.repos.d]# yum makecache

2.下载安装Nginx

这个只是用于对yum的测试,Nginx的安装需要编译的方法安装,下文有方法

1.yum install nginx  -y     默认一路都是yes
2.直接输入nginx启动,启动后可以访问了看看,如果能看到首页说明成功了

如果nginx启动了没有成功,nginx故障检查

注:阿里云需要去开一下80端口

通过yum安装的软件 重启打开和关闭的方法

系统服务管理命令,只有通过yum安装的软件,默认才能使用这个命令管理
格式:systemctl start/stop/restart 服务名

systemctl  start/stop/restart  mariadb 
systemctl  start/stop/restart  redis
systemctl  start/stop/restart  nginx

关闭防火墙和失能其开机启动

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld  #查看状态 inactive(dead)说明关闭了

安装python3和Django

1.安装python3

用编译的方式安装python3

  • 下载python3的源码
cd /opt    转到这个目录,等一下就把东西下载到这里
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz    下载源码

可能下载源码的时候会出现连接不上的问题,就多执行几次这个命令,可能是网速慢导致的

  • 解决环境依赖 这个必须搞,都是前辈踩出的坑

    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

    这一步太重要了,没有这一步暂时不报错,但是之后编译出来的python就会有错。

    如果真的是这一步忘了,以后就只能再install 然后重新编译了。

  • 解压源码包

tar -xvf  Python-3.6.2.tgz
  • 切换源码包目录
cd Python-3.6.2 
  • 编译且安装

1.释放编译文件makefile,这个是用来编译且安装的

./configure --prefix=/opt/python36/

注:–prefix= 这个参数是用来指定位置,但是这一步执行完之后opt里还没有python36的文件夹,这一步就是释放出makefile这个文件。

ls2.编译python3

make

​ 直接就是make,make会调用gc工具

这一步make会出现下图所示的问题,很多资料遇到了也没解决,不知道以后有没有问题。解决方法参考:https://www.jianshu.com/p/bafe87a15f98 先把 /usr/bin/phthon 移动到一个地方保存 然后继续 make 和 install 结束后再把保存的python放回去

image-20200206232736693

3.编译且安装 (只有在这一步,才会生成/opt/python36)

make install 

4.配置环境变量

#linux有一个全局个人配置文件/etc/profile ,编辑这个文件,在最底行写入PATH

打开这个文件
vim /etc/profile 在最后一行写入(这个得写在开头)		PATH=/opt/python36/bin:usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin读一下这个/etc/profile 使得生效
source /etc/profile

到这儿就安装完成了,下面写的是软连接的方法(一般不这么玩),一般使用全局变量,这样那个文件夹里的pip啥的都好用

配置python3.6的环境变量
1.配置软连接(注意,这个和PATH配置,二选一)
ln -s 目标文件 软连接文件
ln -s /opt/python36/bin/python3.6 /usr/bin/python3
此时还没有pip
ln -s /opt/python36/bin/pip3 /usr/bin/pip3

		2.配置path环境变量 (二选一即可)echo $PATH查看环境变量/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin#这个变量赋值操作,只是临时生效,需要写入到文件,永久生效PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin#linux有一个全局个人配置文件编辑这个文件,在最底行写入PATHvim /etc/profile 写入PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin保存退出读一下这个/etc/profile 使得生效source /etc/profile

2.安装Django

如果安装的是最新版本的Django可能会出现sqlite版本低的问题,安装Django2.x版本可以避免这个问题参考方案 可以2.1.4版本的

pip3 install django==2.1.4 -i https://pypi.douban.com/simple/

virtualevn的使用

1安装virtualevn

有的时候项目来了需要Django1.1,有的时候又需要Django2.0,这样在一个python解释器下就不能同时用这个两个版本的了,这个时候virtualevn就派上用场了。virtual相当于重新开了一块地方,把原来的解释器和pip都复制到新地方,然后干干净净的安装,和原来的不冲突。

1.通过物理机下载virtualevn工具(安装16.7.9版本的,高版本的参数不太对)

pip3.6 install  virtualenv==16.7.9 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.创建虚拟环境

virtualenv --no-site-packages --python=python3   ZDenv1

–no-site-packages 这是构建干净,隔离的模块的参数
–python=python3 这个参数是指定虚拟环境以哪一个物理解释器为基础的

3.进入虚拟目录,激活虚拟环境

source myenv/s15venv1/bin/activate

4.激活后使用which pip 命令 可以发现其来自于 刚才virtual的那个环境下。这说明成功了

此时pip list会发现是干净的环境。pip instal 安装的所有东西都是在这个里面。

5.退出虚拟环境的命令

deactivate

2.virtualenvwrapper管理工具来简化virtualen的使用

主要是因为virtualen有点复杂,各种目录来回换,麻烦的不行,所以可以用这个工具来简化这些操作

1.安装virtualenvwrapper管理工具

pip3 install virtualenvwrapper -i https://pypi.tuna.tsinghua.edu.cn/simple

2.将PATH变量的py3.6解释器(/opt/python36/bin)放到前面去

image-20200207202235114

#echo看一下path  结果发现不是再最前面,那就手动调整一下
echo $PATH
PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin  #重新赋值改写一下

3.修改环境变量,每次开机就加载这个virtualenvwrapper工具

vim ~/.bashrc #vim编辑用户家目录下的.bashrc文件,这个文件是用户在登录的时候,就读取这个文件
#export 是读取shell命令的作用
#这些变量根据你自己的绝对路径环境修改

export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3.6
source /opt/python36/bin/virtualenvwrapper.sh

4.重新登录ssh会话,使得这个配置生效

logout 退出连接

ssh 12.13.0.0 登录对应的地址

5.使用工具提供的命令

mkvirtualenv  虚拟环境名   #自动下载虚拟环境,且激活虚拟环境
workon  虚拟环境名   #激活虚拟环境
deactivate  退出虚拟环境 
rmvirtualenv	删除虚拟环境 
cdvirtualenv  进入当前已激活的虚拟环境所在的目录
cdsitepackages 进入当前激活的虚拟环境的,python包的目录

安装mysql

mysql和MariaDB,ping to ping。

安装

用yum的方式安装mysql有两种,一种是用阿里云提供的,一种是用mysql官方提供的yum,两者的区别是阿里云提供的yum相比于官方的yum版本可能低一点,优点是国内网站,下载安装的速度快。

  • 法1:用阿里云的方式下载安装mysql

    yum install mariadb-server  mariadb -y  
  • 法2:官方提供的yum下载

    1.配置官方的mariadb的yum源,手动创建 mariadb.repo仓库文件 (此步重要!!!!!!!!!!!)
    touch /etc/yum.repos.d/mariadb.repo
    然后写入如下内容

    	[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.1/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1

    2.配置完成后通过yum安装

    yum install MariaDB-server MariaDB-client -y

    如果法2下载速度太慢,想使用法1请删除 mariadb.repo,(只是为了使用阿里云的yum源中的mariadb)

    mariadb.reporm -rf /etc/yum.repos.d/Mariadb.repo  #删除 mariadb.repo 
    yum clean all    #然后清空yum 缓存

启动

安装完成后,启动mariadb服务端

systemctl  start/stop/restart/status  mariadb    
systemctl enable mariadb   #开机自动启动mariadb

初始化

mysql_secure_installation  #这条命令可以初始化mysql,删除匿名用户,设置root密码等等...
#(第一个enter current ... 直接安装enter就行,因为当前没有密码)   设置密码  删除匿名Y  不允许远程登录N(这个得选择N) 后面的删除test还有权限表都选择Y

登录

mysql -uroot -p

设置中文支持

vi /etc/my.cnf

1.在[mysqld]中添加参数,使得mariadb服务端支持中文

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

2.重启mariadb服务,读取my.cnf新配置

systemctl restart mariadb 

3.登录数据库,查看字符编码 交互中输入 \s 查看编码

mysql -uroot -p 

到这一步mysql的安装就结束了

mysql的使用

各种协同略去一万个字 草泥马…

安装redis

下载+编译

调到opt的目录下,

下载

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

解压缩

tar -zxf redis-4.0.10.tar.gz 

编译且安装,这个直接有makefile 所以不需要./configure --prefix这一步

make && make install 

修改配置参数

修改的原因是让远程可以链接+修改默认的端口,如果不改端口把端口暴露在外面 会很不安全

vim /opt/redis-4.0.10/redis.conf 
1.更改bind参数,让redis可以远程访问bind 0.0.0.0
2.更改redis的默认端口port 6380
3.使用redis的密码进行登录requirepass 登录redis的密码

指定配置文件启动

redis-server redis.conf 

至此redis安装完成

通过新的端口和密码登录redis

方法1
redis-cli -p 6380
登录后收到输入auth和密码 
auth 密码
方法2
redis-cli -p 6380  -a  redis的密码  (这个不太安全)

redis发布订阅

redis的发布者、订阅者

订阅者订阅哪个频道,发布者可以发布,这样订阅者就能收到信息了。比如三个客户端,其中一个客户度端作为发布者,他发的消息可以让另外两个订阅者收到。

1.发布者publish  频道  消息		给频道发消息
2.订阅者SUBSCRIBE  频道     	订阅频道 PSUBSCRIBE 频道*  		支持模糊匹配的订阅
3.频道channel  频道名 自定义

持久化

持久化有两种方法一种是RDB一种是aof

  • RDB的原理就是将内存里的数据定时,存储在磁盘里
  • aof的原理就是将每一步redis操作存起来,下次打开时重头到位操作一遍
RDB

在配置文件中添加参数,开启rdb功能

redis.conf写入(redis.conf可以是新建的一个文件,然后redis-server …redis.conf用这个文件夹里的参数打开就行)

定时存也可以手动存,在关闭服务之前手动存一下的命令时redis.save

port 6379  #端口
daemonize yes  #远程登录
logfile /data/6379/redis.log  #日志
dir /data/6379         #保存在磁盘哪里
dbfilename   s15.rdb   #保存的名称
save 900 1             #rdb机制 每900秒 有1个修>改记录
save 300 10            #每300秒        10个修改
save 60  10000         #每60秒内        10000修>改记录

redis-server redis.conf 打开redis服务

AOF

开启aof功能,在redis.conf中添加参数

port 6379
daemonize yes
logfile /data/6379/redis.log
dir /data/6379
appendonly yes
appendfsync everysec

启动redis服务端,指定aof功能,测试持久化数据

redis不重启的情况下,从RDB切换到AOF

实验步骤:
1.准备rdb的redis服务端redis-server   s15-redis.conf (注明这是在rdb持久化模式下)2.切换rdb到aof
redis-cli  登录redis,然后通过命令,激活aof持久化
127.0.0.1:6379> CONFIG set appendonly yes#用命令激活aof持久化(临时生效,注意写入到配置文件)
127.0.0.1:6379> CONFIG SET save "" 			#关闭rdb持久化3.将aof操作,写入到配置文件,永久生效,下次重启后生效port 6379daemonize yes logfile /data/6379/redis.logdir /data/6379   #dbfilename   s15.rdb#save 900 1  #save 300 10 #save 60  10000 appendonly yesappendfsync everysec4.测试aof数据持久化 ,杀掉redis,重新启动
kill 
redis-server s15-redis.conf 5.写入数据,检查aof文件

安装Nginx

安装依赖包(前任走过的坑的总结)

yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

下载源码

wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

解压缩,编译,安装

tar -zxvf nginx-1.12.0.tar.gz   #解压缩   
./configure --prefix=/opt/nginx112/   #产生make文件
make && make install   #编译安装

进入nginx的工作目录

cd /opt/ngin112/
conf  配置文件目录
html  网页根目录,你的index.html就放在这里,然后通过域名访问  pythonav.cn/index.html     html/index.html 
logs	日志
sbin	存放nginx可执行命令的

定制自己的nginx网站(可以先不修改,因为有默认的页面)

修改/opt/nginx112/html/index.html  这是nginx网页根文件,清空内容写入自己的html标签

启动nginx服务器

/opt/nginx112/sbin/nginx    直接回车执行 

检查nginx服务端口

ps -ef|grep nginx 

开启后,输入网址访问


项目部署

传输项目代码到服务器上

可以直接wget从网上下载,或者使用xftp从windows上传输过去。

前端的restful接口需要改变一下,改成和部署的服务器对应的,可以改好了发,也可以到linux里面再改

部署前端

前端框架为vue,需要node进行打包。

1.下载node包,解压node包,将node包里的npm和node命令添加到环境变量PATH里。

wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz#下载node包
[root@da 软件安装包] tar -zxvf node-v8.6.0-linux-x64.tar.gz  #解压安装包#找到解压后文件的bin目录
/opt/node-v8.6.0-linux-x64/bin#将bin目录添加到全局变量里,方便以后调用npm和node
vim /etc/profile  #打开这个文件
#在最后一行添加bin目录
/opt/python36/bin:/opt/node-v8.6.0-linux-x64/bin#激活一下
source /etc/profile#测试一下有没有成功 如果能够看到版本说明成功了
node -v
npm -v

2.安装vue项目所需要的包

先跳转到前端项目的目录下(有build和config的目录下)

npm install   #生成一个node_module的文件夹 那个文件夹传到linux之前是给删除的
npm run build #编译,会生成一个dist文件,这个文件就等着Nginx来调用

部署后端

1.安装后端的依赖

#导出某个环境所有后端的依赖
pip3 freeze >  requirements.txt 
#根据某个依赖的.txt,给服务器安装依赖
pip3 install -r  requirements.txt

2.uwsgi的使用方法

2.1通过uwsgi启动一个python web文件

uwsgi --http :8000 --wsgi-file   s15testuwsgi.py
--http 指定http协议 
--wsgi-file  指定一个python文件

2.2通过uwsgi启动django项目,并且支持热加载项目,不重启项目,自动生效 新的 后端代码

uwsgi --http  :8000 --module s15drf.wsgi    --py-autoreload=1
--module 指定找到django项目的wsgi.py文件

2.3 使用uwsgi的配置文件,启动项目

创建一个uwsgi.ini配置文件,写入参数信息

touch uwsgi.ini #建一个文件,写入下面的内容									
[uwsgi]
# Django-related settings
# the base directory (full path)
#指定项目的绝对路径的第一层路径!!!!!!
chdir           = /opt/codeSourse/luffy_boy/# Django's wsgi file
#  指定项目的 wsgi.py文件!!!!!!!!!!!!
#  写入相对路径即可,这个参数是以  chdir参数为相对路径
#查看绝对路径 cdvirtualenv  然后pwd
#这边的luffy_boy不是上面指定的那个,是那个文件夹里的
module          = luffy_boy.wsgi# the virtualenv (full path)
# 写入虚拟环境解释器的 绝对路径!!!!!!
home            = /root/Envs/s15vuedrf
# process-related settings
# master
master          = true
# maximum number of worker processes
#指定uwsgi启动的进程个数				
processes       = 1#这个参数及其重要!!!!!!
# the socket (use the full path to be safe
#socket指的是,uwsgi启动一个socket连接,当你使用nginx+uwsgi的时候,使用socket参数#如果不是使用Nginx那就得把这个注释掉  否则会被错误支配很久
socket          = 0.0.0.0:8000#这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数	
#http  =  0.0.0.0:8000# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

使用uwsgi配置文件启动项目

uwsgi --ini  uwsgi.ini 

注意点(血泪史)

0.假如不是用nginx的配置用http 用nginx才用socket 测试的时候应http
1.阿里云服务器端口默认是关闭的,去安全组里打开对应的
2.用postman测试的时候http://101.200.*.*:**/*/category/  最后的/不能忘记
3.关闭防火墙 关闭selinux

如果测试能访问了,说明启动Django成功了。用nginx的时候需要将http改成socket,关闭重新开。

nginx连接前后端

配置nginx的配置文件 /root/Envs/s15luffycity

#第一个server虚拟主机是为了找到vue的dist文件, 找到路飞的index.html
server {listen       80;server_name  101.200.219.16;		#当请求来自于 101.200.219.16/的时候,直接进入以下location,然后找到vue的dist/index.html location / {root   /opt/s15vuedrf/07-luffy_project_01/dist;index  index.html;}	}#由于vue发送的接口数据地址是 192.168.13.79:8000  我们还得再准备一个入口server
server {listen 8000;server_name  192.168.13.79;#当接收到接口数据时,请求url是 192.168.13.79:8000 就进入如下locationlocation /  {#这里是nginx将请求转发给  uwsgi启动的 9000端口uwsgi_pass  192.168.13.79:9000;# include  就是一个“引入的作用”,就是将外部一个文件的参数,导入到当前的nginx.conf中生效include /opt/nginx112/conf/uwsgi_params;}
}

启动nginx

./sbin/nginx  #直接启动 

修改linux时间显示的方式

默认是英文不符合习惯

#打开这个文件
vi  ~/.bash_profile
#在下面添加一行
export TIME_STYLE='+%Y/%m/%d %H:%M:%S'
#出来激活一下
source ~/.bash_profile

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快捷键练习网站

https://www.shortcutfoo.com/

网站上线-新的开始

十分钟空间(https://tmspace.cn)——每天十分钟属于自己的一片空间,学习、阅读、娱乐让自己有一个好的开始。每天坚持十分钟,让自己生活充满幸福。 时间过得真快,现在都已经2020年了,时光匆匆,从…

整个网站变灰css样式

4月4日举行全国哀悼,致敬英雄,缅怀英烈。各大网站和视屏都在变灰,于是我也学习了一下css样式,向英雄致敬! 4月4日举行全国哀悼,致敬英雄,缅怀英烈。各大网站和视屏都在变灰,于是我也…

80ms的快感,使用免费日本CDN加速网站

许多站长在架设网站时,选择了欧美或者国内单线主机,但是由于国内网络环境的特殊性,这些网站在国内或者不同运营商网络间的访问速度往往并不理想,通过使用CDN可以有效的提升访问速度,但是不菲的价格让中小站长望而却步&…

网站性能测试指标(QPS,TPS,吞吐量,响应时间)详解

常用的网站性能测试指标有:吞吐量、并发数、响应时间、性能计数器等。 并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。 响应时间 响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响…

Java 专业人士必备的书籍和网站列表(转)

作者:mienflying 日期:2007-01-17 对于 Java™ 语言开发人员来说,信息过量是一个真正的问题。每个新入行的程序员都要面临一个令人畏缩的挑战:要进入的行业是一个具有海量知识的行业。要了解的东西简直 太多了。对于有经验的老手来说,情况只有…

分享我自己的导航网站bituplink导航 (附GitHub开源代码项目OneHtmlNav)

话不多说,先上资源 biuplink导航: http://www.bituplink.com/goodweb OneHtmlNav项目: https://github.com/bituplink/OneHtmlNav OneHtmlNav下载: 本地下载 或者github直接打包下载 小呆导航源项目: https://github.com/xiaodai945/WEBJIKE 然后上图 再然后说说这个项目的初…

#网站搭建# 手把手教你在宝塔环境下开启HTTPS

一般新站都是http协议,对于一般的运行当然没有什么大问题,但是在传输一些隐秘数据的时候可能会被攻击者拦截下来,还有就是好看一点浏览器访问的时候不会报不安全,于是我查了一下阿里云申请这个证书是免费的,申请一下然…

#网站搭建# Nginx配置解决跨域CROS跨域请求(同服务器站点互访)

在添加我的血小板(血小板地址详见末尾个人博客地址)到我的博客上面的时候,发生了这样一件小插曲:当我使用www.lyp123.com访问的时候,她不能显示了!同样的站点为什么会不一样的结果呢?于是果断F1…

SEO将被AI人工智能颠覆,你准备好了吗?

谷歌、微软、苹果等各大公司的语音助手上线以来一直被用户各种问题“调戏”着,这些语音助手除了要“照顾”用户的生活起居工作出行,还要和无厘头的用户斗智斗勇。 智能语音助手的出现唤醒了用户听觉和语音层面的交互体验,为用户的生活方式提供…

Excel函数,数据透视表图,某招聘网站职位分析项目

源数据: 分析项目 求每家公司的最高薪资和最低薪资以及平均薪资 将职位包含数据分析、数据运营、分析师等的公司找出来 获取每家公司对应的公司地址放到Sheet1表里显示出来 得到一些具体数据:最低薪资大于15K的公司一共有多少家和最高薪资低于15K的…

python实现搜索引擎,数据检索项目:职业查询系统(基本的搜索引擎+爬虫拉勾网职业数据库),搜索引擎可以学习用户的标记,职业网站爬虫生成数据集

简介 信息检索小组项目,队友已同意上传 用spider爬拉钩网站 排序文档基于tfidf和cosine相似性 从搜索历史和用户标记的相关和不相关的结果中学习IDE规则方法,优化结果 基于Tkinter的UI 标准登录模块 主搜索窗口与页面切换 这里我只放出我贡献相关的部…

这10个白帽seo技巧,只有大神才会

我们一直都在谈白帽seo,那么,白帽seo的技巧你会几个呢?今天带大家来见识一下这10个白帽seo技巧,据说只有大神才会,一起来看看吧。   1.标题不是越长越好,太长反而成累赘,显示不完全,有时短标…

seo如何快速有效的引流

1、搜索引擎对品牌有一定的保护作用,而一旦发现你是在盗用别人的品牌网站将会受到降权处理。 2、用户是有品牌意识的,不会轻易把一个伪品牌当做品牌。 3、浪费时间给别人做品牌而没有建立自己的品牌。 4、选择用户习惯搜索的长尾关键词 同样内容的一篇文…

做seo如何有效的选择关键词

做网站SEO经常能看到一些网站出现奇葩的关键词,甚至你会去想这是怎么做到的?选择关键词有哪些方法呢?下面有优化 seo.ee seo小编为大家分享网站SEO优化选择关键词的方法吧! 选择关键词主要有以下5点需要注意: 1、不要选择生活常用词和形容词 曾经一个…

网站设计单页好还是多页好

我们一直都在谈白帽seo,那么,白帽seo的技巧你会几个呢?今天带大家来见识一下这10个白帽seo技巧,据说只有大神才会,一起来看看吧。 1.标题不是越长越好,太长反而成累赘,显示不完全,有时短标题更…

dede后台点击无反应nbsp;dede网站…

点击不出来相关的功能模块,不知道怎么回事dede网站后台左边模块点击不了 修改这种点击dede左侧栏目没反应的解决办法如下: 目录dede/templets/的index_body.htm文件中的第25行至第35行部分屏蔽或者直接删除也可以, 每次登陆后台都会执行index…