远程连接mysql设置

阅读(1457)

lnmp为安全起见大都是禁止远程连接mysql。

开启的话可以按如下步骤:
1、首先需要自己在phpmyadmin里添加一个用户 主机为 % 的任意主机(也可以编辑已有的用户),如果要指定IP远程访问,创建一个 主机 为你指定IP的用户即可。

2、iptables 里删除DROP 3306端口的规则。
直接通过iptables进行操作
(1) 查看已有的iptables规则,以序号显示
iptables -L -n --line-numbers
(2)删除对应的DROP 3306 规则 (num改为实际3306规则序号)
iptables -D INPUT num

注意:如果是云主机有可能会有安全组之类的规则,查看一下是否放行了3306端口。

centos7 安装bbr脚本

阅读(3286)

BBR(Bottleneck Bandwidth and Round-trip propagation time)是Google 提出的一种新型拥塞控制算法,可以使Linux服务器显著地提高吞吐量和减少TCP连接的延迟。Google已经开源了该算法,并提交到了Linux内核,从4.9开始,Linux内核已经用上了该算法。

解决方案

查看当前Centos的版本

大于7.3即可

cat /etc/redhat-release

执行一键安装脚本

wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh && chmod 755 /opt/bbr.sh && /opt/bbr.sh

安装完成后会提示重启系统

image

立即重启,输入:y ,等待重启完毕

验证当前的TCP算法

sysctl net.ipv4.tcp_available_congestion_control

结果:net.ipv4.tcp_available_congestion_control = reno cubic bbr

输出结果包含bbr 表示成功

查看BBR是否启动

sysctl net.ipv4.tcp_congestion_control

结果为:net.ipv4.tcp_congestion_control = bbr

查看BBR是否已经载入了系统模块

lsmod | grep bbr

结果为:tcp_bbr 20480 8

apache+php+mysql+wordpress的安装

阅读(1436)

步骤一,安装apache2

apt install apache2

apachectl -v

步骤二,安装php libapache2-mod-php
apt install php
php -v
vim /var/www/html/test.php
http://yourip/test.php

步骤三,安装mysql
apt install mysql-server mysql-client

mysql -V

设置root初始密码,参考这里

安装插件php-mysql php-gd
apt install php-mysql php-gd

安装phpmyadmin
sudo apt-get install phpmyadmin
phpmyadmin设置:

在安装过程中会要求选择Web server:apache2或lighttpd,使用空格键选定apache2,按tab键然后确定。然后会要求输入设置的Mysql数据库密码连接密码Password of thedatabase’s administrative user。

然后将phpmyadmin与apache2建立连接,以我的为例:www目录在/var/www,phpmyadmin在/usr/share /phpmyadmin目录,所以就用命令:
sudo ln -s/usr/share/phpmyadmin /var/www/html
建立链接。

步骤五,设置Ubuntu文件执行读写权限
chown -R www-data:www-data /var/www/html

步骤六,安装wordpress
phpmyadmin数据库操作,新建用户,勾选建同名数据库并赋予全部权限
wget -c https://cn.wordpress.org/latest.zip
unzip latest.zip
mv wordpress /var/www/html/

为了在安装wordpress过程中,不需要手动修改wp-config.php文件,添加以下权限,新手可以这样做,对linux熟悉的就手动改文件吧

chown -hR www-data /var/www/html/wordpress
伪静态设置 参考这里

甲骨文免费云服务器放行端口

阅读(1668)

甲骨文Oracle免费云服务器默认ping不同,阻止所有端口访问。申请好服务器,需要放行需要用到的端口。

1. 添加安全规则
首先到面板添加安全规则,放行相应端口

2. 清空iptables规则
ssh登录服务器,清空iptables规则

sudo iptables -P INPUT ACCEPT
sudo iptables -F

3. 保存iptables规则并重启后继续生效
切换至root用户,运行

iptables-save > /etc/iptables.rules

