第一篇:ubuntu环境搭建记录_lsswear的博客-CSDN博客
因为里面大概粗略的整理都是粘的其他人的路径,为防止页面丢失,我再整理下。
一、换源
原文件备份:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
换源:vi /etc/apt/sources.list
直接编辑就可
1、清华
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
2、阿里
3、华为
4、腾讯
这个版本有点低……
二、软件更新
更新:sudo apt update
三、php安装
1、安装
更新:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
安装:
sudo apt-cache search php*
sudo apt-get install php*
扩展安装:sudo apt-get install php版本-扩展名
2、删除
sudo apt-get autoremove php*
sudo find /etc -name "*php*" |xargs rm -rf
清除dept列表
sudo apt purge 'dpkg -l | grep php | awk '{print $2}' |tr "\n" " "`
dpkg -l | grep php*
3、apt、dpkg
apt程序用于管理dep包,dpkg程序也用于管理dep包,dep包是debian系统的软件包,ubuntu是基于debian的二次开发版本。
所以删除之后,apt列表就找不到对应的软件包,需要重新更新。
四、apache2
1、安装
安装:sudo apt install apache2
其他命令: a2enmod, a2dismod, a2ensite, a2dissite, and a2enconf, a2disconf
2.4文档:https://httpd.apache.org/docs/2.4/
配置文件软连接:
ln -s /etc/apache2/sites-available/site1_com.conf /etc/apache2/sites-enabled/site1_com.conf
2、配置
1、配置文件说明
apache2.conf 配置项目文件路径访问权限
posts.conf 配置监听端口
sites-available/default-ssl.conf 配置项目,包括ssl证书、重写、反代理等。不是仅指这个文件,是指这文件夹下的文件。
实际运行为sites-enabled下的文件,所以需要为文件做软连接。
2、ssl
安装扩展 :a2enmod ssl
ssl证书用于域名加密,可申请免费的和收费的,有单域名和泛域名的区别。
证书申请就不说了,可以openssl自己编,虽然有些平台会因为没有颁发机构会不认,也可以在腾讯云或阿里上申请,都是由免费一年的,还可以监听提醒到期时间。
假设sslpath为ssl在服务器的位置。
sites-available/default-ssl.conf 文件夹下:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile sslpath/xxxx //我们项目使用root开头的crt文件
SSLCertificateKeyFile sslpath/xxxxx //key文件
SSLCertificateChainFile sslpath/xxxxx //crt文件
apache2重启后生效。
3、rewrite
安装扩展 :a2enmod rewrite
sites-available/default-ssl.conf 文件夹下:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
4、跨域
安装扩展 :a2enmod header
apache2.conf文件夹下:
Options Indexes FollowSymLinks
AllowOverride All
AcceptPathInfo on
Require all granted
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST,GET,OPTIONS"
Header always set Access-Control-Allow-Headers "Content-Type"
其实反代理也能解决
5、反代理
安装扩展 :
a2enmod proxy
a2enmod proxy_http
<VirtualHost *:代理端口>
ProxyPass / http://x.x.x.x:被代理端口/
ProxyPassReverse / http://x.x.x.x:被代理端口/
</VirtualHost>
五、mysql安装
1、安装
sudo apt install mysql-server-5.7
2、配置
默认配置查看:sudo cat /etc/mysql/debian.cnf
设置配置 sudo mysql_secure_installation
改root密码:
update mysql.user set authentication_string=PASSWORD('password'),plugin='mysql_native_password' where user='root';
授权:grant all on *.* to root@'%' identified by 'password' with grant option;
权限刷新: flush privileges;
删除用户:drop user '用户名'@'localhost或者%';
忘记密码处理:
sudo vim /etc/mysql/my.cnf
[mysqld]
skip-grant-tables=1
service mysql restart
输入mysql直接进入数据库,可改root密码。
use mysql;
update user set plugin='mysql_native_password' where user='root';
update user set authentication_string=password('password') where user='root';
flush privileges;
exit;
六、ftp
1、安装
sudo apt install vsftpd
2、配置
# ftp服务器将处于独立启动模式
listen=YES
listen_ipv6=NO
# 禁止匿名用户登录
anonymous_enable=NO
# 允许系统用户登录
local_enable=YES
# 启用可以修改文件的 FTP 命令
write_enable=YES
# 本地用户创建文件的 umask 值
local_umask=022
# 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
use_localtime=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
secure_chroot_dir=/var/run/vsftpd/empty
# 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
# 设置一个本地用户登录后进入到的目录
local_root=/home/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
root用户编辑 /etc/ftpusers,注释掉root
设置root用户可直接登录:
vi /etc/ssh/sshd_config
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes
service ssl restart