Setup Instance On AWS Console
https://www.youtube.com/watch?v=JPFoDnjR8e8
Login In Terminal issue
Problem:
Permissions 0644 for 'amazonec2.pem' are too open.
Solution:
chmod 400 mykey.pem
Install Apache(httpd) PHP MySQL
Set config.ini.php
https://www.youtube.com/watch?v=JPFoDnjR8e8
Login In Terminal issue
Problem:
Permissions 0644 for 'amazonec2.pem' are too open.
Solution:
chmod 400 mykey.pem
Install Apache(httpd) PHP MySQL
安裝和啟動LAMP Web 服務器
- 為確保您的所有軟件包都處於最新狀態,請對您的實例執行快速軟件更新。此過程可能需要幾分鐘的時間,但必須確保您擁有最新的安全更新和缺陷修復。Note選擇
-y
選項可在不要求確認的情況下安裝更新。如果您希望在安裝前檢查更新,則可以忽略此選項。[ec2-user ~]$ sudo yum update -y
- 您的實例處於最新狀態後,便可以安裝Apache Web服務器、MySQL和PHP軟件包。使用yum groupinstall命令可同時安裝多個軟件包和所有相關依賴項。
[ec2-user ~]$ sudo yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"
Note非Amazon Linux實例的組名稱可能存在細微差異。如果以上命令由於組名稱無效而失敗,請使用yum grouplist命令並在輸出中查找類似的組(如“MySQL Database server
”而不是“MySQL Database",
”),並將合適的組名稱用於分配。 - 安裝
php-mysql
軟件包。[ec2-user ~]$ sudo yum install -y php-mysql
- 啟動Apache Web 服務器。
[ec2-user ~]$ sudo service httpd start Starting httpd: [ OK ]
- 使用chkconfig命令配置Apache Web服務器,使其在每次系統啟動時啟動。
[ec2-user ~]$ sudo chkconfig httpd on
Tip當您成功啟用服務時,chkconfig命令不會提供任何確認消息。您可以通過運行以下命令驗證httpd是否已啟用。[ec2-user ~]$ chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
在運行級別2、3、4和5下,httpd為on
(即您希望看到的狀態)。 - 測試您的Web服務器。在Web瀏覽器中,輸入您實例的公有DNS地址(或公有IP地址),您應該可以看到Apache測試頁面。您可以使用Amazon EC2控制台獲取實例的公有DNS(勾選Public DNS (公有DNS)列;如果此列處於隱藏狀態,請單擊Show/Hide (顯示/隱藏)圖標並選擇Public DNS (公有DNS))。TipImportant如果您使用的不是Amazon Linux,則還可能需要在實例上配置防火牆才能允許這些連接。有關如何配置防火牆的更多信息,請參閱適用於特定分配的文檔。Note此測試頁面僅在
/var/www/html
中無內容時才顯示。將內容添加到文檔根目錄後,您的內容將顯示在您實例的公有DNS地址中,而不顯示在本測試頁面。
Apache httpd提供的文件保存在名為Apache文檔根目錄的目錄中。Amazon Linux Apache文檔根目錄為
/var/www/html
,默認情況下歸root
所有。[ec2-user ~]$ ls -l /var/www total 16 drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin drwxr-xr-x 3 root root 4096 Aug 7 00:02 error drwxr-xr-x 2 root root 4096 Jan 6 2012 html drwxr-xr-x 3 root root 4096 Aug 7 00:02 icons
要允許
ec2-user
操作此目錄中的文件,您需修改其所有權和權限。有多種方法可以完成此任務;在本教程中,您可以將www
組添加到您的實例,然後賦予該組/var/www
目錄的所有權並為該組添加寫入權限。隨後,該組的所有成員都將能夠為Web服務器添加、刪除和修改文件。
設置文件權限
- 將
www
組添加到您的實例。[ec2-user ~]$ sudo groupadd www
- 將您的用戶(這裡指
ec2-user
)添加到www
。[ec2-user ~]$
sudo usermod -a -G www
ec2-user
Important您必須先退出,再重新登錄,然後才能接受新組。您可以使用exit命令,也可以關閉終端窗口。 - 先退出,再重新登錄,然後驗證您是否為
www
組的成員。- 退出。
[ec2-user ~]$ exit
- 重新連接到實例,然後運行以下命令,以驗證您是否為
www
組的成員。[ec2-user ~]$ groups ec2-user wheel www
- 將
/var/www
及其內容的組所有權更改到www
組。[ec2-user ~]$ sudo chown -R root:www /var/www
- 更改
/var/www
及其子目錄的目錄權限,以添加組寫入權限及設置未來子目錄上的組ID。[ec2-user ~]$ sudo chmod 2775 /var/www [ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} +
- 遞歸地更改
/var/www
及其子目錄的文件權限,以添加組寫入權限。[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} +
現在,
ec2_user
(以及www
組的任何未來成員)可以在Apache根目錄中添加、刪除和編輯文件。現在您已準備好添加內容,例如靜態網站或PHP應用程序。
測試您的LAMP Web 服務器
如果您的服務器已安裝且當前處於運行狀態,且您的文件權限設置正確,則您的
ec2-user
賬戶應該能夠在/var/www/html
目錄(可從Internet訪問)中創建一個簡單的PHP文件。- 在Apache 文檔根目錄中創建一個簡單的PHP 文件。
[ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Tip嘗試運行此命令時,如果出現“Permission denied
”錯誤,請嘗試先退出,再重新登錄,以接受您在設置文件權限中配置的適當組權限。 - 在Web 瀏覽器中,輸入您剛剛創建的文件的URL。此URL 是實例的公用DNS 地址,後接正斜杠和文件名。例如:
http:// my.public.dns.amazonaws.com /phpinfo.php
您應該可以看到PHP 信息頁面。 - 刪除
phpinfo.php
文件。儘管此信息可能對您很有用,但出於安全考慮,不應將其傳播到Internet。[ec2-user ~]$ rm /var/www/html/phpinfo.php
保障MySQL 服務器的安全
MySQL服務器的默認安裝提供有多種功能,這些功能對於測試和開發都很有幫助,但對於產品服務器,應禁用或刪除這些功能。mysql_secure_installation命令可引導您設置根密碼並刪除安裝中的不安全功能。即使您不打算使用MySQL服務器,執行此步驟也是一個不錯的建議。
- 啟動MySQL服務器,以便可以運行mysql_secure_installation。
[ec2-user ~]$ sudo service mysqld start Initializing MySQL database: Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! ... Starting mysqld: [ OK ]
- 運行mysql_secure_installation。
[ec2-user ~]$ sudo mysql_secure_installation
- 在系統提示時,輸入
root
賬戶的密碼。- 輸入當前
root
密碼。默認情況下,root
賬戶沒有設置密碼,因此請按Enter . - 鍵入Y設置密碼,然後輸入安全密碼兩次。有關創建安全密碼的更多信息,請轉至http://www.pctools.com/guides/password/。確保將此密碼存儲在安全位置。
- 鍵入Y刪除匿名用戶賬戶。
- 鍵入Y禁用遠程
root
登錄。 - 鍵入Y刪除測試數據庫。
- 鍵入Y重新加載權限表並保存您的更改。
- (可選)如果不打算立即使用MySQL 服務器,請停止。您可以在需要時再次重新啟動該服務器。
[ec2-user ~]$ sudo service mysqld stop Stopping mysqld: [ OK ]
- (可選)如果您希望每次啟動時MySQL 服務器都啟動,請輸入以下命令。
[ec2-user ~]$ sudo chkconfig mysqld on
現在,您應該有了一個功能完善的LAMP Web服務器。如果您將內容添加到Apache文檔根目錄(位於
/var/www/html
),您應該能夠在您實例的公有DNS地址中看到該內容。
Install phpMyAdmin
Do the following:
- Navigate to the apache folder
cd /var/www/html
- Ensure ownership of the folder (assuming signed in with ec2-user)
sudo chown ec2-user .
- Download phpMyAdmin
wget http://www.sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.0.3/phpMyAdmin-4.0.3-all-languages.tar.bz2
- Unzip
tar -jxf phpMyAdmin-4.0.3-all-languages.tar.bz2 -C /var/www/html
- Rename the folder
mv phpMyAdmin-4.0.3-all-languages phpmyadmin
- Remove the zip file
rm -rf phpMyAdmin-4.0.3-all-languages.tar.bz2
That's the basics. You can find more info in the link provided above.
$cfg['Servers'][$i]['AllowNoPassword'] = true;
Error I Met
browse mydomainname/phpmyadmin but all i saw was white page. In /var/log/httpd/error_log
it said
browse mydomainname/phpmyadmin but all i saw was white page. In /var/log/httpd/error_log
it said
PHP Fatal error: Call to undefined function mb_detect_encoding() in
/usr/share/php/gettext/gettext.inc on line 177
This article helped me. After installing mbstring library, it works. The commands are here.
sudo yum install php-mbstring
service restart httpd