创建或修改 vim /etc/rc.local

#!/bin/sh
iptables-restore < /etc/iptables.rules

赋予执行权限
chmod +x /etc/rc.local

Ubuntu安装ftp服务器

阅读(1843)

环境Ubuntu20.04,安装的ftp server为vsftpd。

1. 安装ftp服务器。

apt-get install vsftpd 

2. 修改配置文件 vim /etc/vsftpd.conf

# 禁止匿名用户登录
anonymous_enable=NO
# 允许系统用户登录
local_enable=YES
# 启用可以修改文件的 FTP 命令
write_enable=YES
# 本地用户创建文件的 umask 值
local_umask=022
# 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
# 开启日记功能
xferlog_enable=YES
# 使用标准的20端口来连接ftp
connect_from_port_20=YES
# 使用标准日志格式
xferlog_std_format=YES
# 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
#chroot_list_enable=YES
# 指定限制的用户文件
#chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
allow_writeable_chroot=YES
# ftp服务器将处于独立启动模式
listen=YES
# 设置一个本地用户登录后进入到的目录
#local_root=/home/ftp
# 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下
pam_service_name=ftp
# ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器
userlist_enable=YES
# 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。userlist_deny=NO
# 定义限制/允许用户登录的文件
userlist_file=/etc/vsftpd/allowed_users
# ftp服务器将使用tcp_wrappers作为主机访问控制模式
tcp_wrappers=YES
# 连接ftp服务费使用的端口
listen_port=21

3. 创建用户ftp目录

mkdir /home/ftp

接着创建一个子目录,

mkdir /home/ftp/data

修改ftp这个目录的权限,

修改权限

chmod -R 777 /home/ftp

4. 新建用户
还需要手动创建一个文件allowed_users,位于 /etc/vsftpd下,创建该文件的命令是

touch allowed_users

创建文件成功后,我们就可以添加访问用户了,添加用户的命令是

useradd -d /home/ftp/data -s /sbin/nologin ftp_user

添加一个用户(ftp_user),但是该用户不能登录系统。

接着设置该用户的密码,输入命令,

passwd ftp_user

将上面添加的用户,手动写入到 /etc/vsftpd/allowed_users。只需要添加一行,写入用户名即可

Linux服务器生成100M文件

阅读(1818)

有时候,需要在服务器上生成文件用于下载速度测试。
可以用下面命令在linux服务器上生成100M文件。

dd if=/dev/zero of=100mb.bin bs=100M count=1

其中,100mb.bin为生成的文件名;100M为生成的文件大小;1为生成的文件数量。

测试硬盘I/O速度

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

Ubuntu+Apache+mod_wsgi+Django部署教程

阅读(2650)

一、环境

Ubuntu Server 20.04
python 3.8.5
django 3.1
Apache 2.4
mod_wsgi

二、virtualenv和django配置

1、安装python3-pip

sudo apt-get install python3-pip

ubuntu20.04自带python3.8(python)和python2.7 (python2)在ubuntu中如果想使用python3的pip请使用:“pip3”命令。

2、安装python的虚拟环境virtualenv

sudo pip3 install virtualenv

3、创建虚拟环境,此命令会创建一个名为myenv(虚拟环境名称)的文件夹,位置就在你终端所显示的位置,里面包含了一个python环境。

virtualenv myenv

4、激活虚拟环境

source myenv/bin/activate

5、安装django。虚拟环境中可以直接使用pip,因为虚拟环境里只有py3的存在。

pip install django

或指定版本
···
pip install -v django==1.7.1
···

6、用django创建网站(略)
7、测试是否可以网站正常访问。

python manage.py runserver

如果想使用80端口,但是提示需要root权限,使用下面命令:

sudo /home/ubuntu/envs/myenv/bin/python manage.py runserver 0.0.0.0:80

三、部署部分

1、进入ubuntu,安装apache2和mod_wsgi:

sudo apt-get install apache2 libapache2-mod-wsgi-py3

