在阿里雲購買服務器後,需要安裝一些最基本的服務:nginx、ftp、mysql,注意在阿里雲安全組配置相關端口(80,21,22端口)。
安裝過程主要參考其他教程,我在他人教程的基礎上記錄一些遇到的問題及解決辦法。
一、Ubuntu中安裝配置nginx
參考教程:http://blog.csdn.net/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.csdn.net/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.csdn.net/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;