建立好Linux Instance後要先透過Putty連上,在建立instance時會輸入一組key號碼並讓你下載(XXX.pem),這檔案先保存好等等會用到
1. 到Putty官網下載
putty.exe
及puttygen.exe
因為連上Amazon Linux時候會需要憑證,但xxx.pem並不是Putty接受的憑證格式,因此請打開puttygen.exe,按下Load將xxx.pem載入後再點save private key,如此等等再登入時就可以用到
2. 打開putty,在host地方打上
ec2-user@Public DNS <--每個instance下面的Descripton會有該資訊
然後找到category裡的SSH -> Auth,在Private key file for authentication地方選擇剛剛產生出來的XXX.ppk檔,按下Open就能連上Linux了
---------------------------------------------------------------------
連上Linux後就是一連串的安裝和設定
1. 安裝LAMP
指令: sudo yum install httpd mysql mysql-server php php-mysql
安裝包含:
httpd (提供 Apache 主程式)
mysql (MySQL 客戶端程式)
mysql-server (MySQL 伺服器程式)
php (PHP 主程式含給 apache 使用的模組)
php-devel (PHP 的發展工具,這個與 PHP 外掛的加速軟體有關)
php-mysql (提供給 PHP 程式讀取 MySQL 資料庫的模組)
安裝完後在var資料夾中就會有www的資料夾
裡面的html資料夾就是主要放網站的地方
2. 設定一下httpd.conf
/etc/httpd/conf/httpd.conf (主要設定檔)
httpd 最主要的設定檔,其實整個 Apache 也不過就是這個設定檔啦!裡面真是包山包海啊!不過很多其他的 distribution 都將這個檔案拆成數個小檔案分別管理不同的參數。但是主要設定檔還是以這個檔名為主的! 你只要找到這個檔名就知道如何設定啦!
裡面我設定了
KeepAlive Off -> ON
MaxKeepAliveRequest 100 -> 500
ServerAdmin 改成自己的email
ServerName 改成自己的DNS名稱
另外因為我網站內容是英文,所以沒有改編碼問題,但如果要可以將
# AddDefaultCharset UTF-8 註解掉
DocumentRoot "/var/www/html" 這是放置首頁的目錄,就是上面說的位置
3. 設定Php.ini
主要是資安方面的設定
register_globals = Off # 這個項目請確定為 Off (預設就是 Off),因為如果設定為 On 時, # 雖然程式執行比較不容易出狀況,但是很容易不小心就被攻擊。 log_errors = On ignore_repeated_errors = On <==這個設定值調整一下 (因預設為 Off) ignore_repeated_source = On <==這個設定值調整一下 # 這三個設定項目可以決定是否要將 PHP 程式的錯誤記錄起來, # 建議將重複的錯誤資料忽略掉,否則在很忙碌的系統上, # 這些錯誤資料將可能造成你的登錄檔暴增,導致效能不佳 (或當機) display_errors = Off display_startup_errors = Off # 當你的程式發生問題時,是否要在瀏覽器上頭顯示相關的錯誤訊息 (包括部分程式碼) # 強烈的建議設定為 Off 。不過如果是尚未開放的 WWW 伺服器,為了你的 debug # 容易,可以暫時的將他設定為 On ,如此一來你的程式問題會在瀏覽器上面 # 直接顯示出來,你不需要進入 /var/log/httpd/error_log 登錄當中查閱。 # 但程式完成後,記得將此設定值改為 Off 喔!重要重要!
PHP 上傳檔案限制
post_max_size = 20M <==大約在 729 行左右 file_uploads = On <==一定要是 On 才行 (預設值) upload_max_filesize = 16M <==大約在 878 行左右 memory_limit = 128M <==PHP 可用記憶體容量也能修訂!
4. 啟動服務及模組
啟動WWW service
啟動Apach
[root@www ~]# /etc/init.d/httpd start <==立刻啟動啦! [root@www ~]# /etc/init.d/httpd configtest <==測試設定檔語法 [root@www ~]# chkconfig httpd on <==開機啟動 WWW 啦!
[root@www ~]# /usr/sbin/apachectl start <==啟動啦![root@www ~]# /usr/sbin/apachectl stop <==關閉 WWW 啦!
網站上傳後發現的問題
1. Linux全部都設定好,但還是連不上,
解決方式:
請檢查instance的security group設定,須開放以下幾個port
在Inbound中
HTTP 80
SSH 22 (預設就有)
MYSQL/Aurora 3306
2. Linux系統很嚴謹的拼字檢查,程式中大小寫並沒那麼注意到大小寫,導致網頁失聯及圖片失聯:
解決方式:
使用vim 進入/etc/httpd/conf/httpd.conf後
在LoadModule speling_module modules/mod_speling.so後面加入
CheckSpelling on
5. 啟動MySQL
啟動後root並沒有密碼,因此需先設定密碼[root@www ~]# /etc/init.d/mysqld start [root@www ~]# chkconfig mysqld on # 如果是初次啟動,螢幕會顯示一些訊息且 /var/lib/mysql 會建立資料庫。
[root@www ~]# mysqladmin -u root password 'your.password' # 從此以後 MySQL 的 root 帳號就需要密碼了!如下所示: [root@www ~]# mysql -u root -p Enter password: <==你必須要在這裡輸入剛剛建立的密碼! mysql> exit
6. 手動安裝phpMyAdmin
需先下載WinSCP並連上主機,連的過程中也需要憑證
接著到phpMyAdmin官網下載tar檔案
如果使用PHP 5.2 and MySQL 5 則是下載phpMyAdmin 4.0.10.18
如果使用PHP 5.5 to 7.0 and MySQL 5.5 則是下載phpMyAdmin 4.6.5.2
下載後透過Winscp 上傳到/var/www/html 底下
1. 解壓縮
指令: tar -zxvf phpMyAdmin-4.6.5.2-all-languages.tar.gz
2. 變更資料夾名稱
指令: mv phpMyAdmin-3.3.10-all-languages phpMyAdmin
3. 將 config.sample.inc.php 複製並改名為 config.inc.php。
指令: cp -p config.sample.inc.php config.inc.php
4. 使用文字編輯器變更 config.inc.php 資料並儲存。
指令: vim config.inc.php
將以下內容:
$cfg['Servers'][$i]['auth_type'] = 'config';
變更成:
$cfg['Servers'][$i]['auth_type'] = 'http';
5.儲存離開 :wq
6.開啟瀏覽器 : http://自有網域名稱 or localhost / phpmyadmin
以上為Linux網頁伺服器基本設定
文字內容及資料參考:
1. 鳥哥的 Linux 私房菜 - 第二十章、WWW 伺服器
2. 小灰狼php筆記 - 讓linux上的apache不區分大小寫
3. Ardur的筆記 - Linux系統下安裝phpMyAdmin
若有錯誤請不吝指教
謝謝
沒有留言:
張貼留言