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