Monday, April 14, 2008

網站系統安裝 Web Server Setup



早幾天因為想設定SSL
但AppServ中又設定唔到.
於是就開始左分散安裝之路
Apache + MYSQL + PHP + phpMyAdmin + SSL
當中Install就沒有什麼問題,
但要令Apache去隱藏.php的副檔名就可以到達該頁面
就成為左今日研究的問題.
而且如果設定Server也做不到
以後又怎出來工作 / 整網站呀!?


本來以為是一個滿難纏的問題.
在Apache的http.conf中
開一個叫mod_rewrite的module.
用rewriteEngine去寫rule
但解決方法是滿低能的
就係把
中的Option加入MultiViews
那麼就此用檔名進入或用完整名稱都能到達該頁面

例子:
http://yoursite.com/abc.php

http://yoursite.com/abc

在phpMyAdmin中,新的版本有新的方式.
發現到其中PASSWORD的Encryption轉左方式.
正確來說,應該係PHP的新Version PASSWORD()的Function轉了Encrypt的方式.
以往的Version係用現在的OLD_PASSWORD()的Encrypt方式(即PASSWORD()==OLD_PASSWORD())
所以字串也變得長左.
由本來的16也轉了20以上.
這是要特別注意的地方哦!!!

以下是本次的設定 :
Apache HTTP Server 2.2.8 with SSL in Win32:
下載
PHP 5.2.5 zip package:
下載
MYSQL 5.0:
下載
phpMyAdmin 2.11.5.1:
下載

1.安裝好Apache

2.安裝PHP
加入以下這段入Apache的http.conf
LoadFile "C:/Program Files/Apache Software Foundation/PHP/libmysql.dll"
LoadFile "C:/Program Files/Apache Software Foundation/PHP/libmcrypt.dll"
LoadFile "C:/Program Files/Apache Software Foundation/PHP/php5ts.dll"
LoadModule php5_module "C:/Program Files/Apache Software Foundation/PHP/php5apache2_2.dll"
PHPIniDir "C:/Program Files/Apache Software Foundation/PHP/"
AddType application/x-httpd-php .php .phtml .inc .php3
AddType application/x-httpd-php-source .phps .phpsource

在php.ini中改
extension_dir = "放置php的/ext/的Folder的地方"
把以下的extension前面的;移除
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll


3.安裝MYSQL
設定root的password

4.把phpmyadmin的放在網站空間
在phpmyadmin入面的/libraries
有一個config.default.php的File
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin'; 設定 phpMyAdmin 的位置。
$cfg['Servers'][$i]['auth_type'] 是設定管理MySQL的方式,
$cfg['Servers'][$i]['host'] = "localhost"是設定伺服器位置,
$cfg['Servers'][$i]['user'] = "root" 是設定用戶名稱,
$cfg['Servers'][$i]['password'] = "yourpassword"是設定密碼。


5.安裝mod_ssl
由於此Apache版本已有mod_ssl
在http.conf中請確定下列前面沒有#
Include conf/extra/httpd-ssl.conf
LoadModule ssl_module modules/mod_ssl.so

把Apache的中/config的openssl.cnf拉到/bin中
之後,到[開始]->[執行]打cmd->[確定]
用cd指令到Apache的/bin
其後使用以下命令
產生 CA private key,它會要求你輸入密碼
openssl genrsa -des3 -out ca.key 1024
產生 CA require cert,照著它的說明填入對應資料
openssl req -config openssl.cnf -new -key ca.key -out ca.csr
產生 CA public cert
openssl x509 -days 3650 -req -signkey ca.key -in ca.csr -out ca.crt
產生 Server private key
openSSL genrsa -out server.key 1024
產生 Server require cert,這裡跟上面填入相同的資料
openssl req -config openssl.cnf -new -key server.key -out server.csr
產生 Server public key
openssl ca -config openssl.cnf -days 3650 -cert ca.crt -keyfile ca.key -in server.csr -out server.crt


如無意外,在/bin中會有ca.crt、server.crt 及 server.key 的檔案
在/config中新增/ssl.crt及/ssl.key
之後放把ca.crt及server.crt放入/ssl.crt中
server.key放入/ssl.key中

然後在/config/extra中的httpd-ssl.conf
設定以下資料
DocumentRoot "你的網頁根目錄 可以找 httpd.conf 下的 DocumentRoot"
ServerName localhost:443
ServerAdmin 你的 email
ErrorLog logs/error_log
TransferLog logs/access_log

SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/ssl.crt/server.crt"

SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/ssl.key/server.key"

SSLCertificateChainFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/ssl.crt/ca.crt"


6.重新啟動 apache
現在用http或https都可看網站了
但用ssl的就會加密了!!!

0 回覆 comments:

 
Copyright ©2008-2009 SiriusResource. SiriusResource is Powered by Blogger