在阿里云购买服务器后,需要安装一些最基本的服务:nginx、ftp、mysql,注意在阿里云安全组配置相关端口(80,21,22端口)。
安装过程主要参考其他教程,我在他人教程的基础上记录一些遇到的问题及解决办法。
一、Ubuntu中安装配置nginx
参考教程:http://blog.youkuaiyun.com/u014374031/article/details/73441577
1.安装nginx相关依赖包 unable to locate package xxx
解决方法: sudo apt-get update 更新源
再安装相关依赖包
2.sudo make install失败
根据提示修改相应配置
相关错误:
(1)could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
查找目录,发现没有该目录,手动创建 mkdir指令
在/usr/local/nginx目录下执行: mkdir logs
(2)getpwnam("www") failed
没有配置用户,先配置www用户,如何配置教程里有。
(3)configuration file /usr/local/nginx/conf/nginx.conf test failed
需要配置文件位置
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
3、修改配置文件/usr/local/nginx/conf/nginx.conf
主要修改以下两方面
格式:[User 用户名 用户组]
可用[groups 用户名]查看用户所在分组
注意这里配置的用户对文件是否有读写执行权限(具体见下面ftp中的相关问题)
修改文件指向目录和index名称
4、安装后80端口未打开
解决方法: nginx配置出错,重新配置文件位置
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
二、Ubuntu中安装配置FTP服务
参考教程:http://zyjustin9.iteye.com/blog/2178943
1、在服务器下安装ftp服务,用root无法登陆
解决方法:安装ftp完成后,root在禁用列表里,进入/etc目录(etc位系统同配置文件目录,该目录包含系统启动脚本、启动配置文件、用户登录配置文件等其他文件),执行vim ./ftpusers, 修改禁用用户信息(将root注释),vim ./vsftpd.chroot_list查看当前可登陆用户信息。如果vsftpd.chroot_list文件不存在,会自动创建一个新的文件,我们将root用户写入该文件保存即可。
执行[ftp 服务器IP]可在服务器下登录ftp(保证21端口开放),exit/quit退出。
2、新添加的用户无法访问
vim /etc/vsftpd.conf
修改Pam_service_name=ftp(默认是vsftpd)
再重启服务service vsftpd restart
3.21端口关闭
配置文件没有注解掉listen_ipv6=YES,或者改为NO
4、新增用户权限问题
(1)修改文件权限(建议采用此种方式)
一种方法,在filezilla上修改文件权限,
另一种,命令行chmod 755 filename
chmod u=rwx g=rx o=rx filename效果相同
添加用户时,UID 是从500开始的; UID_MAX 60000
Id username可查看用户uid gid group
(2)修改用户权限(不建议)
修改 /etc/sudoers文件
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
注释去掉,然后修改用户使其属于root组
#usermod –g root username
通常Linux对于UID有几个限制。0(系统管理员),1~499(系统账号),500~65535(可登陆账号)
5、配置ftp用户
(1)创建目录
mkdir /home/ftpdir
(2)新建用户
sudo useradd -d /home/ftpdir -s /usr/sbin/nologin ftpuser
(3)修改新建用户密码
sudo passwd ftpuser
(4)配置权限
sudo chown ftpuser:ftpuser /home/ftpdir
和ftp用户登录限制有关的文件有三个,在/etc/目录下,有的原来有,没有的手动加一下
(1)ftpusers
禁用用户列表
(2)vsftpd.user_list
参考:https://blog.youkuaiyun.com/bluishglc/article/details/42273197
(3)vsftpd.chroot_list
vsftpd.chroot_list文件与vsftpd.conf文件中的chroot_list_enable,chroot_local_user配置项有关
通过搭配能实现以下几种效果:
(1).当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
(2).当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
(3).当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
(4).当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
三、Ubuntu中安装MySQL
参考教程:https://blog.youkuaiyun.com/xiangwanpeng/article/details/54562362
MySQL的安装按教程走下去就好,需要注意的是进入mysql服务后,命令语句的结尾要加“;”分号,否则mysql不认为语句结束。
1、mysql新增用户
(1)用root登录mysql
mysql –u root –p;
(2)添加新用户
1).允许本地访问
create user 'test'@'localhost' identified by '123456';
2).允许外网访问
create user 'test'@'%' identified by '123456';
(3)分配权限
grant all privileges on testdb.* to 'username'@'%' identified by 'userpwd' with grant option;
有几处标注红色的需要说明
第一处all privileges:表明给用户授予哪些权限,all/all privileges表示所有权限,我们也可以指定部分权限如create、update等等。
第二处testdb:表明授权用户对哪个数据库拥有权限,*表示对所有数据库都有权限。
第三处’%’:指示该用户可以在哪些主机上登陆,’%’表示所有主机都可登录。
第四处with grant option:加上这个参数表明用户(root用户不需要加)可以把自己已有的权限赋给第三方,不加的话就不可以。比如我们通过root用户给test用户分配权限,test用户想再给其他用户赋予权限就要加with grant option。
(4)刷新授权
flush privileges;