安装apache2
sudo apa-get install apache2
安装完成后运行一下命令进行重启:
sudo /etc/init.d/apache2 restart
安装php
sudo apt-get install php7.0
此处安装的是php7.0版本 安装扩展:
- libapache2-mod-php7
- php7-gd
- php7-mysql
安装完成后重启Apache:
sudo /etc/init.d/apache2 restart
测试php是否运行: 在apache默认页面可以找到默认web文件路径,如:/var/www/html/index.html
在/var/www/html
文件夹中添加测试文件demo.php
<?php
echo phpinfo();
访问http://localhost/demo.php
是否可以正常打印信息
安装mysql
sudo apt-get install mysql-server mysql-client
安装过程中会提示输入root
密码,设置root
密码用来登录数据库 安装扩展:
- libapache2-mod-auth-mysql
设置ubuntu文件执行读写权限
我们网站目录最高权限,根据自己的情况设置
sudo chmod 777 /var/www
设置mysql远程连接
1.使用授权法
mysql>use mysql;
mysql>grant all privileges on *.* to root@'%' identified by "root";
2.使用改表法
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
执行强制刷新:
mysql>flush privileges;
执行成功后关闭数据库,更改mysql安装目录下的my.cnf文件。 在/etc/mysql
下找到bind-
address=127.0.01
将其注释或更改为0.0.0.0
最后重启mysql:
service mysql restart
ftp设置
apt-get install vsftpd # 全新安装
apt-get --purge remove vsftpd # 卸载并清除配置文件
方式一:把web的访问目录设置为ftp的根目录
write_enable=YES
chroot_local_user=YES
local_root=web目录
方式二:把ftp用户的根目录设定为web目录
添加ftp用户
useradd -m -d /home/<ftpuser> -s /bin/bash <ftpuser>
passwd <ftpuser>
<ftpuser>
为ftp用户名
修改ftp用户的默认目录
-
修改passwd配置文件
sudo vi /etc/passwd
-
找到你的ftp用户名
smy:x:1000:1000:Shelming.Song:/home/smy:/bin/bash
将其中的/home/smy改成你想要修改成的目录(采用绝对路径),如/home/smy/Desktop/python,其余内容都别改,保存后关闭。
- 最后重新进入终端
禁止用户访问上级目录
编辑vsftpd配置文件
vim /etc/vsftpd.conf
配置内容:
#禁止返回上一级
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
将允许访问上级目录的用户名放在/etc/vsftpd.chroot_list中,一行一个用户名,不在该文件中的用户将无法访问上级目录,若没有该文件则需要新建一个,否则登录会报错 修改完配置文件需要重启vsftpd服务才能生效
错误处理
==报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()== 添加配置:
allow_writeable_chroot=YES
==报错:500 OOPS: cannot change directory== 创建用户的时候漏掉-
m参数,导致当前登录的用户没有对应目录的权限,在/home/目录下,使用ll命令可以查看文件夹是否在对应用户权限。若报此错误,需要使用“userdel -r
用户名”命令删除用户,重新创建用户
如果登录ftp总是出现密码错误,可以将/etc/vsftpd.conf
配置文件的pam_service_name=vsftpd
改为pam_service_name=ftp
vsftpd.conf参数说明:
anonymous_enable=YES #是否开启匿名用户
no_anon_password=YES #匿名用户login时不询问用户名和口令
anon_umask=077 #匿名用户上传的文件权限是’-rw—-’
anon_upload_enable=YES #是否允许匿名用户上传文件
anon_mkdir_write_enable=YES #是否允许匿名用户建立目录
anon_other_write_enable=YES #是否允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
anon_world_readable_only=YES #匿名登入者是否能下载可阅读的档案
anon_max_rate=80000 #匿名用户的下载速度为80KBytes/s
anon_root=(none) #匿名用户的宿主目录
allow_anon_ssl=NO #匿名用户是否允许使用安全的SSL连接服务器
ftp_username=FTP #定义匿名使用者登录的使用者名称(默认为FTP)
banned_email_file=/etc/vsftpd.banned_emails #禁止使用的匿名用户登陆时作为密码的电子邮件地址使用表的位置
deny_email_enable=NO #禁止使用的匿名用户登陆时作为密码的电子邮件地址
secure_email_list_enable #如果你想只接受以指定E-MAIL地址登录的匿名用户的话,启用它
local_enable=YES #本地用户是否可以登录
local_umask=022 #设置本地用户的文件生成掩码
file_open_mode=0666 #上传文件的权限配合umask使用
local_root=(none) #指定所有本地用户登陆后的目录,如果不设置此项,用户都会登陆于自己的主目录
local_max_rate=500000 #本地用户的下载速度为500KBytes/s
chroot_local_user=YES #是否允许用户离开其宿主目录
chroot_list_enable=NO #登录用户名字若在/etc/vsftpd.chroot_list内,则会启用chroot机制,将这个用户限制在其home目录下.
guest_enable=YES #是否开启虚拟用户(如果开启则匿名用户用使用guest_username值的用户)
guest_username=vsftpd #指定虚拟用户名
virtual_use_local_privs=YES #虚拟用户和本地用户权限是否相同
userlist_enable=YES #是根据user_list实行访问控制(若启用此选项,userlist_deny选项才被启动)
userlist_deny=NO #若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
write_enable=YES #用户是否具有写的权限(全局,若要对其中一种用户开放上传权限,此处必须YES)
download_enable=YES #是否允许下载(全局模式)
chmod_enable=YES #是否可以修改文件权限
nopriv_user= nobody #设定服务执行者为nobody,vsftpd推荐使用一个权限很低的用户,最好是没有家目录(/dev/null),没有登陆shell(/sbin/nologin),系统会更安全
dirmessage_enable=YES #当切换到FTP服务器的某个目录这哦功时,是否显示该目录下的.message信息
dirlist_enable=YES #是否启用通俗命令(如果设置为NO,那么只能使用unix/linux的命令)
xferlog_enable=YES #是否启用上传和下载日志
xferlog_std_format=YES #是否使用标准的ftpd xferlog日志格式
xferlog_file=/var/log/vsftpd.log #将上传下载日志记录到/var/log/vsftpd.log中
log_ftp_protocol=NO #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
dual_log_enable=NO #如果启用,两个LOG文件会各自产生,默认的是/var/log/xferlog和/var/log/vsftpd.log
vsftpd_log_file=/var/log/vsftpd.log #这是被生成的vsftpd格式的log文件的名字(只有xferlog_enable被设置,而xferlog_std_format没有被设置时,此项才生效)
syslog_enable=NO #如果启用,系统log将取代vsftpd的log输出到/var/log/vsftpd.log.FTPD的log工具将不工作
connect_from_port_20=YES #是否启用FTP数据端口的连接请求
listen=YES #是否使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
listen_ipv6=NO #与’listen’功能嗯相同,但此项监听IPV6(两个只能设置一个)
pam_service_name=vsftpd #PAM认证服务配置文件名称,保存在”/etc/pam.d”目录下
userlist_enable=YES #是否检查userlist_file设置文件
tcp_wrappers=YES #是否使用tcp_wrappers作为主机访问控制方式(tcp_wrappers的两个配置文件”/etc/hosts.allow 允许访问的主机”,”/etc/hosts.deny拒绝访问的主机”
ftpd_banner=Welcome to yayi.biz FTP Service #FTP欢迎信息(如果设置了banner_file则此设置无效)
banner_file=/etc/vsftpd/banner #定义登录信息文件的位置
check_shell=NO #是否检测SHELL
chown_uploads=YES #是否开启匿名上传用户切换(如果开启,上传用户则变为’chown_username=daemon’指定的用户)
chown_username=daemon #匿名上传文件的属主
file_open_mode=0666 #对于上传的文件设定权限
idle_session_timeout=600 #客户端超过600S没有动作则视为超时
data_connection_timeout=300 #数据传输时超过120S没有动作则视为超时
connect_timeout=60 #连接超时时间
pasv_min_port=30000 #建立资料联机所可以使用port 范围的上界,0表示任意,默认值为0
pasv_max_port=30999 #建立资料联机所可以使用port 范围的下界,0表示任意,默认值为0
pasv_enable=YES #是否允许使用PASV模式
pasv_promiscuous+NO #是否关闭PASV安全检查.(删除’+NO’则开启)
pasv_address=(none) #使vsftpd在pasv命令回复时跳转到指定的IP地址.
port_enable=YES #是否允许使用PORT模式
prot_promiscuous #是否开启安全PORT检查(‘+NO’则不开启)
pasv_max_port=0 #指定为被动模式数据连接分配的最大端口(0为任何)
pasv_min_port=0 #指定为被动模式数据连接分配的最小端口(0为任何)
ACCEPT_TIMEOUT=60 #PAVS请求60s无响应则视为超时
ascii_upload_enable=YES #是否可用ASCII 模式上传(默认为NO)
ascii_download_enable=YES #是否可用ASCII 模式下载(默认为NO)
secure_chroot_dir=/usr/share/empty #这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中,默认值为/usr/share/empty
ls_recurse_enable=YES #是否能使用ls -R命令以(防止浪费大量的服务器资源)
one_process_model=YES #是否使用单进程模式
text_userdb_names=NO #是否可以查看文件拥有者的UID
use_localtime=NO #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
use_sendfile=YES #是否测试平台优化
setproctitle_enable=YES #是否显示状态会话信息
user_config_dir=/etc/vsftpd/userconf #定义用户配置文件的目录
local_root=xxx #定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的
max_clients=0 #可接受的最大client数目(0为不限制)
max_per_ip=0 #每个ip的最大client数目(0为不限制)
connect_from_port_20=YES #是否启用FTP数据端口的数据连接
ftp_data_port=20 #设定PORT模式下的连接端口(只要connect_from_port_20被激活)
listen_address=192.168.0.2 #绑定FTP的IP地址(在多网卡或者多IP地址的机器上使用)
listen_port=2121 #绑定FTP使用使用端口
ftp_data_port=2020 #绑定FTP数据传输端口
background=NO #起用时,VSFTPD将把监听进程置于后台,但访问VSFTPD时,控制台将立即被返回到SHELL
force_dot_files=NO #如果激活, 以. 开始的文件和目录在目录列取的时候将会被显示, 即使客户端没有使用”a” 标识. 这不包括”.” 和”..” 目录
ssl_enable=NO #是否启用SSL
force_local_data_ssl=YES #是否要求非匿名用户使用安全的SSL在数据线路上收发数据
force_local_logins_ssl=YES #是否要求非匿名用户使用安全的SSL登录以发送密码
ssl_tlsv1=YES #是否允许以TLS V1协议的连接,TLS V1连接将是首选
ssl_sslv2=NO #是否允许以SSL V2协议的连接,TLS V1连接将是首选
ssl_sslv3=NO #是否允许以SSL V3协议的连接,TLS V1连接将是首选
hide_ids=NO #如果启用,目录资源列表里所有用户和组的信息将显示为\”ftp\”.
run_as_launching_user=NO #如果你使用非root用户启动vsftpd时使用.(不是Linux专业人士请不要使用,除非自己清楚自己在作什么.)
session_support=NO #是否让VSFTPD去尝试管理登录会话
text_userdb_names #默认情况下,在文件列表中,数字ID将被显示在用户和组的区域.你可以编辑这个参数以使其使用数字ID变成文字