此处如果你是py2开发的话去掉上述命令最后的“-py3”,否则最好加上。

2、查看apache2版本:

apachectl -v

看看是否是2.4版本

3、新建站点的配置文件

sudo vim /etc/apache2/sites-available/mysites.conf

我的mysites.conf如下,此文件仅作参考,请自行修改里面的相关路径和网址:

<VirtualHost *:80>
    ServerName mydomain.com
    #ServerAlias www.mydomain.com
    ServerAdmin admin@mydomain.com
    DocumentRoot /home/ubuntu/web/djangoProject1/djangoProject1
    Alias /static /home/ubuntu/web/djangoProject1/static
    <Directory /home/ubuntu/web/djangoProject1/static>
        Require all granted
    </Directory>
    <Directory /home/ubuntu/web/djangoProject1/djangoProject1>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
    WSGIDaemonProcess myproject python-home=/home/ubuntu/envs/myenv python-path=/home/ubuntu/web/djangoProject1
    WSGIProcessGroup myproject
    WSGIScriptAlias / /home/ubuntu/web/djangoProject1/djangoProject1/wsgi.py
    ErrorLog "/var/log/apache2/access_a_error.log"
    CustomLog "/var/log/apache2/access_a_common.log" common
</VirtualHost>

其中:

WSGIDaemonProcess myproject python-home=/home/ubuntu/envs/myenv python-path=/home/ubuntu/web/djangoProject1
# myproject 项目名称
# python-home指向虚拟环境路径
# python-path指向项目路径
WSGIProcessGroup myproject
# myproject 项目名称

4、静态文件配置
settings中加入一行:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来
网站目录下运行下面命令

python manage.py collectstatic

上面命令收集全部静态文件到网站根目录的static文件夹中。 把这些文件放到一起是为了用apache等部署的时候更方便

5、修改wsgi文件

import os
from os.path import join, dirname, abspath

from django.core.wsgi import get_wsgi_application

PROJECT_DIR = dirname(dirname(abspath(__file__)))
import sys
sys.path.insert(0, PROJECT_DIR)

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject1.settings')

application = get_wsgi_application()

6、设置权限,linux下对权限很敏感,建议大家先对这块有所了解。网站和虚拟环境不建议安装在/root目录下。遇到无法访问先到log中找错误,权限问题可参考这里

在 Linux 服务器上,用户上传目录还要设置给 www-data 用户的写权限,下面的方法比较好,不影响原来的用户的编辑。

假如上传目录为 djangoProject1/media/uploads 文件夹,进入media文件夹,将 uploads 用户组改为www-data,并且赋予该组写权限:

cd media/ 
sudo chgrp -R www-data uploads
sudo chmod -R g+w uploads

如果你使用的是sqlite3数据库,还会提示 Attempt to write a readonly database,同样要给www-data写数据库的权限

进入项目目录的上一级,比如project目录为 /home/ubuntu/web/, 那就进入 /home/ubuntu/web/ 执行下面的命令(和修改上传文件夹类似)

sudo chgrp www-data djangoProject1
sudo chmod g+w djangoProject1
sudo chgrp www-data djangoProject1/db.sqlite3  # 更改为你的数据库名称
sudo chmod g+w djangoProject1/db.sqlite3

7、重启apache2服务

sudo a2ensite mysites.conf
sudo service apache2 restart

如果一切顺利,你的网站就可以正常访问了。

centos7升级sqlite3

阅读(1389)

下载源码

wget https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz

编译

tar zxvf sqlite-autoconf-3350500.tar.gz
cd sqlite-autoconf-3350500/
./configure --prefix=/usr/local
make && make install

替换系统低版本 sqlite3

mv /usr/bin/sqlite3  /usr/bin/sqlite3_old
ln -s /usr/local/bin/sqlite3   /usr/bin/sqlite3
echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig
sqlite3 -version

升级后再安装python