Install apache2
sudo apt-get update sudo apt-get install apache2 sudo apt-get install apache2 apache2-doc apache2-utils
若 sudo service apache2 restart 時出現
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
只要在/etc/apache2/apache2.conf加入
ServerName localhost即可解決
Install & setting vsftpd
sudo apt-get update sudo apt-get install vsftpd libpam-pwdfile
安裝好了之後,接下來要設定vsftp
本文設定為針對此目錄結構:
假設www資料夾裡存放網站程式碼(html)及專案資料(ftp),
html目錄下會有許多專案 (以下以wiff為例),
每個專案裡會有一個使用者帳號,
只能存取自己專案資料夾裡的資料。
現在,假設資料夾都已經建好,
立馬開始進行vsftpd的設定:
sudo vim /etc/vsftpd.conf
進入編輯畫面之後,我們要注意的設定如下:
# 預設的情況下,要將使用者限制在自己的家目錄之內 chroot_local_user=YES # 支援檔案上傳 write_enable=YES # 為了讓透過 FTP 上傳的檔案的預設群組權限為「可寫入」 local_umask=002 # 支援local端登入使用 local_enable=YES # 要求vsftpd讓使用者在對自己的家目錄有寫入的權限下仍然允許連線 allow_writeable_chroot=YES
接下來要設定pam(身份認證模組)
sudo vim /etc/pam.d/vsftpd
其實就是全部註解掉,然後加上passwd的設定2行
#Standard behaviour for ftpd(8). auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed #Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so. #Standard pam includes #@include common-account #註解掉 #@include common-session #註解掉 #@include common-auth #註解掉 #auth required pam_shells.so #註解掉 #下面兩行加上 auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd account required pam_permit.so
接下來建立FTP的使用者帳號
# 創造一個不能登入系統的帳號 sudo useradd -M -s /usr/sbin/nologin htmlAdmin sudo passwd htmlAdmin # 第一次設定密碼需要先create htpasswd檔案 (HTTP基本認證的user帳密) sudo htpasswd -cd /etc/vsftpd.passwd htmlAdmin # -c : Create the passwdfile. # -d : Use crypt() encryption for passwords. # ps. 如果要創第二組帳號的密碼,去掉-c (因為已經create過了) # sudo htpasswd -d /etc/vsftpd.passwd user2
接下來設定資料夾,並幫帳號指定根目錄
sudo chmod 555 /var/www/ sudo chmod 755 /var/www/html/ sudo chown htmlAdmin:ftp -R /var/www/html/ sudo usermod --home /var/www/html/ htmlAdmin
sudo service vsftpd restart
好了,這樣應該就可以了~
開一下filezilla來試試看吧!
接下來要設定meteor和wiff 等等子資料夾的權限都跟下面一樣
sudo useradd -M -s /usr/sbin/nologin meteor sudo passwd meteor sudo htpasswd -d /etc/vsftpd.passwd meteor sudo chmod 777 /var/www/html/meteor sudo chown meteor:ftp -R /var/www/html/meteor/ sudo usermod --home /var/www/html/meteor meteor sudo service vsftpd restart
最後,注意!切記!
如果要用filezilla來測試,
每次vsftpd restart之後要把filezilla整個關掉再開。
以上參考:
http://hong-s-note.logdown.com/posts/760695-tutorial-ubuntu-set-up-ftp-server-vsftpd
http://ifresh.cc/solution-to-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
SSL(https)設定
現在的apache都已經有內建openssl了,
所以只要裝好apache之後,開啟SSL模組即可
sudo a2enmod ssl接下來要建立金鑰,為了管理方便,
先建個資料夾,再把金鑰放進去。
sudo mkdir /etc/apache2/ssl金鑰設定為365天後到期
sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key金鑰產生過程會有一些額外資訊要求你填寫,
填寫完之後就算產生完成,
再接著設定apache,
讓預設的http和https都可以使用
sudo vim /etc/apache2/sites-available/000-default.conf設定內容如下:
<VirtualHost *:443> ServerAdmin webmaster@localhost ServerName example.com:443 DocumentRoot /var/www/html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> # SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on # A self-signed (snakeoil) certificate can be created by installing # the ssl-cert package. See # /usr/share/doc/apache2.2-common/README.Debian.gz for more info. # If both key and certificate are stored in the same file, only the # SSLCertificateFile directive is needed. SSLCertificateFile /etc/apache2/ssl/apache.pem SSLCertificateKeyFile /etc/apache2/ssl/apache.key ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
重啟,搞定!
sudo service apache2 restart
沒有留言:
張貼留言